PSR-2 の最終行の空行についての規約を勘違いしていた

PHP の PSR-2 で「最終行に空行を入れる」という規約がある。

All PHP files MUST end with a single blank line.

この規約に従っていたつもりなんだけど、勘違いしていたことがわかった1ので備忘。

UNIXの行の定義とviの改行コード | Firegoby より引用

POSIXでは「Unix においてテキストファイルとは行の集合であり、行とは改行文字で終わるものと定義される」と定義されている。

viのような由緒正しきテキストエディターは、この定義を忠実に守っており、行末には必ず改行が入る仕様になっている。

このため Vim で最終行に 空行が見える ように記述している場合、最終行に改行が連続(LFLF)して入力されている。

GitHub でも最終行の空行は表示されない2。PSR-2 の規約を満たしていても、Vim と GitHub では空行が見えないため、空行を連続して入力してしまっていた。

ということで PSR-2 に従う場合、Vim では最終行の 空行が見えない状態が正解 のようだ。


  1. 発端はプロジェクトの新メンバーのエディタが Atom で、僕が Vim だったため表示が違ったこと [return]
  2. GitHub の表示については PHP-FIG のメンバーである CakePHPDrual の .php ファイルの最終行の表示を確認した。 [return]