首页后端开发PHP使用 PHPStan 强化PHP代码质量

使用 PHPStan 强化PHP代码质量

时间2024-02-02 05:08:03发布访客分类PHP浏览819
导读:收集整理的这篇文章主要介绍了使用 PHPStan 强化PHP代码质量,觉得挺不错的,现在分享给大家,也给大家做个参考。这里介绍一款PHP代码静态分析工具:PHPStan,不需要运行代码,也可以对代码进行严格的语法检测,尽量将代码运行错误率降...
收集整理的这篇文章主要介绍了使用 PHPStan 强化PHP代码质量,觉得挺不错的,现在分享给大家,也给大家做个参考。

这里介绍一款PHP代码静态分析工具:PHPStan,不需要运行代码,也可以对代码进行严格的语法检测,尽量将代码运行错误率降到最低。

PHPStan

安装

目前,PHPStanV0.10.2要求系统环境的PHP版本不低于7.1。用Composer全局安装:

$ composer global require phpstan/phpstan

使用

PHPStan静态分析的使用方法十分简单:

$ phpstan analyse [-c|--configuration CONFIGURATION] [-l|--level LEVEL] [--no-PRogress] [--debug] [-a|--autoload-file AUTOLOAD-FILE] [--errorFormat ERRORFORMAT] [--memory-limIT MEMORY-LIMIT] [--] [paths>
    ]...
  • configuration:运行配置文件的路径;

  • level:严格级别,0-7,越大越严格;

  • no-progress:不显示进度;

  • debug:debug模式;

  • autoload-file:自动加载文件的路径;

  • errorFormat:错误格式;

  • memory-limit:内存限制;

  • paths:待分析的文件路径。

比如,分析一个PHP文件:

$ phpstan analyse --level=7 --autoload-file=/PATH/TO/vendor/autoload.php /PATH/TO/someone.php

PHPStan in VSCode

当然,语法分析应该是编辑器做的事,写完代码还要切换到命令终端执行phpstan,未免过于繁琐。所以这里推荐一款VSCode扩展:PHP static Analysis。

PHP Static Analysis

首先,用Composer全局安装PHPStan;然后,在VSCode的扩展管理中搜索PHP Static Analysis,安装第一个匹配的扩展;重载VSCode重载窗口后,扩展会自动分析VSCode下打开的PHP文件。

运行效果:

比如,声明了一个变量未调用,调用了一个未声明的变量和调用了一个未定义的方法等等这样错误都会被检测出了。

不过,宽松一点地来说,其实$this-> array()方法是存在的,只是通过魔术方法__call()实现的。

PHPStan with Laravel

高严格级别的PHPStan检测到调用未声明的类方法时,会报告类中方法不存在的错误,即使这个类定义了__call()或__callStatic()。

很多应用框架为了优雅,大量使用了魔术方法,比如Laravel。

用PHPStan检测Laravel项目,自然会报告很多调用未声明类方法的错误,对于这个问题,可以借助laravel-ide-helPEr来降低误报。

安装laravel-ide-helper

$ cd /PATH/TO/LARAVEL_PROJECT$ composer require barryvdh/laravel-ide-helper

注入LaravelIdeHelper

编辑app/Providers/AppServiceProvider.php里的注册方法:

?php    ...    public function register()    {
            if ($this->
    app->
environment() !== 'production') {
                $this->
    app->
    register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...    }
    

生成_ide_helper.php

$ cd /PATH/TO/LARAVEL_PROJECT$ php artisan ide-helper:generate

这时,Laravel框架中的FaCADe类,原本通过__callStatic()获取的静态方法,全部在_ide_helper.php声明了,在PHPStan检测Laravel项目代码时引入_ide_helper.php文件,就可以减少误报。

PHPStan配置

在Laravel项目的根目录下,新建phpstan.neon文件:

parameters:    autoload_files:        - %currentWorkingDirectory%/_ide_helper.php

在Laravel项目的根目录下,执行phpstan命令时,会自动使用phpstan.neon这个配置。

推荐教程:《PHP》

以上就是使用 PHPStan 强化PHP代码质量的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 使用 PHPStan 强化PHP代码质量
本文地址: https://pptw.com/jishu/596400.html
PHP后端语言与前端JS语法的区别详解 在php 中使用PDO MySQL的扩展

游客 回复需填写必要信息