中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP使用PHPStan優化代碼

發布時間:2020-06-09 09:20:04 來源:億速云 閱讀:792 作者:Leah 欄目:編程語言

這篇文章給大家分享的是PHP使用PHPStan優化代碼的方法。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

這里介紹一款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

PHP使用PHPStan優化代碼

首先,用Composer全局安裝PHPStan;然后,在VSCode的擴展管理中搜索PHP Static Analysis,安裝第一個匹配的擴展;重載VSCode重載窗口后,擴展會自動分析VSCode下打開的PHP文件。

運行效果:

PHP使用PHPStan優化代碼

比如,聲明了一個變量未調用,調用了一個未聲明的變量和調用了一個未定義的方法等等這樣錯誤都會被檢測出了。

不過,寬松一點地來說,其實$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這個配置。

看完這篇文章,你們學會使用PHPStan優化代碼了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汽车| 南川市| 渭源县| 浦江县| 清水县| 台东县| 沭阳县| 姜堰市| 凤城市| 南康市| 监利县| 南京市| 关岭| 那坡县| 湘潭市| 通道| 惠来县| 淮北市| 紫云| 铜鼓县| 鹿泉市| 梅州市| 秦皇岛市| 封开县| 五家渠市| 河池市| 韩城市| 长岭县| 宁南县| 疏勒县| 高碑店市| 拜泉县| 鸡东县| 新泰市| 招远市| 莲花县| 来宾市| 抚州市| 嫩江县| 盖州市| 青海省|