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。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容