如何让PhpStorm了解Doctrine存储库的类型

时间:2018-05-20 14:55:21

标签: php symfony doctrine phpstorm symfony-3.4

我将Symfony 3.4与Doctrine一起使用,这就是我获取其中一个存储库的方式:

$members = $this->getDoctrine()->getRepository(Member::class)->getAllMembersForClient($client);

使用PhpStorm进行开发,IDE不知道方法getRepository(Member:class)返回什么,因此不提供自动完成。所以它向我显示了方法调用getAllMembersForClient($client)

的错误

有没有好办法解决这个问题?其他Doctrine用户如何处理这个问题?

2 个答案:

答案 0 :(得分:2)

仔细检查您是否安装了'Symfony'插件,因为它通常提供了识别getRepository(Member::class)将注释(或其他方式)定义的存储库返回PHPStorm的功能。

您应该可以在菜单中找到它:设置>插件> {搜索'symfony'}。如果它不在列表中,则在插件列表下“浏览存储库...”。

您必须为每个项目启用它(文件>设置>语言&框架> PHP> Symfony)&还安装了Php Annotation插件。

答案 1 :(得分:1)

最简单的方法是使用临时变量和typehint:

/* @var $membersRepository MemberRepository */
$membersRepository = $this->getDoctrine()->getRepository(Member::class);
$members = $membersRepository->getAllMembersForClient($client);