PhpStorm:获取代码检查警告“与其类同名的方法将不是构造函数”

时间:2016-02-05 10:58:22

标签: php constructor phpstorm code-inspection

好的,我终于切换到了PHP7。我的代码有点陈旧,将进行翻新。一些问题是:

class MagicClass
    function MagicClass(){
        //etc
    }

在执行期间给出了弃用警告:

  

不推荐使用:与其类同名的方法不会   PHP未来版本中的构造函数; MagicClass已被弃用   

中的构造函数

这很好:

class MagicClass
    function __construct(){
        //etc
    }

我如何获得PhpStorm代码检查以警告我当前代码库中存在此类错误?

3 个答案:

答案 0 :(得分:3)

它看起来不像PhpStorm v10支持这种特定情况。它具有“PHP 7兼容性”检查,但它不以任何方式标记此代码(无论您选择哪种PHP语言级别 - 无论是5.6还是7)。

解决方案是安装“Php Inspection(EA Extended)”插件 - 它有这样的检查,即使您选择5.x作为PHP语言级别它也能正常工作。

请注意:此插件有很多检查,其中一些您可能会认为是错误/无用等等。所以您可能需要通过此插件提供的每次额外检查如果需要,请将其禁用。

答案 1 :(得分:1)

Preferences(在OSX上)或Settings(在Windows& Linux上)对话框中选择Languages & Frameworks - >左侧列表中的PHP然后检查PHP language level下拉框。如果您的PhpStorm不是很老,那么您应该在该列表中使用PHP版本7。

PhpStorm使用选定的PHP版本检查代码是否存在语法问题。它不需要安装指定的PHP版本(我猜它会附带解释器。)

选择PHP版本后,转到Editor - > Inspections(也在Preferences / Settings窗口的左侧),然后在右侧确保PHP - > General - >检查Language Level检查。在其描述中它说:

  

检查源代码中使用的语言功能是否与所选语言级别相对应。 (即特征只能在PHP 5.4中使用)。所需的语言级别在项目配置中设置(项目设置| PHP)。

<强>更新

显然,PhpStorm的当前版本并未处理此特定问题。我用版本9.0.2,10.0.3和11 EAP进行了测试,没有人抱怨PHP4风格的构造函数。

语言级别检查似乎更侧重于新PHP功能的使用,而不是已弃用的功能。

答案 2 :(得分:1)

As of PhpStorm 2017.1,有一个称为“旧样式构造函数”的内置检查。

enter image description here

enter image description here