如何抑制;“会员有受保护的访问权”;以PhpStorm

如何抑制;“会员有受保护的访问权”;以PhpStorm,phpstorm,Phpstorm,我想抑制(禁用)PhpStorm中的警告消息“Member has protected access”(成员具有受保护的访问权限),用于特定位置(并非所有代码) 例如: 我试过的 :在Alt+Enter上,我没有任何东西连接到消息,因此无法禁用它。此外,在运行检查时,检查结果中没有此消息 我没有检查设置中的消息,因此无法禁用它 另一种尝试:使用@noinspection。我没有找到需要的信息 有人建议使用Editor->Colors&font->General->Erros and Warni

我想抑制(禁用)PhpStorm中的警告消息“Member has protected access”(成员具有受保护的访问权限),用于特定位置(并非所有代码)

例如:

我试过的 :在
Alt+Enter
上,我没有任何东西连接到消息,因此无法禁用它。此外,在运行检查时,检查结果中没有此消息

我没有检查设置中的消息,因此无法禁用它

另一种尝试:使用
@noinspection
。我没有找到需要的信息

有人建议使用
Editor->Colors&font->General->Erros and Warnings->errors
禁用并抑制所有错误。但这不是我需要的


没有办法吗?

您可以在类中实现
\uu set
魔术方法,它将这些警告转换为“通知”

由于PHPStorm无法分析您的代码以确保此属性可通过magic方法设置,因此它无法知道这是否是错误


当然,这是一种难看的解决方法,意味着运行时“无法访问受保护的属性”致命错误现在将成为例外,这在您的情况下可能是好的,也可能不是好的。

AFAIK--您不能。从外部访问受保护的成员被认为是一个严重错误(我认为是lexer/parser级别的错误),而不仅仅是一些可以禁止的警告。您必须指定正确的typehint,其中
连接
将不受保护属性,或者使用某种在后台执行此操作的插件(特别是针对mock的插件)。没有更好的主意了。@LazyOne
$mock
是类的mock对象。对于测试,我将
$mock
的所有属性公开。没有其他方法可以测试它。我知道Mock是什么。但是IDE不知道:它不知道在您的代码中,
连接
是来自
$mock
的公共属性,而不是来自
FTP
(根据您的PHPDoc)。有一个通过PHPDoc解决的方法。。。但这意味着要创建自定义类(在自定义类中,这些属性将被声明为公共的)——要满足IDE的要求太麻烦了/根本不实用。所以如果有什么的话。。最好是通过一些插件来完成,它可以动态地键入hint
$mock
,而无需您提供此页面中找到的PHPDocI,但我不想编写_集方法,而是抑制错误检查
/**
 * @throws \Exception
 */
public function __set($name, $value) {
  throw new \Exception(sprintf('Property "%s" does not exist in %s.', $name, __CLASS__));
}