【发布时间】:2016-01-08 21:12:19
【问题描述】:
在 Zend Framework 2 模块中,我使用闭包作为工厂:
'controllers' => [
'factories' => [
'ZendSkeletonModule\Controller\Skeleton' => function(AbstractPluginManager $pm) {
return new Controller\SkeletonController($pm->getServiceLocator()->get('Doctrine\ORM\EntityManager'));
},
],
],
虽然这没有任何问题,但我的 IDE (PHP Storm) 在$pm->getServiceLocator()->get('Doctrine\ORM\EntityManager') 抱怨以下消息:
预期 \Doctrine\ORM\EntityManagerInterface,得到数组|对象。
调用参数类型与声明不兼容。
那是因为在控制器中,我使用Doctrine\ORM\EntityManagerInterface 作为类型提示,我明白了。
但是为什么 PHP Storm 会抱怨,我在这里没有发现任何问题?另外,代码工作正常,所以我有点困惑。我是否需要添加某种特殊注释或其他内容来“帮助”IDE?
【问题讨论】:
标签: php zend-framework2 phpstorm type-hinting