PHP CS Fixerの導入

ソースコードは人それぞれ書き方が違うので、コーディング規約を設けたい。

それを自動で出来るらしいのでインストールする。

 

 

******************

他環境にコピーする時は、composer install で良さそう

composer install と composer requireの違いを確認する

******************

 

php-cs-fixerのインストール
composer.jsonがあるディレクトリにて
composer require --dev friendsofphp/php-cs-fixer

 

PHP - PHP Composerでrequireとrequire-devの使い方|teratail

require#
パッケージのインストールに最低限必要なパッケージのリストを表します。
この要求に満たされていない場合、パッケージをインストールする事は出来ません。

require-dev (root-only)#
本パッケージを開発したり、テストを走らせたりするためのパッケージのリストを表します。パッケージが存在しなかった場合は、自動的にインストールされ、
また、versionが古い場合は、最新のversionにアップデートされます。

 

 

◆ インストール確認
./vendor/bin/php-cs-fixer --version

 

 

◆ 設定ファイルを作成
touch .php-cs-fixer.dist.php

 

コードを書き換えるリスキーなコードを無効化する
setRiskyAllowed

 

◆.gitignore に追加
.php-cs-fixer.cache


◆ バージョン確認
./vendor/bin/php-cs-fixer --version

 

 

◆ ドライラン
./vendor/bin/php-cs-fixer fix --dry-run --diff -v ./対象DIR

 

◆ 実行
./vendor/bin/php-cs-fixer fix ./対象DIR

 


未◆ github-actions-でプルリク作成時に自動チェックする

 

◆ ルールの詳細確認
php-cs-fixer describe array_syntax
https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/doc/rules/index.rst

 

◆ 設定のGUI

PHP-CS-Fixer Configurator

php_cs_fixerのオプションをハックする ~ 実行時のdiffつき ~ - Qiita

 

 

 

<参考情報>

Docker X Laravel PHP CS Fixer を導入して、ソースコードを自動整形する - Qiita

 

ソースコードの“赤ペン先生”PHP-CS-Fixerのインストールと設定 - Qiita

 

php-cs-fixerをつかったコードフォーマットの自動化(git hook) - Wiz テックブログ

 

PHP-CS-Fixerの設定が面倒くさい人のためのルールセット - Qiita

 

 

 

 

 

以下を参考に設定を行った。

php-cs-fixer-rules/Rules.php at master · suin/php-cs-fixer-rules · GitHub

ソースコードの“赤ペン先生”PHP-CS-Fixerのインストールと設定 - Qiita

PHP-CS-Fixer Configurator

 

以下の設定がv3.4では使えなくなってた。

 

'hash_to_slash_comment' => true,
'is_null' => [
    'use_yoda_style' => false,
],
'method_separation' => true,
'no_extra_consecutive_blank_lines' => [
    'tokens' => [
        'break',
        'continue',
        'extra',
        'return',
        'throw',
        'use',
        'parenthesis_brace_block',
        'square_brace_block',
        'curly_brace_block',
    ],
],
'no_multiline_whitespace_before_semicolons' => true,
'phpdoc_inline_tag' => true,
'psr4' => true,
'trailing_comma_in_multiline_array' => true,