Есть ли PHP IDE, которая может обрабатывать базу кода Magento?

Magento имеет большую базу кода (6000+ php файлов), использует сложную логику автозагрузки и имеет большую конфигурацию в XML. Я ищу IDE, который может получить свой маленький мозг вокруг этой базы кода - покажите мне, где объявлена ​​функция, где она называется, и т.д. Есть ли какая-либо среда IDE, которая может обрабатывать этот зверь?

EDIT - Добавление примеров

Вот пример загрузки продукта способом Magento:

 $product = Mage::getModel('catalog/product')->load($productID)

Получение класса-помощника выглядит аналогичным:

 $helper = Mage::getHelper('catalog/product')

Кроме того, геттеры и сеттеры атрибутов часто берутся из модели, которые, возможно, очень хорошо были объявлены в файле XML где-то, а не в коде.

Ответ 1

Вероятно, не тот ответ, который вы хотите, но количество файлов, вероятно, не будет вашей фольгой здесь. Поскольку Magento использует странные методы для создания объектов (Mage::getModel и т.д.), Нормальное завершение кода полностью утрачивает свою актуальность. Кроме того, Magento активно использует магические функции PHP, которые, конечно же, полностью освобождены от завершения кода.

Я работал с несколькими IDE, используя Magento (Komodo, Zend Studio, Eclipse), и у меня никогда не было очень хорошего результата. Комодо был единственным, у которого не было коронарных артерий, пытающихся угадать, поэтому я использовал это в течение некоторого времени.

Надеюсь, что это поможет. Спасибо!

Джо

Ответ 2

Сам поклонник Netbeans. Вы ищете подсказки типа класса, которые поддерживают как Zend Studio, так и Nebeans. Magento медленно настраивает их, но в коде есть некоторые случаи.

http://files.zend.com/help/Zend-Studio-7/code_assist_concept.htm

 /* @var $myVar TestClass */
 $myVar = new getClass();

Ответ 3

Я разработал плагин с открытым исходным кодом для PHPStorm, возможно, вы хотите взглянуть: http://www.magicento.com

Плагин может обрабатывать то, что вы просите, а также имеет больше функций, таких как автозаполнение в xml файлах. Я буду добавлять дополнительные функции каждую неделю, потому что я использую плагин в своей повседневной работе. Я надеюсь, что это тоже будет полезно для вас.

Ответ 4

Если вы собираетесь создать бесплатную среду IDE, то Eclipse PDT будет работать нормально. Он может обрабатывать все эти файлы без проблем. Если вы хотите более полнофункциональную IDE, я бы выбрал Zend Studio. Zend Studio по существу является Eclipse PDT с дополнительными функциями (например, действительно хороший отладчик/профилировщик, встроенный в панель инструментов браузера, и лучшее форматирование кода из коробки).

Ответ 5

Это снизится до двух факторов: IDE smartness (узнает ли все автозагружаемые классы?) и простой производительности (Сколько времени требуется, чтобы IDE проходила через дерево файлов для создания лексикона поиска? Как часто он собирается обновляться?)

Независимо от того, может ли IDE обрабатывать эти объемы файлов, сильно зависит от того, как ваша машина оборудована. Я рекомендую вам ознакомиться с пробными версиями самых популярных PHP IDE и посмотреть, какой из них вам подходит лучше всего. Должно быть довольно легко узнать, можете ли вы работать с ними или нет.

I для одной работы с Nusphere phpEd (14-дневный пробный здесь). Я никогда не работал с этим крупным проектом, но большими, и я доволен функциональностью поиска кода. Как, вероятно, большинство IDE, оно позволяет вручную добавлять включенные в случае, если он пропускает автозагрузку.

Тогда там Zend Studio (Загрузить здесь) и Eclipse PDT ( здесь) и многое другое, чтобы посмотреть в на этот вопрос. Не все из них выполняют Code Completion для PHP, поэтому вам придется выбирать те, которые делают.

Ответ 6

Попробуйте плагин Magento для IDE на основе Eclipse, который может обрабатывать экземпляры объектов Magento (например, Mage:: helper ('helper'), Mage:: getModels ('module/model') и т.д.).

http://code.google.com/p/magento-plugin

Ответ 7

Я обнаружил, что с использованием любого вкуса Eclipse (Aptana, PDT или Zend) и эффективного использования функций документации, таких как /* @var... */comment делает чудеса.

Например, если я работаю над настраиваемым модулем Strube_MyModule со следующей структурой:

   Strube\
      MyModule\
          Block\
              Custom.php
          template\
              mymodule\
                  custom.phtml

Strube\MyModule\Blocks\Custom.php

<?php
  class Strube_MyModule_Block_Custom extend Mage_Core_Block_Template {
    public function _construct() {
      $this->setTemplate('../../../../path/to/template/mymodule/custom.phtml');
    }

    /**
     * Eclipse is smart enough to follow PHP-Docs
     *
     * @return Mage_Customer_Model_Customer
     */
    public function getCustomer() {
      return Mage::getSingleton('customer/session')->getCustomer();
    }
  }

шаблон\MyModule\custom.phtml

<?php
  /**
   * PHP DOC!
   */
  /* @var $this Strube_MyModule_Block_Custom */
  // Now you can auto-complete $this->...
  // You can also <ctrl> + click on functions that descent from $this
  echo $this->getChildHtml();

  // It will also autocomplete based on PHP-doc @return tags
  echo $this->getCustomer()->getName();

Ответ 8

Посмотрите это расширение fo PHPSTORM IDE. Я использую это и очень хорошо.

Ответ 9

Я использовал Netbeans для работы над большими PHP-проектами (он также обрабатывает большие проекты Java и C). Мои текущие проекты CakePHP содержат 35000 файлов, из которых 4000-5000 являются файлами PHP, включая внешние библиотеки и т.д.

Средство IDE реагирует на некоторое время, но если вы поддерживаете его в течение ночи, среда IDE становится вялой, и вам необходимо перезапустить ее.

Ответ 11

Используя то, что @Laizer печально, Vinai создал оболочку script, которая генерирует эту карту классов, которую PhpStorm знает для чтения и автозаполнения функций и классов.

Смотрите репозиторий git: https://github.com/Vinai/phpstorm-magento-mapper