摘要:簡介是一個的靜態分析器,它傾向于最小化誤報。它試圖證明錯誤而不是正確。它會查找常見問題,并在類型信息可用或可以推斷時驗證各種操作的類型兼容性。
Phan 簡介
Phan是一個PHP的靜態分析器,它傾向于最小化誤報。它試圖證明錯誤而不是正確。
它會查找常見問題,并在類型信息可用或可以推斷時驗證各種操作的類型兼容性。
擴展安裝
ast
windows
mac: pecl install ast
pcntl.so
mac: 用源碼編譯安裝
windows: 不支持
入門## 安裝 composer require --dev phan/phan ## 初始化配置 vendor/bin/phan --init --init-level=3 ## 執行 vendor/bin/phan ## 執行(windows) sh vendorinphan核心配置解讀 .phan/config.php
return [ // 開啟的子進程數量,需要使用pcntl擴展,windows不支持,mac安裝后,可以修改 "processes" => 1, // 開啟進度條 "progress_bar" => true, // 解析的目錄(包含依賴,依賴需要從exclude剔除) "directory_list" => [ "app", "vendor" // 建議最小化原則,少加載文件 ], // 不需要解析的目錄 "exclude_analysis_directory_list" => [ "vendor", ".phan", ], // 需要解析的多帶帶的文件 "file_list" => [], // 需要剔除的文件列表 "exclude_file_list" => [], // 自動加載的內部類庫,一般用于加載擴展stub,下面引入了laravel的stub "autoload_internal_extension_signatures" => [ "laravelIdeHelper" => "_ide_helper.php", "laravelMeta" => ".phpstorm.meta.php" ], ]忽略部分報錯:建議盡量不要使用 suppress 忽略整個方法
class D { /** * @suppress PhanUndeclaredClassMethod */ function g() { C::f(); } }@phan-suppress-current-line 忽略當前行
function test_line_suppression() { echo $undef1; // @phan-suppress-current-line PhanUndeclaredVariable echo $undef2 + missingFn(); }@phan-suppress-next-line 忽略下一行
function test_line_suppression() { // @phan-suppress-next-line PhanUndeclaredVariable, PhanUndeclaredFunction echo $undefVar2 + missing_function(); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31386.html
摘要:比如上面的例子文件文件我們利用做了語法解析檢測,代碼如下報錯哪里類重復了不存在查看該屬性是否存在于父類中原理能就是對解析出來的繼續做分析,但是前人栽樹后人乘涼,這樣的完整工具已經有大神幫我們做好了。 原文:我的個人博客 https://mengkang.net/1356.html 工作了兩三年,技術停滯不前,迷茫沒有方向,不如看下我的直播 PHP 進階之路 (金三銀四跳槽必考,一般人...
摘要:默認的配置不會檢測任何代碼。參數列表質量檢測包其他有人問,你為什么要這么折磨自己呢其實像類型代碼質量工具,不是僅僅自己拿來玩的,在開發人員略多的技術團隊,可以通過使用它來達到代碼規范一致,如果每個人代碼都不一樣,后果不堪設想。 showImg(https://segmentfault.com/img/bVbtfeF?w=1796&h=724); 前言 我一生的文章都會放在這里,我的博客...
摘要:自動化接入和升級方案通過命令行工具提供一鍵接入升級能力,同時集成到團隊腳手架中,大大降低了工程接入和維護的成本。原始代碼經過解析器的解析,在管道中逐一經過所有規則的檢查,最終檢測出所有不符合規范的代碼,并輸出為報告。 引言 代碼規范是軟件開發領域經久不衰的話題,幾乎所有工程師在開發過程中都會遇到,并或多或少會思考過這一問題。隨著前端應用的大型化和復雜化,越來越多的前端工程師和團隊開始重...
摘要:而前端要使用模塊化的原因或者要解決的問題就是解決命名沖突管理依賴提高代碼的可復用性相關模塊化規范常見的規范有規范規范是在推廣過程中對模塊定義的規范化產出,主要用于瀏覽器端。目前的各類全局變量都可以模塊化。 開發中明顯可以感覺到加載一個HTML需要依賴很多的JS文件依賴,比如到一定階段的HTML頁面,尾部就是這樣的: 隨著所需功能越來越多,我們就需引入更多的JS依...
摘要:參考資料前端模塊化詳解完整版入門近一萬字的語法知識點補充徹底搞清楚中的和和詳解 前言 前端的模塊化之路經歷了漫長的過程,想詳細了解的小伙伴可以看浪里行舟大神寫的前端模塊化詳解(完整版),這里根據幾位大佬們寫的文章,將模塊化規范部分做了匯總和整理,希望讀完的小伙伴能有些收獲,也希望覺得有用的小伙伴可以點個贊,筆芯。 什么是模塊 將一個復雜的程序依據一定的規則(規范)封裝成幾個塊(文件)...
閱讀 1816·2019-08-30 13:54
閱讀 2730·2019-08-29 17:27
閱讀 1117·2019-08-29 17:23
閱讀 3355·2019-08-29 15:20
閱讀 1231·2019-08-29 11:28
閱讀 1575·2019-08-26 10:39
閱讀 1321·2019-08-26 10:29
閱讀 647·2019-08-26 10:13