PhpStorm完成,键入常规提示

时间:2018-10-03 15:15:25

标签: generics phpstorm phpdoc type-hinting

我很想为PhpStorm找到一种方法(如果可能的话),可以自动完成我的Factory类生成的代码,而不必每次我从中提取一个类时都编写PHPDoc。

这是我的代码:

<?php
class Factory
{
    public function getManager(string $class)
    {
        // if in cache ... returns

        // not in cache > init
        $manager = new $class();
        $this->doStuff($manager);
        return $manager;
    }

    public function doStuff($manager) {}
}

$factory = new Factory();
/** @var DateTime $dtClass */
$dtClass = $factory->getManager(DateTime::class);
$dtClass->getTimestamp();

因此,为了自动完成并静音PhpStorm警告,我必须在每次getManager()调用之后使用相应的类添加该行。

/** @var DateTime $dtClass */

我想知道PHPDoc,PhpStorm帮助程序文件或其他文件是否可以帮助实现这一目标?

    /**
     * @template T
     * @param string $class <T>
     * @return <T>
     */
    public function getManager(string $class)
    { 

1 个答案:

答案 0 :(得分:1)

哦,天哪!非常感谢@LazyOne

我不敢相信只有10行代码可以节省这么多时间

因此,这里有一个快速总结。 只需在项目的根目录下创建一个文件夹 .phpstorm.meta.php。 在内部创建一个manager.meta.php 仅包含:

<?php

namespace PHPSTORM_META {
    override(
        \Factory::getManager(0),
        map([
            '' => '@',
        ])
    );
}

等等!