gild/php-fixed
Composer 安装命令:
composer require gild/php-fixed
包简介
It is a library that provides a mechanism to keep the commit log clean by performing a PSR-compliant php coding check before committing.
README 文档
README
PSRに準拠したphpのコーディングチェックをコミット前に行うことでコミットログを綺麗に保つ機構を提供するライブラリです。
導入要件
- ローカル環境PHP > ver5.4
導入方法
composer.jsonに以下追加します。
{
"scripts": {
"post-autoload-dump": [
"bash vendor/gild/php-fixed/execution.sh commit"
],
"check": [
"bash .git_hooks/pre-commit/main.sh"
],
"lint": [
"phpcs --standard=phpcs.xml -sp ."
],
"lint:fix": [
"phpcbf --standard=phpcs.xml -sp ."
]
}
}
composer require --dev gild/php-fixed ^3.0
check, lint, lint:fixは任意で設定するものになります。
post-autoload-dumpが重要です。
post-autoload-dump
execution.sh {triggerType}
'. execution.sh commit' -> コミット前にコーディングチェックを行います。
'. execution.sh push' -> プッシュ前にコーディングチェックを行います。コミット前のチェックは行いません。
check
commitを行わずに、単にコーディングチェックから自動修正まで一気通貫して行いたい場合に使用します。これはlintとlint:fixの組み合わせです。
commit時に行われる、コーディングチェックから自動修正までの処理はcomposer checkを呼び出しているわけではありません。
checkエイリアス自体の処理は本ライブラリを組み込む際の依存関係はないものとなります。
lintとlint:ixについても同様です。
lint
commitを行わずに、単にコーディングチェックを行いたい場合に使用します。
lint:fix
commitを行わずに、単に自動修正を行いたい場合に使用します。
管理対象ファイルについて
以下は管理対象ファイルとしてください。
phpcs.xml
このファイルはリポジトリ直下に生成されます。
Laravelをベースにルール定義していますが 、独自にルールを書き換えて自由に設定可能です。
Customisable Sniff Properties
ファイル名を変更することは可能ですが、main.shでファイル名変更することを忘れないで下さい。
main.sh
このファイルはリポジトリ直下に生成されるgit-hooks/pre-{triggerType}配下に生成されます。
処理自体は利用者が設定管理することが可能です。 ファイル名の変更は不可です。
gitクライアントソフトを介した挙動
※ CULでgitコマンドを直接打って操作する方は必要のない手順です。
チェックスクリプトはphpコマンドを介して実行されますが、gitクライアントソフトではphpのpathを読み込まないものもある為、 チェックスクリプトの処理開始冒頭で/usr/local/binを読み込むようにしています。
従って、ローカル環境に導入したphpのエイリアスを/usr/local/binに作っていただくことになります。
以下エイリアス作成例です。
ln -s /usr/local/opt/php@7.3/bin/php /usr/local/bin/php
既にphp5.4以上をローカルに導入してる場合はphpが格納されている場所を調べ、そちらのエイリアスを作成します。
type php # php is /usr/local/opt/php@7.3/bin/php ln -s /usr/local/opt/php@7.3/bin/php /usr/local/bin/php
gitクライアントソフトを利用する方は上記設定をしていないとコーディングチェックの自動化は行えません。
注意点
出力形式やログについて
以下のような出力形式が変わるオプションはphpcs.xmlに定義してはなりません。
ログを吐き出すようにするとチェックスクリプトが警告を捉えることができません。
<arg value="sp" /> <arg name ="report-full" value="./phpcs.log" />
チェックスクリプトを介さなければ自由に設定しても構いませんので、その為にcomposer.jsonのscriptsに独自定義します。
{
"scripts": {
"lint": [
"phpcs --standard=phpcs.xml -sp ."
],
"lint:fix": [
"phpcbf --standard=phpcs.xml -sp ."
]
}
}
既にgit-hookを使われてる方について
本ライブラリ導入前にgit-hookを利用しているケースで既にpre-commitやpre-pushに何かしらのスクリプトを記述している場合を想定し、削除や上書きはしておりません。
pre-commitやpre-pushは.buckupという接尾辞を付与して退避しています。
補足
可能であればローカル環境への別途導入物はライブラリに依存すべきではないと考えていますが、git操作はローカル環境においてdocker-containerから行うケースは殆どない為、各自のローカル環境に導入要件(php5.4以上)を組み込んでいただく必要がありました。
gild/php-fixed 适用场景与选型建议
gild/php-fixed 是一款 基于 Shell 开发的 Composer 扩展包,目前已累计 24 次下载、GitHub Stars 达 1, 最近一次更新时间为 2022 年 04 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「check」 「automation」 「pre-commit」 「pre-push」 「php-codesniffer」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 gild/php-fixed 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 gild/php-fixed 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 gild/php-fixed 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Symfony bundle for chameleon-system/sanitycheck
This Extension integrates a credit check and more made by the LEONEX Risk Management Platform into your order process. Extensive configuration and evaluation options is provided in the Platform
SoftWax Health Check Bundle for Symfony framework
Check for holidays - localeaware
Command-line utility for Vtiger CRM.
Historical accounting for contacts
统计信息
- 总下载量: 24
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-04-20