はじめに
前回は自動的に規約に従ってコードを検知・整形してくれるライブラリの紹介をしました。
今回はコーディング規約について見ていきます。
- コーディング規約に沿ってレビューができる
- 保守性が高くなる
- 開発で迷いが少なくなる
- 社内ルールをつくる上でのベースとすることができる
- コードを統一化することができる
ざっとあげただけでもこのように多くのメリットがあります。
コーディング規約を意識してコードを書くことで
無駄な指摘をなくしたり
社内共通認識(社外に出ても)として持つことができたりするので
覚えておいて損はないかと思います。
対象読者
- 複数書き方があるけどどちらのほうが良いのかわからない
- 初学者でどのような規約があるのか知りたい方
- 復習したい方
目次
PSRってなに?
PHP Standards Recommendations
のことでコーディング規約と呼ばれているもののひとつです。
PSRを守ることで PHP や PHPフレームワーク を使用するときには
同じような意識でコーディングすることができ、品質を保つことができるようになります。
こちらがドキュメントです。
↑は英語なので読めないという方はまずは日本語訳してくださっているサイトを参考にすると
理解しやすいかもしれません。
絶対守りたい規約
基本的には PHP_CodeSniffer などの静的解析ツールを使用していればあまり意識しなくてもコードを整形してくれます。
しかし、規約を知らなくて良いということにはならないので以下の点に着目していくつか規約の内容を見ていきます。
他のものも気になるという方はドキュメントをご覧ください。
- すぐに改善できるもの
- これだけは守っておきたい
Basic Coding Standard
PSR-1 で解説されている規約に従う。
(※ PSR-12 は PSR-1 (コーディング標準)に準拠が必要になる。)
PSR-12 と比べるとボリュームが少なく読みやすいと思います。
Files
- すべてのPHPファイルは単一のラインフィードで終了する必要がある
- PHP のみのファイルの場合は終了タグ(
?>
)を省略する
cf. ラインフィード
https://wa3.i-3-i.info/word11579.html
Indenting
- インデントはスペース4つ分にする。
- インデントにタブを使用しない。
Extends and Implements
-
Extends
とImplements
は class と同じ行に書く。 - class の
{
と}
は独自の行で書く。前後に空白はいれない。
Methods and Functions
Method and Function Arguments
- メソッドのカンマの前にスペースをいれない。
- メソッドの引数のカンマのあとにスペースをいれる。
Control Structures
if, elseif, else
for
foreach
おわりに
規約を意識してコードを書くことは非常に重要なので
たまにはドキュメントを読むのも良いかもしれません。