giles / php-csc
PHP代码风格检查 使用git hook、phplint、phpcs在git commit时对PHP代码进行语法检测、代码风格检查,如有问题,则不允许提交。
v0.2.0
2024-03-26 05:49 UTC
Requires
- php: >=7.1
- overtrue/phplint: 1.*
- squizlabs/php_codesniffer: 3.*
Requires (Dev)
- phpunit/phpunit: ^4.0 || ^5.0 || ^6.0 || ^7.0
This package is auto-updated.
Last update: 2024-09-24 18:03:01 UTC
README
PHP代码风格检查 使用git hook、phplint、phpcs在git commit时对PHP代码进行语法检测、代码风格检查,如有问题,则不允许提交。
前置要求
- 已安装Git
- PHP已安装并全局可用 Windows下载最新版php php-7.3.8-nts-Win32-VC15-x64.zip
- Composer可用 Windows下载 Composer
检测原理及流程
- 每次git commit前都可以触发hooks
- 开发特定脚本,在git hooks触发时执行
- 首先利用phpline检测提交文件的语法是否有误
- 再次利用phpcs检测PHP的风格规范是否符合特定规范
- 符合规范可以继续执行git push
- 不符合规范,本次commit失败,需要根据错误提示进行修改
- 再次 git add && git commit
使用
composer require --dev giles/php-csc
该命令会根据本机系统检查phplint、phpcs的安装情况,并将git原有的pre-commit钩子备份,再将php-csc的pre-commit钩子复制至.git/hooks中。
这样,在git commit之前,就会执行phplint和phpcs检查待提交的文件,如果不满足要求,则会阻止代码提交。
开放指令
composer 自动挂载
在主项目composer 文件中增加事件
"post-autoload-dump": [ "Giles\\MountHooks\\PHPCodeChecker::hookInstall" ], "pre-package-uninstall": [ "Giles\\MountHooks\\PHPCodeChecker::hookUnstall" ]
可以在每次执行composer update时检测钩子挂载情况,自动挂载钩子
注意事项
-
phpcsc的pre-commit会覆盖原有的pre-commit,但仍然会将它备份为pre-commit.bak.{timestamp}。所以之前有在pre-commit中插入操作,请谨慎安装。
-
Windows版本的PHPStorm 默认回车符\r\n 这不符合PSR2规范,需要设置为\n
File->Line Separators->LF - Unix and macOs (\n)