PHPのコーディング規則、PSRを学ぶ(4)の続きです。
この記事では、PHPのコーディング規則PSRの規則をまとめます。
1.規則概要
- 文字コードはUTF-8(BOM無し)
- 改行コードはLF
- PHP(開始)コードは「<?php」または 「<?=」
- PHPのみのファイルの場合は最後の「?>」を省略してよい
- 最後は改行して終わる
- インデント(字下げ)は「半角スペース4つ」でタブを使わない
- 開き「{」は改行して記述
- シンボル(クラス、関数、定数など)を宣言するためのファイルと、副作用のある処理(出力の生成、ini設定の変更など)を行うためのファイルは、分けるべき
- クラス名は、StudlyCaps(単語の先頭文字を大文字で表記する記法)記法で定義
- メソッド名はcamelCase(単語の先頭文字を大文字で表記するが、最初の1文字目は小文字とする記法)記法で定義
- クラス定数(const)は全て大文字とし、区切り文字にはアンダースコアを用いて定義
- 名前空間定義・use定義のあとには空行を挟む
- プロパティの命名規則は「StudlyCaps」「camelCase」「under_score」どれでもよいがファイル内で一貫させること
- PHPの予約語は小文字で使用
- PHP定数であるtrue、false、nullは小文字で使用
<?php
namespace Vendor\Package;
use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// メソッド本文
}
}
2.名前空間とオートローダーについて
- PHP5.3.0以上が必要
- 名前空間は「\<ベンダー名>\(<名前空間>\)*<クラス名>」と設定すること。
- クラス名のアンダースコア「_」はディレクトリの区切りになる
- 名前空間の中のアンダースコア「_」はディレクトリの区切りにはならない
(namespaceを利用するためです。オートローダーを使わない場合は問題ありません。オートローダーについてはPSR-0(日本語)をご覧ください。)
言い換えると、「\製作者名\(機構名)\機能名」と設定して名前空間を汚染しないようにしてください。
初心者の方の目線で見た名前空間は、PHPのコーディング規則、PSRを学ぶ(3)にまとめています。
最後に
サイトの改修が完了しましたにいただいたコメントをヒントに「PHPのコーディング規則、PSRを学ぶ」が始まりました。コメントありがとうございました。
参考にさせていただいたサイトの運営者の方々、ありがとうございました。すごく勉強になりました。
PHP・CGIプログラムは使われてこそ価値があります。PHPプログラムを配布し始めたのは最近ですが、それを誰もが改修出来るようにすることによって、さらに良いものが生まれてくることを願っています。
「面白い(個人制作の)ゲームをやりたい!」「いいプログラムを使いたい!」からこそやっております。もし面白いと感じるゲームや便利なプログラムがあったらコメントなどで紹介してください。( ^^)
各記事へのリンク
- PHPのコーディング規則、PSRを学ぶ(1)
- PHPのコーディング規則、PSRを学ぶ(2)
- PHPのコーディング規則、PSRを学ぶ(3)
- PHPのコーディング規則、PSRを学ぶ(4)
- PHPのコーディング規則、PSRを学ぶ(5)(当記事)

[…] 次は、「PSRの規則をまとめてみる」を行います。 PHPのコーディング規則、PSRを学ぶ(5)へ […]