4

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

class MagicClass
    function MagicClass(){
        //etc
    }

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

弃用:与其类同名的方法在 PHP 的未来版本中将不再是构造函数;MagicClass 在

这很好:

class MagicClass
    function __construct(){
        //etc
    }

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

4

3 回答 3

3

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

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

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

于 2016-02-05T15:01:47.450 回答
2

Preferences(在 OSX 上)或Settings(在 Windows 和 Linux 上)对话框中,在左侧列表中选择Languages & Frameworks-> ,然后选中下拉框。如果您不是很老,那么您应该在该列表中包含 PHP 版本 7。PHPPHP language levelPhpStorm

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

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

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

更新

显然,当前版本PhpStorm不处理这个特定问题。我用 9.0.2、10.0.3 和 11 EAP 版本对其进行了测试,没有一个抱怨 PHP4 风格的构造函数。

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

于 2016-02-05T13:24:02.480 回答
1

从 PhpStorm 2017.1 开始,有一个名为“旧式构造函数”的内置检查。

在此处输入图像描述

在此处输入图像描述

于 2018-07-19T14:13:56.193 回答