我使用 PHP Storm 作为我的 IDE,但我相信 Netbeans 等其他 IDE 也会有同样的问题,我将在下面解释。
当使用像 Symfony2 这样的框架时,我们添加了依赖注入的美妙世界。因此,可以使用如下代码片段简单地实例化对象:
$myThingy = $this->get('some_cool_service');
这非常方便,因为事先已经配置了对象。一个问题是,基本上任何 PHP IDE 中的自动完成都会完全中断,因为 IDE 不知道 get() 方法返回的是什么类型。
有没有办法保留自动完成?例如,创建控制器的扩展会是答案吗?例如:
class MyController extends Controller {
/**
* @return \MyNamespace\CoolService
*/
public getSomeCoolService() {
return new CoolService();
}
}
然后对于应用程序控制器,将 MyController 指定为基类而不是 Controller?
使用工厂类或任何其他可能的方法怎么样?