Завершение PhpStorm, тип подсказка - PullRequest
0 голосов
/ 03 октября 2018

Я бы хотел найти способ (если это вообще возможно?) Для 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 голосов
/ 03 октября 2018

Боже мой!Большое спасибо @LazyOne ?

Я не могу поверить, что только 10 строк кода могли бы сэкономить мне столько времени

Итак, вот быстрый обзор.Просто создайте папку .phpstorm.meta.php в корне вашего проекта.Внутри создайте manager.meta.php, содержащий всего:

<?php

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

Et voilà!

...