实现子类时,建议的方法在PhpStorm中丢失

时间:2016-07-23 04:35:52

标签: php symfony phpstorm phpdoc

我有以下类结构

Class Structure

我正在使用Symfony2的服务来管理BaseHandlerBaseManager

class BaseHandler implements IHandler
{
    /**
     * @var IManager
     */
    protected $manager;

    ...

    public function setManager(IManager $manager)
    {
        $this->manager = $manager;
    }
    ...
}

一切正常,但问题是当我尝试使用SpecializedManager类的某些方法时,PhpStorm的建议没有显示他们的方法,只有属于IManager的方法。

例如在我的控制器中

public function indexAction(){
    $handler = $this->get('appbundle.handler.specialized_handler');
    $items = $this->manager->mySubClassMethod(); // PHPStorm shows warning
    ...
}

我不知道如何在处理程序子类中设置var manager的注释以更改为类似@var SpecializedHandler $manager的内容,方法中没有其他替代方法出现在建议中。

注意:基类或扩展为多个专用子类。

1 个答案:

答案 0 :(得分:0)

当您正在使用PHPStorm时,您可以为PHPStorm安装Symfony2插件:https://plugins.jetbrains.com/plugin/7219?pr=phpStorm

安装此插件(并在项目中启用)后,您应自动完成服务的自动完成。