免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

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語法錯誤埋藏得太深怎么辦?(圖)
本文路徑:http://m.newbst.com/news1/295351.html

成都網站建設公司_創新互聯,為您提供網站制作品牌網站制作網站改版軟件開發用戶體驗企業建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站