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

How to make PhpStorm understand the type of a Doctrine repository

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

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

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

的错误

有什么好的方法可以解决这个问题吗?其他 Doctrine 用户如何处理这个问题?

最简单的方法是使用临时变量和类型提示:

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

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

您应该可以在菜单中找到它:设置 > 插件 > {搜索 'symfony'}。如果它不在列表中,'Browse Repositories...' 在插件列表下。

您必须为每个项目启用它(文件> 设置> 语言和框架> PHP> Symfony)并且还要安装 Php 注释插件。