Я использую PHP Storm в качестве моей IDE, но я считаю, что другие IDE, такие как Netbeans, будут иметь такую же проблему, как я объясню ниже.
При использовании фреймворка, такого как Symfony2, у нас есть замечательный мир Injection Dependency. Таким образом, объекты можно просто создать с помощью кода, например, следующего фрагмента:
$myThingy = $this->get('some_cool_service');
Это очень удобно, поскольку объекты уже настроены заранее. Одна из проблем заключается в том, что автоматическое завершение полностью разбивается в основном на любую PHP IDE, поскольку среда IDE не знает, какой тип возвращает метод get().
Есть ли способ сохранить автозаполнение? Будет ли создание, например, расширением Controller, ответом? Например:
class MyController extends Controller {
/**
* @return \MyNamespace\CoolService
*/
public getSomeCoolService() {
return new CoolService();
}
}
а затем для контроллеров приложений укажите MyController в качестве базового класса вместо Controller?
Как использовать класс Factory или любые другие возможные методы?