Автодополнение свойств классов в PHP IDE
16 сентября 2008
В ночных билдах Eclipse PDT 2.0 появилась долгожданная для многих возможность. Теперь можно воспользоваться синтаксисом phpDoc 1.4+:
/** * @property MyClass $regular MyClass property */ class TestClass { private $_thingy; function __get($var){ switch ($var) { case 'regular' : return $this->_thingy; } } function __set($var, $val){ switch ($var) { case 'regular' : if (is_string($val)) { $this->_thingy = $val; } } } }
И получить дополнение методов класса MyClass для такого кода:
$my_obj = new TestClass(); $my_obj->regular
Попробовать можно уже сейчас
Комментарии RSS по email OK
Привет.
Подскажи плз, может сталкивался?
Поставил себе pdt2.0 integration build от 24/09. Не хочет выдавать автокомплит на переменные, полученные из статического метода, типа такого
$val=MyClass::getInstance();
$val->xxx() - не дает
в методе MyClass::getInstance прописан @return, но комплит дает только при прямом создании объекта через new или описании типа объекта в @var (но т.к. у меня локальная переменная,то не очень подходит).
Это баг или просто еще не дошли у разработчиков руки?
И, если не сложно, подскажи, где берешь инфу о новых фичах PDT? Найти в инете что-то сложно как-то :(
Спасибо
Эту информацию частично вычитал у Alex-а. Кстати, извиняюсь, забыл упомянуть…
Тут скорее всего недоработка. Думаю, ещё исправят…
На всякий случай, можно тестовый код?
Ну, что то такое
Ну, там где оборвано пробовать complit
Т.е. похоже на php-doc он забивает в этом случае и использует DLTK возможности для просмотра дерева.
О, сорри, в последней строке должно быть $has_complit_var-> , тем не менее это суть не меняет
Да, похоже на правду. Можно попробовать отрепортить.
Привет.
А получилось таким способом сделать автодополнение на подобие следующего:
У меня ничего не вышло :(
Алексей
Делается это немного не так…
Точно работает в ночных сборках NetBeans7 и Zend Studio 6.
Я так пробовал, но меня не устроили два момента:
The model name you are loading is the name of a resource that is already being used: model123.
Можно обойти, если в конструкторе написать
но как-то это неправильно, чтоли.