как получить автозаполнение zend studio с помощью codeigniter

StackOverflow https://stackoverflow.com/questions/1080068

Вопрос

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

например, если я сделаю $this->load->library('dx_auth');$this->dx_auth->получить идентификатор пользователя();

zend studio не знает, что это такое..

Есть такой хакерский способ сделать это (см. Ниже, Источник), но я чувствую, что должен быть лучший способ сделать это..

У кого-нибудь есть какие-нибудь идеи?

// All of these are added so I get real auto complete
// I don't have to worry about it causing any problems with deployment
// as this file never gets called as I'm in PHP5 mode

// Core CI libraries
$config = new CI_Config();
$db = new CI_DB_active_record();
$email = new CI_Email();
$form_validation = new CI_Form_validation();
$input = new CI_Input();
$load = new CI_Loader();
$router = new CI_Router();
$session = new CI_Session();
$table = new CI_Table();
$unit = new CI_Unit_test();
$uri = new CI_URI();
Это было полезно?

Решение

Добавьте путь к библиотеке CI в качестве пути включения в ваш проект.

  1. В Проводник PHP, откройте свой проект и щелкните правой кнопкой мыши на Включать пути
  2. Выберите Настроить из контекстного меню
  3. Затем в диалоговом окне включить путь выберите Библиотека вкладка
  4. Щелчок Добавьте внешнюю папку...
  5. Перейдите к локальной копии CI и выберите каталог ее библиотеки (где бы он ни хранил эти файлы классов).
  6. Щелчок Выполнено

Вуаля, вот так!

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

Другие советы

Как следует из ответа Питера, добавление пути включения, безусловно, лучший способ.Однако это зависит от того, чтобы блоки docblocks в исходном коде CI были полными, точными и не содержали двусмысленностей.Например, если методы @return объявляется как Some_Class|false, автозаполнение не будет знать, что с этим делать.

Чтобы добавить к ответу Питера, вы также можете заставить PDT / Eclipse / ZSfE обрабатывать любую переменную как экземпляр определенного класса следующим образом:

/* @var $varName Some_Class_Name */

Если вы импортировали проект, скажем, из SVN, то, возможно, у вас не включена поддержка PHP для этого проекта.Вы можете включить его, щелкнув правой кнопкой мыши ваш проект -> настроить -> добавить поддержку PHP...

Протестировано в ZS 7.2.1

я использую zend studio 9, именно это я и сделал:Добавьте путь к библиотеке CI в качестве пути включения в ваш проект.

$this->load->model('my_model');
$my_model = &$this->my_model;
$my_model instanceof my_model;//add this ,zend studio can autocomplete 
$my_model->myfunc($foo,$bar);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top