几个月来我一直在想办法。我是那些喜欢自动完成的开发人员之一。对于zend framework 2中的每个服务定位程序调用,我都会键入以下提示:
没有全局提示文件

/** @var \Module\Service\SuperService $superService */
$superService => $this->getServiceLocator()>get('\Module\Service\SuperService');
$superService->coolFunction();

这是可行的,但是当你在一个控制器中启动2-4服务时,代码会变得混乱。我正试图找到一种更好的方法来使用php storm并为服务定位器调用键入hinting

最佳答案

虽然现在这对您没有帮助,但您可以知道,我们已经接近支持这一点了,只需提供一些附加条件:
容器需要实现容器互操作项目的Container\Interop\ContainerInterface,zf2的servicemanager已经做到了这一点。
您需要使用::class超级全局超级魔术contant来命名和检索您的类。在您的例子中,只需将get调用中的字符串替换为Module\Service\SuperService::class(可从php 5.4及更高版本获得)。
我预计这个功能将在我们的下一个版本phpstorm 2016.2中提供,该版本将于今年夏天发布。
加里

关于php - 使用服务定位器为PHP Storm提供更快,更好,更有效的类型提示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33834046/

10-09 14:45