phpstorm.meta.php似乎没有任何作用

时间:2019-03-30 17:59:30

标签: phpstorm

我刚刚开始尝试phpstorm.meta.php,以获取更好的代码提示。到目前为止,我发现的文档似乎有些薄,我无法使其正常工作。我正在运行PhpStorm 2019.1及以下版本。我是否需要刷新刷新并重新启动,或者提示应该在编辑元文件后立即起作用?

BasePB.php:

// sub-classes override this method to return the class name of entity they use
abstract protected function getEntityType()

private function entityFactory($type) : ModelEntity
{
    return new $type($this, false);
}

public function getNewEntity($options = array())
{
    $entityType = $this->getEntityType();
    $res        = $this->entityFactory($entityType);
    $res->inject($options);
    return $res;
}

.phpstorm.meta.php

<?php
namespace PHPSTORM_META
{
    override(\LTEObjects\Base\BasePB::entityFactory(0), map(['' => '@']));
}

扩展BasePB的类中的某些其他文件

protected function getEntityType()
{
    return '\Application\Model\SomeEntity'; //extends ModelEntity
}

public function someMethod(...)
{
    // ...
    $entity = $this->getNewEntity(array(...));
    //PhpStorm recognizes $entity as a 'ModelEntity', not a 'SomeEntity'
    // ...
}

元数据文件与代码文件位于同一模块中,而不是项目的根目录,但是即使我将其移至根目录也不起作用,并且从我阅读的内容来看,它应该能够可以存放在任何地方,仍然可以使用。

使用的字符串与将其转换为类的方法之间的距离太远了吗?

0 个答案:

没有答案