PHP應(yīng)用代碼復(fù)雜度檢測使用方法
正文
如果說你想知道一個(gè) PHP 項(xiàng)目的代碼復(fù)雜度是什么樣子的,我推薦你可以使用 phploc 和 PhpMetrics 來檢測一下。
使用 phploc
這是一個(gè)標(biāo)準(zhǔn)的 composer package,不過我推薦大家可以直接使用 composer 全局安裝:
composer global require 'phploc/phploc=*'
然后安裝完畢,你就可以使用 phploc 命令來檢測你的代碼復(fù)雜度了:
phploc ./app
比如上面這行代碼就是檢測你的項(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%)
不過你可能也感覺到,這個(gè) phploc 的一大不便之處就是,目前來說,他還不能把相關(guān)的測試結(jié)果可視化或者說自定義檢測的最高復(fù)雜度。所以,PhpMetrics 就應(yīng)運(yùn)而生了。
使用 PhpMetrics
首先需要說明的是,PhpMetrics 可以更深入到你的代碼中,并且會(huì)生成一個(gè) html 文件作為分析的結(jié)果,這樣我們查看檢測結(jié)果就會(huì)非常的直觀。
安裝 PhpMetrics 也是可以直接 composer 全局安裝:
composer global require 'phpmetrics/phpmetrics'
安裝完畢之后,可以這樣來運(yùn)行命令分析代碼復(fù)雜度:
phpmetrics --report-html=report.html ./app
等待 phpmetrics 運(yùn)行結(jié)束,用 Chrome 打開 report.html 就可以查看相對應(yīng)的結(jié)果,大概是這個(gè)樣子:

以上就是檢測 PHP 應(yīng)用的代碼復(fù)雜度的詳細(xì)內(nèi)容,更多關(guān)于PHP 代碼復(fù)雜度檢測的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
在Windows系統(tǒng)下使用PHP生成Word文檔的教程
這篇文章主要介紹了在Windows系統(tǒng)下使用PHP生成Word文檔的教程,要學(xué)習(xí)PHP的同學(xué)可以通過這樣的方式來練練手^^需要的朋友可以參考下2015-07-07
PHP數(shù)組式訪問接口ArrayAccess用法分析
這篇文章主要介紹了PHP數(shù)組式訪問接口ArrayAccess用法,結(jié)合實(shí)例形式分析了數(shù)組式訪問接口ArrayAccess的概念、功能、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-12-12
PHP獲取當(dāng)前日期所在星期(月份)的開始日期與結(jié)束日期(實(shí)現(xiàn)代碼)
本篇文章是對PHP獲取當(dāng)前日期所在星期(月份)的開始日期與結(jié)束日期的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php+mysql+jquery實(shí)現(xiàn)日歷簽到功能
本文主要介紹了php+mysql+jquery實(shí)現(xiàn)日歷簽到功能的過程與步驟,具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
thinkphp操作mongo數(shù)據(jù)的三種方法
這篇文章主要給大家介紹了thinkphp操作mongo數(shù)據(jù)的三種方法,使用tp中的擴(kuò)展,使用tp中的db類和使用MongoDB PHP驅(qū)動(dòng)程序這三種方法,并通過代碼講解的非常詳細(xì),需要的朋友可以參考下2023-12-12
PHP+jQuery實(shí)現(xiàn)滾屏無刷新動(dòng)態(tài)加載數(shù)據(jù)功能詳解
這篇文章主要介紹了PHP+jQuery實(shí)現(xiàn)滾屏無刷新動(dòng)態(tài)加載數(shù)據(jù)功能,涉及php動(dòng)態(tài)讀取數(shù)據(jù)庫及加載數(shù)據(jù)實(shí)現(xiàn)滾屏無刷新效果的具體操作技巧,需要的朋友可以參考下2017-05-05
PHP查詢大量數(shù)據(jù)內(nèi)存耗盡問題的解決方法
這篇文章主要為大家詳細(xì)介紹了PHP查詢大量數(shù)據(jù)內(nèi)存耗盡問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
php實(shí)現(xiàn)的支持imagemagick及gd庫兩種處理的縮略圖生成類
這篇文章主要介紹了php實(shí)現(xiàn)的支持imagemagick及gd庫兩種處理的縮略圖生成類,包含了用法的詳細(xì)描述,非常實(shí)用,需要的朋友可以參考下2014-09-09

