PHP应用代码复杂度检测使用方法

 更新时间:2023年06月28日 11:02:09   作者:JellyBool  
这篇文章主要为大家介绍了PHP应用代码复杂度检测使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

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

使用 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 应用的代码复杂度的详细内容,更多关于PHP 代码复杂度检测的资料请关注脚本之家其它相关文章!

相关文章

  • php中通过eval实现字符串格式的计算公式

    php中通过eval实现字符串格式的计算公式

    有时候我们对每一种产品都有一个提成公式,而这个计算提成的公式是以字符串格式存在表中的,当我们用这个计算公式时,他并不像我们写的:$a=2+3*5;这样简单的能计算出结果,而它是个字符串,所以,我们就必须把字符串转化为我们能够处理的结果
    2017-03-03
  • php和nginx交互实例讲解

    php和nginx交互实例讲解

    在本篇文章中小编给大家分享的是关于php和nginx如何交互的实例以及相关知识点,有需要的朋友们学习下。
    2019-09-09
  • php获取一定范围内取N个不重复的随机数

    php获取一定范围内取N个不重复的随机数

    这篇文章主要介绍了php获取一定范围内取N个不重复的随机数的方法,通过range函数创建指定范围内数组及shuffle进行数组随机排序,并使用array_slice抽取数组实现该功能,非常简单实用,需要的朋友可以参考下
    2016-05-05
  • PHP中的命名空间详细介绍

    PHP中的命名空间详细介绍

    这篇文章主要介绍了PHP中的命名空间详细介绍,本文讲解了命名空间(namespace)的概念、正在使用命名空间、定义命名空间、子命名空间、从命名空间中调用代码等内容,需要的朋友可以参考下
    2015-07-07
  • php中的Base62类(适用于数值转字符串)

    php中的Base62类(适用于数值转字符串)

    以下是对php中Base62类的用法进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • PHP页面跳转操作实例分析(header方法)

    PHP页面跳转操作实例分析(header方法)

    这篇文章主要介绍了PHP页面跳转操作,结合实例形式对比分析了HTML跳转与php使用header方法跳转的相关操作技巧与注意事项,并给出了一个跳转的封装函数供大家参考,需要的朋友可以参考下
    2016-09-09
  • php多线程实现方法及用法实例详解

    php多线程实现方法及用法实例详解

    这篇文章主要介绍了php多线程实现方法及用法实例,PHP多线程实现方法和fsockopen函数有关,需要的朋友可以参考下
    2015-10-10
  • PHP数组操作类实例

    PHP数组操作类实例

    这篇文章主要介绍了PHP数组操作类,涉及php针对数组的删除、转换、分组、排序等相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP调用MySQL存储过程并返回值的方法

    PHP调用MySQL存储过程并返回值的方法

    这篇文章主要介绍了PHP调用MySQL存储过程并返回值的方法,较为详细的分析了存储过程的使用技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • php中钩子(hook)的原理与简单应用demo示例

    php中钩子(hook)的原理与简单应用demo示例

    这篇文章主要介绍了php中钩子(hook)的原理与简单应用,结合完整demo实例形式分析了php中钩子(hook)的原理及简单使用操作技巧,需要的朋友可以参考下
    2019-09-09

最新评论