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

PhpStorm:获取“检查”的代码警告;与类同名的方法将不会是构造函数;,php,constructor,phpstorm,code-inspection,Php,Constructor,Phpstorm,Code Inspection,好的,我终于换成了PHP7。我的代码有点旧,将被翻新。其中一些问题是: class MagicClass function MagicClass(){ //etc } 在执行过程中会发出弃用警告: 已弃用:将不使用与其类同名的方法 PHP未来版本中的构造函数;MagicClass有一个已弃用的 中的构造函数 这很好: class MagicClass function __construct(){ //etc } 如何让Php

好的,我终于换成了PHP7。我的代码有点旧,将被翻新。其中一些问题是:

class MagicClass
    function MagicClass(){
        //etc
    }
在执行过程中会发出弃用警告:

已弃用:将不使用与其类同名的方法 PHP未来版本中的构造函数;MagicClass有一个已弃用的 中的构造函数

这很好:

class MagicClass
    function __construct(){
        //etc
    }


如何让PhpStorm code inspection对我当前代码库中的此类错误发出警告?

首选项
(在OSX上)或
设置
(在Windows和Linux上)对话框中,选择左侧列表中的
语言和框架
->
PHP
,然后选中
PHP语言级别
下拉框。如果您的
PhpStorm
不是很旧,那么该列表中应该有PHP版本7

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

选择PHP版本后,转到
编辑器
->
检查
(也在
首选项
/
设置
窗口的左侧),然后在右侧确保选中了
PHP
->
常规
语言级别
检查。它在描述中说:

检查源代码中使用的语言功能是否符合所选语言级别。(即,traits只能在PHP5.4中使用)。所需的语言级别在项目配置(项目设置| PHP)中设置

更新

显然,
PhpStorm
的当前版本没有处理这个特定问题。我用版本9.0.2、10.0.3和11 EAP测试了它,他们中没有人抱怨PHP4样式的构造函数


语言级别的检查似乎更多地关注新PHP功能的使用,而不是不推荐的功能。

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

解决方案是安装“Php检查(EA扩展)”插件——它有这样的检查功能,即使您选择5.x作为Php语言级别,它也可以工作

<>强>请注意:< /强>此插件有很多检查,其中一些您可能认为错误/无用等。因此,您可能需要仔细检查此插件提供的每个附加检查,并在需要时禁用它。

,有一个内置检查称为“旧式构造函数”


您使用的是哪个版本的PHPStrom?只需使用php linter
php-l
列出并永久修复它。PHPStorm 10.0.3 php-l很好,但如何设置PHPStorm?”这给了我一个错误:“到底是什么让您出现了这样的“错误”——PHPStorm或php本身在执行时?公平地改变了问题谢谢,但这并不能解决我的问题。是的,我可以手动运行每个文件以检查错误或弃用警告。这将是一个很大的工作,仍然有机会错过一个。但我正在尝试的工作与键入mysql\u query相当,然后将其删除。一种类似的方法,用于检查作为构造函数的同名函数。(顺便说一句,是的,我配置了php7+解释器)解释器不用于检查语法。请确保已启用代码检查。我更新了答案。是的,这一切都已启用,但对于同名函数仍然没有弃用警告。请自己尝试一下这个代码:事实上,它不会对这种情况发出任何警告。我以前没有注意到它,因为我已经5年多没有转换或停止使用为PHP4.Jup编写的代码了,但是PHP4+PHP5兼容的库非常常见:-)