php - PhpStorm:类型提示链式方法
问题描述
在下面的代码片段中,我得到类型提示$contactInfo[0]
,然后再次显示$order
。
我想要同样的 with logger
,它是一个类型的对象\Monolog\Logger
,作为 的成员访问\psr\container\ContainerInterface
我正在使用 PhpStorm 警告我Field 'logger' not found in Psr\Container\ContainerInterface
/**
* @param Order $order
* @param ContactInfo[] $contactInfo
* @var Monolog\Logger $this->container->logger
*/
private function buildCreateOrderJSON(Order $order, $contactInfo)
{
try {
$currentDate = new DateTime();
} catch (Exception $e) {
$this->container->logger->addInfo('Some exception', $e->getMessage());
return;
}
$lastName = $contactInfo[0]->getLastName();
$order->getInvoiceNumber();
}
解决方案
正如评论中提到的 LazyOne ,您不能键入提示 3 级实体。
您可以做些什么来保留方法名称重构是您可以将您的类元素分配给一个变量,然后输入提示:
/** @var $logger \Monolog\Logger */
$logger = $this->container->logger;
$logger->addInfo('Some exception', $e->getMessage());
推荐阅读
- google-admin-sdk - 外部应用程序可以修改 SSO 设置吗?
- c++ - 将位图数据转换为 rgb visual c++
- angular - 在多个 NgModule 中提供可重用的单例服务的最佳实践(特别是在 monorepo、Nrwl Nx 样式中)
- html - 多次重复课程而不重复代码
- excel - VBA - 如何循环财政年度日期集
- c++ - 读/写 BSON 文件
- python - TypeError:“str”对象不可调用。处理输入()
- php - 在 nginx vps 主机上托管具有多个子域的 Laravel 应用程序
- c++ - c ++:检查它是否是类中的数字
- github - 平滑滚动在 github 页面上不起作用