PHP代码分析库

0.2.0 2022-05-08 12:44 UTC

This package is auto-updated.

Last update: 2024-09-08 18:10:57 UTC


README

代码分析、创建和修改库

安装

$ composer require --dev monomelodies/codein

用法

Codein是一个命令行工具,用于检查PHP文件或PHP文件目录中的代码异味。它目前在类上工作得最好。

$ vendor/bin/codein [OPTIONS] path/to/file/or/directory

如果提供的参数是PHP文件,则仅分析该文件。如果是目录,则扫描该目录中的所有PHP文件。

选项

-r|--recursive 递归迭代底层目录 --check=name/of/check 一个或多个要检查的项目名称

添加检查

默认情况下,Codein仅扫描PHP解析错误(希望您的编辑器已经设置好了这项功能!)。为了使其更有用,应该添加插件

为什么是插件呢?因为我的编码风格可能不是你的,而且我视为代码异味的东西(例如,缺少返回类型提示)可能在你的代码库中是有效的(因为你可能需要支持旧版PHP版本,例如)。

让我们添加一个检查返回类型提示的插件

$ composer require --dev monomelodies/codein-typehints
$ vendor/bin/codein --check=monomelodies/codein-typehints path/to/file

编写插件

每个插件都应该扩展Sensi\Codein\Check。主要工作在check方法中完成。它接受一个参数(要检查的文件名)并返回一个Generator。每次你的插件遇到代码异味时,它应该yield一个包含错误信息的字符串。你可以使用内建的extractClass方法来获取文件中包含的类名,这样你就可以检查它了。

Codein自动将类名Check附加到在--check=...选项中指定的命名空间。应用正常的命名空间解析规则。

  • 正斜杠被替换为反斜杠;
  • 每个部分以大写字母开头;
  • 破折号被转换为snakeCase。

例如,monomelodies/codein-typehints解析为类Monomelodies\CodeinTypehints\Check

查看现有的插件以了解这种感觉。

使用simple ansi colors格式化生成的消息,自动附加"<reset>\n"。你可以玩弄颜色;用于非常糟糕的事情,用于警告等。

codein.json配置文件

Codein在当前工作目录中查找codein.json配置文件。它允许你指定一些事情

  • 默认的checks数组。无论你指定什么--check=...选项,都会运行这些检查。很有用,因为当你有多个插件时,每次都输入它们很快就变得繁琐。
  • 字符串或数组形式的bootstrap文件(相对于getcwd())。例如,你的项目可能依赖于配置在中央文件中的依赖注入。
  • 包含类名及其构造时使用的一组参数的constructors对象。注意,这些参数是逐字书写的;例如,字符串应写作"'this is a string'"(注意嵌套引号)。这是因为某些类将期望在构造函数参数中使用实例化的对象,允许你指定类似于"new FooBar"的东西。