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

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

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

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

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

помощник класс похожий:

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

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

11 ответов


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

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

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

Джо


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

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

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

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

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


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


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

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

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

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


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

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


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

например, если я работаю над пользовательским модулем 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();

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


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

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


JetBrains только что выпустила версию PHPStorm, которая обращается к заводским методам в Magento. http://blog.jetbrains.com/webide/2013/04/phpstorm-6-0-1-eap-build-129-177/ http://confluence.jetbrains.com/display/PhpStorm/PhpStorm + дополнительно + метаданные


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

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