きっかけ
PSR-2では、ファイルの最後に空行を入れるという事になっている。
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#22-files
という事なので、僕はファイルの最後に空行を愚直に入れるようにしてた。 以下のような感じだ。
<?php echo 'hello world!'
見た目はわかりにくいが最後に空行が入っている。 (ソース上は空行を入れているのですが、実際に表示させた時には空行は自動的に消えてしまうようです。。。)
でも、PHP Coding Standards FixerというPSRに沿う形でソースを自動整形してくれるツールを使ってみたところ、この空行が毎回削除されてしまっていた。
このツールで整形すると以下のようになる
<?php echo 'hello world!'
diffだとこんな感じ
$ diff -u before.php after.php --- before.php +++ after.php @@ -1,3 +1,2 @@ <?php echo 'hello world!' -
とまぁ、ファイルの最後の空行が削除される。
調べた事
いろいろググってみたところ、以下の辺りが参考になった。
僕が今まで行っていた行為は、ファイルの末尾に\n\n
を入れていた。
たぶん、ファイルの最後は改行コード\n
を入れるという流れでいこうという事だと思います。。。
改行コードつきでcatしてみる
先ほど作ったファイルを改行コードつきでcatしてみる
$ cat -e before.php <?php$ echo 'hello world!'$ $ $ cat -e after.php <?php$ echo 'hello world!'$
今まではあまり深く考えて来なかったのだが、僕が普段使っているvimだとデフォルトでファイルの最後に改行コードが入る。 エディタによってこれが入らなかったりするため、ちゃんと入れるように!という意味なのかなー。
結論
僕の英語力が足りなくてふわっとしている部分があるのですが、 ファイルの最後は改行コードが1つ入っていればいいと考えます。 つまり、
$ cat -e after.php <?php$ echo 'hello world!'$
このイメージ、before.phpのスタイルをやめてafter.phpのスタイルにしようと思った今日この頃です。
その他
qiitaにも投稿したよ!