大约一个月前,PHP Storm 发布了一项新功能,允许使用静态文件进行类型提示。我个人仅将其用于服务定位器,但它可以用于 PHP Storm 无法遵循的许多其他事情,因为它不是魔法。
带有全局提示文件
$superService = $this->getServiceLocator()->get('\Module\Service\SuperService');
$superService->coolFunction();
这为我们作为开发人员做了一些事情:
- 团队合作(其他人将能够立即看到所有服务
模块)
- Coding
- Speed
- 代码整洁
- 代码标准
- 点击即可更快进入课堂
该怎么办
In the 项目根目录(与作曲家.json),应该(如果没有则创建)一个名为.phpstorm.meta.php该文件包含静态提示以及它们使用的实例。
要添加您自己的文件,只需将其放入现有文件中即可
WARNING- 如果你声明了错误的类,你最终会写出错误的代码,并且感到困惑......这种情况在我身上发生过很多次
我包括了我当前的配置,它是我的项目的个人配置,但可以让我更多地了解要做什么。
namespace PHPSTORM_META {
$STATIC_METHOD_TYPES = [
\Zend\ServiceManager\ServiceLocatorInterface::get('') => [
/**
* Common services
*/
'doctrine.entitymanager.orm_default' instanceof \Doctrine\ORM\EntityManager,
'Zend\Db\Adapter\Adapter' instanceof \Zend\Db\Adapter\AdapterServiceFactory,
/** Custom to Project */
'RiotAdapter' instanceof \GameService\Service\RiotAdapter,
'SmiteAdapter' instanceof \GameService\Service\SmiteAdapter,
'GameService' instanceof \GameService\Service\GameService,
],
];
}
如果您想了解更多这方面的信息,您可以查看来自 PHP Storm 的 @confluence 帖子here https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata