pHp语法错误埋藏得太深怎么办?(图)

2023-11-19    分类: 网站建设

最近发现自己写的pHp代码运行结果总是和预想的不一样。在排查过程中,我发现大部分都是语法错误,而且这些错误在运行之前就已经被种下了。可能是你粗心了,也可能是php -l检测太简单了,但是确实有些语法错误埋得太深了(毕竟pHp是动态语言)php 框架源码分析,那么有没有办法消除所有的语法错误代码正式运行前的错误找出来?

这里介绍一个pHp代码静态分析工具:不需要运行代码,也可以对代码进行严格的语法检查,尽量减少代码的错误率。

安装

目前.10.2要求系统环境pHp版本不低于7.1。全局安装:

$ composer global require phpstan/phpstan

使用

静态分析的使用很简单:

$ phpstan analyse [-c|--configuration CONFIGURATION] [-l|--level LEVEL] [--no-progress] [--debug] [-a|--autoload-file AUTOLOAD-FILE] [--errorFormat ERRORFORMAT] [--memory-limit MEMORY-LIMIT] [--] []...

例如,分析一个 pHp 文件:

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

当然,语法分析应该由编辑来完成。写完代码还得切换到命令终端执行,太麻烦了。所以这里推荐一个扩展:pHp。

首先使用全局安装;然后,在扩展管理中搜索pHp并安装第一个匹配的扩展;重新加载重新加载窗口后,扩展程序会自动分析打开的 pHp 文件。

操作效果:

例如,如果一个变量被声明但没有被调用,一个未声明的变量被调用,一个未定义的方法被调用等等,都会检测到错误。

不过,松散地说,$this->()方法其实是存在的,而且只是通过魔术方法()来实现。

high- 级别检测到调用了未声明的类方法时,会报错该方法在类中不存在,即使类定义了()或()。

为了优雅,很多应用框架使用了很多神奇的方法,比如。

使用检测项,调用未声明类的方法时自然会报很多错误。对于这个问题,可以使用-ide-来减少误报。

安装-ide-

$ cd /pATH/TO/LARAVEL_pROJECT
$ composer require barryvdh/laravel-ide-helper

注射

编辑app//.php中的注册方法:

app->environment() !== 'production') {
            $this->app->register(\barryvdh\LaravelIdeHelper\IdeHelperServiceprovider::class);
        }
        // ...
    }

生成.php

$ cd /pATH/TO/LARAVEL_pROJECT
$ php artisan ide-helper:generate

此时框架中的类,原来通过()获取的静态方法,都在.php中声明。检查项目代码时引入.php文件可以减少误报。

配置

在项目根目录下新建一个.neon文件:

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

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

终于

在编写时应及时发现代码中的语法错误php 框架源码分析,以尽量减少正式运行时的错误。

分享文章:pHp语法错误埋藏得太深怎么办?(图)
本文路径:/news1/295351.html

成都网站建设公司_创新互联,为您提供网站制作品牌网站制作网站改版软件开发用户体验企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站