更改检查严重性
检查严重性级别表明检测到的代码问题对您的项目的影响程度。每个严重级别都有自己的突出显示样式。在 PhpStorm 中,有一组预定义的严重级别:
错误:标记语法错误。
警告:标记可能产生错误或需要增强的代码片段。
弱警告:标记可以改进或优化的代码片段(冗余代码、重复代码片段等)。
服务器问题:标记来自外部构建服务器的问题,例如来自 TeamCity。
Typo:标记拼写和语法错误。
无高亮,仅修复:不提供代码高亮;按 调用可用修复程序列表Alt+Enter。
严重性级别旨在指示问题,它们对代码执行没有任何影响:如果您将拼写错误的严重性从Typo更改为Error,这不会影响您的应用程序的执行。
在所有范围内更改检查严重性
按Ctrl+Alt+S打开 IDE 设置并选择Editor | 检查。
选择要修改的配置文件,然后从列表中选择检查。确保它已启用。
从严重性列表中,选择一个新的严重性级别。您还可以右键单击检查并从上下文菜单中选择严重性级别。
应用更改并关闭对话框。修改后的检查现在将在所选配置文件中具有新的严重性级别。
如果可用严重级别列表中缺少您需要的级别,您可以创建一个新级别。
在特定范围内更改检查严重性
按Ctrl+Alt+S打开 IDE 设置并选择Editor | 检查。
选择要修改的配置文件,然后从列表中选择检查。确保它已启用。
从In All Scopes列表中,选择要更改其严重性的范围。
PhpStorm 显示两个范围的严重性: selected one 和Everywhere else。
要再添加一个范围,请单击。如果要创建新范围,请从范围列表中选择编辑范围顺序,然后单击。
从列表中选择必要的严重性级别并应用更改。
如果您在多个范围内启用检查,并且这些范围内的文件匹配,IDE 将根据它们在列表中的顺序处理这些范围。有关详细信息,请参阅更改范围的顺序。
配置错误突出显示
按Ctrl+Alt+S打开 IDE 设置并选择Editor | 检查。
选择要修改的配置文件。
从严重性级别列表中,选择编辑严重性。
选择要更改格式的严重性,然后单击编辑设置 | 颜色和字体。
配置新的突出显示规则。使用对话框底部的预览部分。
您还可以在
。创建新的严重性级别
按Ctrl+Alt+S打开 IDE 设置并选择Editor | 检查。
选择要在其中创建新严重性级别的配置文件。
单击任何检查并从严重性级别列表中选择编辑严重性。
在“严重性编辑器”对话框中,单击并命名新的严重性级别。
使用和按钮配置格式并设置优先级- 您将严重性放在列表中越高,其优先级越高。
完成后单击确定。
自定义未定义元素的检查
在PHP上下文中,未定义字段和未定义方法检查可能会错误地报告严重问题,而实际上没有问题发生。当您尝试访问或为属性赋值或调用未显式定义的方法时,会发生这种情况,而引用的类包含__get()
、__set()
或__call()
魔术方法。在这种情况下不应报告错误,因为每次引用未定义的属性或方法时都会调用这些方法,但是,PhpStorm 仍将它们视为错误或警告,具体取决于您为检查指定的严重级别。
禁止报告未定义字段错误
在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,转到 。
在列表中选择未定义字段检查。
在Options区域中,清除Notify about access to a field via magic method和Notify about PHP dynamic field declaration复选框。
选中复选框时,即使类包含__get()
和__set()
魔术方法,PhpStorm 也会报告错误。
调整未定义方法错误的报告
在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,转到 。
在列表中选择未定义的方法检查。
在选项区域中,选中如果类中存在 __magic 方法,则降级严重性复选框。
现在,未定义的方法将显示为比一般检查指定的严重级别低一级(默认情况下,Info而不是Warning)。
配置未定义变量错误的报告
在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,转到 。
在列表中选择未定义字段检查。
在选项区域中,按如下方式配置检查:
在全局空间中启用检查:选中此复选框可针对函数/方法、类和命名空间之外的变量(即全局空间中)运行检查。
报告该变量可能尚未定义:选中此复选框可报告错误,即使变量的定义并非绝对缺失。当一个变量在多个路径中使用并且其中一些可能永远无法到达时,可能会发生这种情况,例如,在
if()
语句中:在当前文件之外搜索变量的定义:如果选中,IDE 仅在当前文件中没有
include
orrequire
语句并且在项目中找不到变量的定义的情况下才会将全局变量报告为未定义。否则,如果未选择,IDE 将仅在当前文件中搜索变量的定义并忽略
include
orrequire
语句(如果有)。