注: Ecstore是一款企業(yè)級B2C電子商城系統(tǒng)承粤,與Ecshop一樣同出商派嗅钻。
??寫了這么多年代碼,如果有人問你长窄,你的項(xiàng)目有多少個(gè)文件挥唠、多少行代碼抵恋、多少個(gè)方法,你可以用確切的數(shù)據(jù)回答他嗎宝磨?
??當(dāng)項(xiàng)目經(jīng)理弧关、產(chǎn)品經(jīng)理給你安排一個(gè)他們覺得非常簡單的需求時(shí)盅安,你可以用確切的數(shù)據(jù)告訴他這有多復(fù)雜嗎?
??下面給你介紹一個(gè)代碼復(fù)雜度檢測工具:PHPLOC
[lru @ bin]$./phploc ~/project/b2c/ecstore
phploc 4.0.0 by Sebastian Bergmann.
Directories 995
Files 2515
Size
Lines of Code (LOC) 340269
Comment Lines of Code (CLOC) 72154 (21.20%)
Non-Comment Lines of Code (NCLOC) 268115 (78.80%)
Logical Lines of Code (LLOC) 86290 (25.36%)
Classes 81433 (94.37%)
Average Class Length 41
Minimum Class Length 0
Maximum Class Length 1078
Average Method Length 7
Minimum Method Length 0
Maximum Method Length 214
Functions 2150 (2.49%)
Average Function Length 9
Not in classes or functions 2707 (3.14%)
Cyclomatic Complexity
Average Complexity per LLOC 0.36
Average Complexity per Class 16.22
Minimum Class Complexity 1.00
Maximum Class Complexity 382.00
Average Complexity per Method 3.90
Minimum Method Complexity 1.00
Maximum Method Complexity 135.00
Dependencies
Global Accesses 4771
Global Constants 924 (19.37%)
Global Variables 205 (4.30%)
Super-Global Variables 3642 (76.34%)
Attribute Accesses 22406
Non-Static 21875 (97.63%)
Static 531 (2.37%)
Method Calls 55404
Non-Static 37543 (67.76%)
Static 17861 (32.24%)
Structure
Namespaces 0
Interfaces 83
Traits 0
Classes 1896
Abstract Classes 45 (2.37%)
Concrete Classes 1851 (97.63%)
Methods 10759
Scope
Non-Static Methods 10179 (94.61%)
Static Methods 580 (5.39%)
Visibility
Public Methods 9865 (91.69%)
Non-Public Methods 894 (8.31%)
Functions 218
Named Functions 213 (97.71%)
Anonymous Functions 5 (2.29%)
Constants 366
Global Constants 221 (60.38%)
Class Constants 145 (39.62%)
以上就是phploc
檢測 ecstore v2.3.80
的代碼情況世囊”鸩t?梢钥闯鰜恚?/p>
- ecstore有** 995 **個(gè)php目錄
- ecstore有** 2515 **個(gè)php文件
- ecstore有** 340269 **行php代碼
...
PHPLOC
的安裝非常簡單:
$ wget https://phar.phpunit.de/phploc.phar
$ php56 phploc.phar
$ composer require --dev phploc/phploc
$ cd vendor/bin/
$ ./phploc ~/project/b2c/ecstore
** 注: **當(dāng)然還有別的工具,如:phpmetrics株憾,請自行谷歌蝙寨。