Я создал стандартный класс реестра. Затем реестр может вернуть новый или уже созданный экземпляр класса, используя:
$classObject = $registry->getInstance(Namespace\subdirectories\ClassName);
Мой проект настроен с пространствами имен, так что это типичный синтаксис.
Все работает хорошо, за исключением того, что в IDE, таких как Eclipse luna, больше не будет Content Assist, а это означает, что нажатие ctrl + space больше не вызовет экран с открытыми методами классов.
Кто-нибудь сталкивался с такой ситуацией раньше? Как вы восстановили функциональность помощника по содержимому настолько, насколько могли? В качестве альтернативы, если вы не смогли восстановить функциональность, что вы делали, чтобы программирование оставалось все еще практичным в рамках проекта?
Я исправил эту проблему, используя подсказку типа PHPDoc для моей IDE
пример
/**
/* @var \FullClassNamespace\
*/
$private $someVar;
public function __construct() {
$this->someVar = registry->getClassinstance(fullnamespace);
$someVar-> (autocomplete works)
}
Стоит заметить, что в некоторых средах ввода-вывода хинтинг типа не работает, как в / ** @var namespace * /. Начальная / ** и конечная * / должны быть в отдельных строках
Других решений пока нет …