denzyl/phanalist

高性能的PHP静态分析器,使用非常简单。它帮助您捕获PHP代码中的常见错误。

v0.1.22 2024-05-17 20:28 UTC

This package is auto-updated.

Last update: 2024-09-20 18:13:43 UTC


README

高性能的PHP静态分析器,使用非常简单。它帮助您捕获PHP代码中的常见错误。

安装

安装Phanalist最简单的方法是使用安装脚本。

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/denzyldick/phanalist/main/bin/init.sh | sh

它将自动下载适合您平台的可执行文件

$ ~/phanalist -V
phanalist 1.0.0

还有多种其他安装选项

使用方法

要分析项目源代码,只需运行 phanalist

~/phanalist

示例

Example

首次运行时,将创建 phanalist.yaml 并使用默认配置。在随后的运行中会重用此配置。

还有一些附加参数

  • config:配置文件路径,默认值为 ./phanalist.yaml
  • src:项目源代码路径,默认值为 ./src
  • output-format:输出结果的格式。可能的选项有 text(默认)、jsonsarif
  • summary-only:只输出每个规则发现的违规数量。
  • quiet:抑制所有输出。

配置

可能的选项有

  • enabled_rules 包含要使用的规则列表。如果此列表为空,将使用所有规则。
  • disable_rules 包含要忽略的规则列表。
  • rules 规则特定的选项。

默认配置文件是

enabled_rules: []
disable_rules: []
rules:
  E0007:
    check_constructor: true
    max_parameters: 5
  E0009:
    max_complexity: 10
  E0010:
    max_paths: 200
  E0012:
    include_namespaces:
      - "App\\Service\\"
      - "App\\Controller\\"
    exclude_namespaces: []

规则

以下规则可用

添加新规则是一项简单任务,有关如何进行的教程

文章

阅读https://dev.to/denzyldick上的系列章节,了解项目的内部结构。这是一本很好的、易于阅读的入门指南。

  1. 编写您自己的PHP静态分析器。
  2. 如何让编写面条代码变得不可能。
  3. 检测PHP源代码的AST中的面条代码。
  4. 为Swoole、RoadRunner和FrankenPHP准备Symfony应用程序(不涉及AI)。
  5. 改进您的CI输出
  6. 为什么在PHP中使用unserialize是一个坏主意