PHPには配列の構文があります。PHPの配列は連想配列であり、次の様に書けます。
PHP: 配列 – Manual
// ex.1
[
'a' => 'aa',
'ab' => 'abab',
'abc' => 'abcabc',
'd' => 'abcd',
];
配列構文は”[“で始まり、”キー=>値”の配列要素を”,”で区切り、”]”で終わります。配列構文において、空白はあってもなくてもかまいません。上記例は、次の様にも書けます。
// ex.2
['a'=>'aa','ab'=>'abab','abc'=>'abcabc','d'=>'abcd',];
// ex,3
[
'a' => 'aa',
'ab' => 'abab',
'abc' => 'abcabc',
'd' => 'abcd',
];
おそらくex.3が最も見やすい人が多いのではないでしょうか。縦揃えによるグループ化が認識されるため、どれがキーでどれが値かすぐに認識できるはずです。しかし、最も書きにくいのもex.3です。手打ちするには半角スペースの連打が実に辛いです。この記事では、この縦揃えを自動で行ってくれる仕組みを紹介します。
一つはPHP-CS-FixerというPHPソースコードの整形、問題修正ツールです。
FriendsOfPHP/PHP-CS-Fixer: A tool to automatically fix PHP Coding Standards issues
friendsofphp/php-cs-fixer – Packagist
PHP-CS-Fixerの使い方は上記リンクが詳しいです。PHP-CS-Fixerには binary_operator_spaces というルールと、このルールの align_double_arrow オプションがあります。
PHP-CS-Fixer Configurator
次の様に PHP-CS-Fixer用の設定ファイル(名前は自由。よくあるのは.php_csとか)に記述し、
return PhpCsFixer\Config::create()
->setRules(
[
'binary_operator_spaces' => [
'align_double_arrow' => true,
'align_equals' => true,
],
]
);
次の様にPHP-CS-Fixerを実行するとプロジェクト内のPHPソースコードの配列を軒並み縦揃えに整形してくれます。
./vendor/bin/php-cs-fixer fix -vvv --config .php_cs
PHPStormにも同様の機能があります。設定->エディター->コード・スタイル->PHP->折り返し及び括弧->配列イニシャライザー->Align key-calue pairs で次の画像の様にチェックを入れると Ctrl+Alt+L で走るようなコード整形時に配列を縦揃えにしてくれます。
