LoginSignup
0
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

PSR-12ガイドライン: PHPファイルの終わり方とその重要性(Unix LF)

Posted at

PSR-12の

全ての PHP ファイルは、Unix LF(ラインフィード)の行末のみを使用する必要があります。

ってなんぞや、開発にどういう使われ方をするのか、これをすることでどんな効果があるのか?
というか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では、ファイルの改行コードを設定することができます
以下の手順で設定を変更できます

  1. 画面右下のステータスバー
    • 「LF」または「CRLF」と表示されている部分をクリックします
      image.png
  2. 改行コードの選択
    • メニューが表示されるので、「LF」を選択します
      image.png
  3. デフォルト設定の変更
    • 設定ファイル(settings.json)に以下の設定を追加して、すべてのファイルでデフォルトの改行コードをLFに設定します
{
    "files.eol": "\n"
}

これにより、新規に作成されるファイルや既存のファイルを保存する際に、LFが自動的に使用されるようになります

おわりに

おそらくGit上で開発されているプロジェクトをcloneなりpullなりしていればOS問わず問題ない解釈です
だから今まで疑問視してなかったのかぁと感じました
他の言語はわかりませんが、改行コードに関してはPSR-12に限らずLFがデファクトスタンダードになりそうですね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0