摘要:原文來(lái)自如果說(shuō)你想知道一個(gè)項(xiàng)目的代碼復(fù)雜度是什么樣子的,我推薦你可以使用和來(lái)檢測(cè)一下。安裝也是可以直接全局安裝安裝完畢之后,可以這樣來(lái)運(yùn)行命令分析代碼復(fù)雜度等待運(yùn)行結(jié)束,用打開(kāi)就可以查看相對(duì)應(yīng)的結(jié)果,大概是這個(gè)樣子
原文來(lái)自:https://www.codecasts.com/blo...
如果說(shuō)你想知道一個(gè) PHP 項(xiàng)目的代碼復(fù)雜度是什么樣子的,我推薦你可以使用 phploc 和 PhpMetrics 來(lái)檢測(cè)一下。
1.使用 phploc這是一個(gè)標(biāo)準(zhǔn)的 composer package,不過(guò)我推薦大家可以直接使用 composer 全局安裝:
composer global require "phploc/phploc=*"
然后安裝完畢,你就可以使用 phploc 命令來(lái)檢測(cè)你的代碼復(fù)雜度了:
phploc ./app
比如上面這行代碼就是檢測(cè)你的項(xiàng)目中 app/ 目錄的代碼復(fù)雜度;如果是一個(gè) Laravel 的項(xiàng)目的話,大概會(huì)是這個(gè)樣子的結(jié)果輸出:
phploc 3.0.1 by Sebastian Bergmann. Directories 14 Files 72 Size Lines of Code (LOC) 3748 Comment Lines of Code (CLOC) 790 (21.08%) Non-Comment Lines of Code (NCLOC) 2958 (78.92%) Logical Lines of Code (LLOC) 950 (25.35%) Classes 656 (69.05%) Average Class Length 9 Minimum Class Length 0 Maximum Class Length 84 Average Method Length 2 Minimum Method Length 0 Maximum Method Length 21 Functions 0 (0.00%) Average Function Length 0 Not in classes or functions 294 (30.95%) Cyclomatic Complexity Average Complexity per LLOC 0.10 Average Complexity per Class 2.33 Minimum Class Complexity 1.00 Maximum Class Complexity 15.00 Average Complexity per Method 1.41 Minimum Method Complexity 1.00 Maximum Method Complexity 6.00 Dependencies Global Accesses 0 Global Constants 0 (0.00%) Global Variables 0 (0.00%) Super-Global Variables 0 (0.00%) Attribute Accesses 436 Non-Static 436 (100.00%) Static 0 (0.00%) Method Calls 570 Non-Static 412 (72.28%) Static 158 (27.72%) Structure Namespaces 15 Interfaces 0 Traits 0 Classes 72 Abstract Classes 0 (0.00%) Concrete Classes 72 (100.00%) Methods 233 Scope Non-Static Methods 226 (97.00%) Static Methods 7 (3.00%) Visibility Public Methods 194 (83.26%) Non-Public Methods 39 (16.74%) Functions 24 Named Functions 0 (0.00%) Anonymous Functions 24 (100.00%) Constants 0 Global Constants 0 (0.00%) Class Constants 0 (0.00%)
不過(guò)你可能也感覺(jué)到,這個(gè) phploc 的一大不便之處就是,目前來(lái)說(shuō),他還不能把相關(guān)的測(cè)試結(jié)果可視化或者說(shuō)自定義檢測(cè)的最高復(fù)雜度。所以,PhpMetrics 就應(yīng)運(yùn)而生了。
使用 PhpMetrics首先需要說(shuō)明的是,PhpMetrics 可以更深入到你的代碼中,并且會(huì)生成一個(gè) html 文件作為分析的結(jié)果,這樣我們查看檢測(cè)結(jié)果就會(huì)非常的直觀。
安裝 PhpMetrics 也是可以直接 composer 全局安裝:
composer global require "phpmetrics/phpmetrics"
安裝完畢之后,可以這樣來(lái)運(yùn)行命令分析代碼復(fù)雜度:
phpmetrics --report-html=report.html ./app
等待 phpmetrics 運(yùn)行結(jié)束,用 Chrome 打開(kāi) report.html 就可以查看相對(duì)應(yīng)的結(jié)果,大概是這個(gè)樣子:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/23056.html
摘要:類型檢測(cè)類型檢測(cè)也是一種讓代碼簡(jiǎn)潔的小技巧。上文中,我們只是嘗試搜集了一些例子,在這些例子里,你只需做出一點(diǎn)小的努力,就可以讓你的代碼變得更好更簡(jiǎn)潔。 showImg(https://segmentfault.com/img/remote/1460000013847223); 保持代碼簡(jiǎn)潔和高可讀性遠(yuǎn)遠(yuǎn)要比我們想象的要難,有時(shí)候甚至比持續(xù)架構(gòu)設(shè)計(jì)都要難。這里收集了一些可能對(duì)你重構(gòu)代碼有...
摘要:文章轉(zhuǎn)自背景在安全測(cè)試中最單調(diào)乏味的任務(wù)之一就是檢查不安全的配置項(xiàng)。在下文中,該腳本被稱作安全配置項(xiàng)檢查器,或者。保障措施大多數(shù)情況下,最好是自己來(lái)關(guān)注與安全性相關(guān)的問(wèn)題比如的配置。腳本已實(shí)現(xiàn)下列保障措施檢查腳本在非環(huán)境中只能工作兩天。 showImg(https://segmentfault.com/img/remote/1460000018912228); 文章轉(zhuǎn)自:https:/...
摘要:源碼分析開(kāi)門篇生命周期入口文件用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過(guò)應(yīng)用的入口文件,通常是文件。注冊(cè)錯(cuò)誤和異常機(jī)制執(zhí)行注冊(cè)錯(cuò)誤和異常處理機(jī)制。由三部分組成應(yīng)用關(guān)閉方法錯(cuò)誤處理方法異常處理方法注冊(cè)應(yīng)用關(guān)閉方法是為了便于攔截一些系統(tǒng)錯(cuò)誤。 源碼分析—開(kāi)門篇 thinkphp生命周期 1、入口文件 用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過(guò)應(yīng)用的入口文件,通常是 ==public/index.php==文件。當(dāng)然,你也可以更改...
摘要:安全生成安全的隨機(jī)數(shù),加密數(shù)據(jù),掃描漏洞的庫(kù)一個(gè)兼容標(biāo)準(zhǔn)的過(guò)濾器一個(gè)生成隨機(jī)數(shù)和字符串的庫(kù)使用生成隨機(jī)數(shù)的庫(kù)一個(gè)安全庫(kù)一個(gè)純安全通信庫(kù)一個(gè)簡(jiǎn)單的鍵值加密存儲(chǔ)庫(kù)一個(gè)結(jié)構(gòu)化的安全層一個(gè)試驗(yàn)的面向?qū)ο蟮陌b庫(kù)一個(gè)掃描文件安全的庫(kù) Security 安全 生成安全的隨機(jī)數(shù),加密數(shù)據(jù),掃描漏洞的庫(kù) HTML Purifier-一個(gè)兼容標(biāo)準(zhǔn)的HTML過(guò)濾器 RandomLib-一個(gè)生成隨機(jī)數(shù)和字...
閱讀 2014·2021-10-12 10:12
閱讀 3137·2019-08-30 15:44
閱讀 897·2019-08-30 15:43
閱讀 3060·2019-08-30 14:02
閱讀 2158·2019-08-30 12:54
閱讀 3567·2019-08-26 17:05
閱讀 2056·2019-08-26 13:34
閱讀 1108·2019-08-26 11:54