1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【3分で終わる】とにかく簡単にphpのフォーマッターを導入する(PHP-CS-Fixer)

Posted at

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 万行超のコードベースをテストせずにリファクタリングリリースした話

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?