PSR-12の
ってなんぞや、開発にどういう使われ方をするのか、これをすることでどんな効果があるのか?
というかUnix LFって何よと思ったので少し深堀りしたいと思います。
AI要約
- PSR-12の目的: PHPのコーディングスタイルを標準化し、コードの一貫性と可読性を向上させる
- Unix LFとは: LF(ラインフィード、\n)は、Unix系システムで行の終わりを示す改行コード
- PSR-12での改行コード: 全てのPHPファイルは、UnixスタイルのLF(\n)を使用する必要がある
- 重要性: 可読性の向上とツール・バージョン管理システム(例:Git)との互換性確保のため
- VSCode設定: VSCodeで改行コードをLFに設定し、一貫したコードスタイルを維持する
そもそもPSR-12とは?
PHPのコーディングスタイルを標準化するためのガイドラインです。
これに従うことでコードの一貫性と可読性が向上し、さまざまな開発者がプロジェクトで共同作業を行いやすくします。
プロジェクト独特のルールではなく、広まっているガイドラインなので知っている人であれば開発へのアサインも容易になります
Unix LFとは
LF(ラインフィード、LineFeed)は、文字列の終わりを示す制御文字で、Unix系システム(LinuxやMacOS)では行の終わりを示すために使用されます。具体的には、文字コードとして\n
と表現されます。
いわゆる改行コードですね
改行コードの種類に関してはコチラ↓
PSR-12の「Unix LF」とはどういうことか?
PSR-12では、すべてのPHPファイルは改行する際に改行コードとしてUnixスタイルのラインフィード(LF)を使用する必要があります。
これは、WindowsのCRLF(キャリッジリターンとラインフィード、/r/n
)とは異なります。
PSR-12に従うことで、コードの一貫性と移植性が向上し、異なる開発環境間でファイルをやり取りする際に発生する問題を防ぐことができます。
PSR-12で定められた改行コードを使いましょうということですね
なぜUnix LFが重要なのか?
- 可読性
- 一貫した改行コードを使用することで、コードの可読性が向上します
- 互換性
- 多くのツールやバージョン管理システム(例えばGit)は、ファイルの最後が単一のLFで終わることを前提としています。これに従うことで、ツール間の互換性が保たれ、問題を回避できます
実際の開発での使用例
開発者がコードを書く際に、全てのPHPファイルがLFで終わるように設定します。これにより、チーム全体で一貫したコードスタイルを維持できます。
良い例
<?php
echo "Hello, World!";
最後の行にはコードがあり、その後に単一のLFで終わっています
悪い例1: 最後の行が空白だけ
<?php
echo "Hello, World!";
// ここ
最後の行が空白(スペースやタブ)だけで終わっています
悪い例2: 最後の行にLFがない
悪い例3: 最後の行が複数のLFで終わる
(ソースコードでは実現できないため割愛)
VSCodeでの設定
VsCodeでは、ファイルの改行コードを設定することができます
以下の手順で設定を変更できます
- 画面右下のステータスバー
- 改行コードの選択
- デフォルト設定の変更
- 設定ファイル(
settings.json
)に以下の設定を追加して、すべてのファイルでデフォルトの改行コードをLFに設定します
- 設定ファイル(
{
"files.eol": "\n"
}
これにより、新規に作成されるファイルや既存のファイルを保存する際に、LFが自動的に使用されるようになります
おわりに
おそらくGit上で開発されているプロジェクトをclone
なりpull
なりしていればOS問わず問題ない解釈です
だから今まで疑問視してなかったのかぁと感じました
他の言語はわかりませんが、改行コードに関してはPSR-12に限らずLF
がデファクトスタンダードになりそうですね