monomelodies / codein
PHP代码分析库
Requires
- monolyth/cliff: ^0.7.0
- simoneast/simple-ansi-colors: ^1.0
Requires (Dev)
- gentry/gentry: ^0.14.0
- gentry/toast: ^0.1.1
- toast/unit: ^2.1
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"的东西。