检测 PHP 应用的代码复杂度

栏目: PHP · 发布时间: 7年前

内容简介:检测 PHP 应用的代码复杂度

原文来自: https://www.laravist.com/blog...

如果说你想知道一个 PHP 项目的代码复杂度是什么样子的,我推荐你可以使用 phplocPhpMetrics 来检测一下。

1.使用 phploc

这是一个标准的 composer package,不过我推荐大家可以直接使用 composer 全局安装:

composer global require 'phploc/phploc=*'

然后安装完毕,你就可以使用 phploc 命令来检测你的代码复杂度了:

phploc ./app

比如上面这行代码就是检测你的项目中 app/ 目录的代码复杂度;如果是一个 Laravel 的项目的话,大概会是这个样子的结果输出:

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%)

不过你可能也感觉到,这个 phploc 的一大不便之处就是,目前来说,他还不能把相关的测试结果可视化或者说自定义检测的最高复杂度。所以,PhpMetrics 就应运而生了。

使用 PhpMetrics

首先需要说明的是, PhpMetrics 可以更深入到你的代码中,并且会生成一个 html 文件作为分析的结果,这样我们查看检测结果就会非常的直观。

安装 PhpMetrics 也是可以直接 composer 全局安装:

composer global require 'phpmetrics/phpmetrics'

安装完毕之后,可以这样来运行命令分析代码复杂度:

phpmetrics --report-html=report.html ./app

等待 phpmetrics 运行结束,用 Chrome 打开 report.html 就可以查看相对应的结果,大概是这个样子:

检测 PHP 应用的代码复杂度


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

可伸缩架构

可伸缩架构

【美】Lee Atchison / 张若飞、张现双 / 电子工业出版社 / 2017-7 / 65

随着互联网的发展越来越成熟,流量和数据量飞速增长,许多公司的关键应用程序都面临着伸缩性的问题,系统变得越来越复杂和脆弱,从而导致风险上升、可用性降低。《可伸缩架构:面向增长应用的高可用》是一本实践指南,让IT、DevOps和系统稳定性管理员能够了解到,如何避免应用程序在发展过程中变得缓慢、数据不一致或者彻底不可用等问题。规模增长并不只意味着处理更多的用户,还包括管理更多的风险和保证系统的可用性。作......一起来看看 《可伸缩架构》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具