【3分で終わる】とにかく簡単にphpのフォーマッターを導入する(PHP-CS-Fixer)
PHP-CS-Fixer
PSR-1、PSR-2などで定義されているPHPコーディング規約に整形してくれるツールです。
一番簡単な方法
ひとまずインストールします。
$ composer require --dev friendsofphp/php-cs-fixer
composer.jsonのscriptsに下記を記載します。
(ルールはお好みで)
{
"scripts": {
"fixer": [
"vendor/bin/php-cs-fixer fix src --rules=@Symfony,@PhpCsFixer,@PHP80Migration,declare_strict_types --allow-risky=yes"
],
}
実行すると整形されます。
$ composer fixer
> vendor/bin/php-cs-fixer fix src --rules=@Symfony,@PhpCsFixer,@PHP80Migration,declare_strict_types --allow-risky=yes
Loaded config default.
Using cache file ".php-cs-fixer.cache".
Fixed all files in 0.056 seconds, 12.000 MB memory used
個人プロダクト以外や、除外するファイルが多いとちゃんと定義ファイルを書いたほうが良さそう。
$ echo /.php-cs-fixer.cache >> ./.gitignore
PHP-CS-Fixerは実行するとキャッシュファイルを生成するのでignoreするのをお忘れなく
フォーマットのルールについて
ルールの数はかなり多く、細かく設定するとかなり時間がかかりそう。
@Symfony
@PhpCsFixer
などのメジャーなルールを設定すれば、PSRの規則通りになるので時間かけずにチャチャッと実行するのが良さそうだと思いました。
既存プロダクトに導入する際の注意点
全てのコードをフォーマットするととんでもないバグを生み出してしまったりするので、注意しましょう。
導入する際はフォーマット前とフォーマット後でASTの変更がないことを検証すると、挙動に変更がないことを証明できます。
(参考) 20 万行超のコードベースをテストせずにリファクタリングリリースした話
Author And Source
この問題について(【3分で終わる】とにかく簡単にphpのフォーマッターを導入する(PHP-CS-Fixer)), 我々は、より多くの情報をここで見つけました https://qiita.com/UvgQL/items/113a987d9f39cbed5015著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .