目次 |
参照URL:http://framework.zend.com/manual/ja/coding-standard.coding-style.html
変数の展開を行うには、次のような方法を使用します。
1 2 |
|
文字列の連結には "." 演算子を使用しなければなりません。コードを読みやすくするため、 "." 演算子の前後には常にスペースを入れなければなりません。
$company = 'Zend' . ' ' . 'Technologies';
文字列を "." 演算子で連結する際には、コードを読みやすくするために ひとつの文を複数行に分けることもできます。そのような場合は、 2 行目以降の行頭にスペースを入れ、各行の "." 演算子が最初の行の "=" 演算子と同じ位置にくるようにしなければなりません。
$sql = "SELECT `id`, `name` FROM `people` " . "WHERE `name` = 'Susan' " . "ORDER BY `name` ASC ";
添字として負の数を使用してはいけません。
数値添字の配列の添字は、0 以上の任意の数から始めることができます。 しかし、常に 0 から始めるようにすることを推奨します。
Array を使用して数値添字の配列を宣言する場合は、 コードを読みやすくするため、 要素を区切るカンマの後にスペースを入れなければなりません。
$sampleArray = array(1, 2, 3, 'Zend', 'Studio');
"array" を使用して、複数行にまたがる配列を宣言することも可能です。 その場合は、2 行目以降の行頭にスペースを入れ、 各行の開始位置が以下のようになるようにしなければなりません。
$sampleArray = array(1, 2, 3, 'Zend', 'Studio', $a, $b, $c, 56.44, $d, 500);
一方、配列の最初の要素を次の行から始めることもできます。 その場合は、配列を宣言した位置からさらに一段インデントした位置で要素をそろえ、 それ以降のすべての要素を同じインデントで記述するようにします。 閉じ括弧はそれ単体でひとつの行に記述し、インデント量は配列の宣言と同じ位置になります。
$sampleArray = array( 1, 2, 3, 'Zend', 'Studio', $a, $b, $c, 56.44, $d, 500, );
この宣言を使用する際は、配列の最後の要素の後にもカンマをつけておくようにしましょう。 そうすることで、配列に新たな要素を追加したときにパースエラーが発生する危険性を 少なくできます。
クラス宣言は、以下の Zend Framework 命名規約に従わなければなりません。
開始波括弧は常にクラス名の下に書かなければなりません。
PHPDocumentor の標準形式のドキュメントブロックがなければなりません。
クラス内のコードは、すべて空白 4 文字で字下げします。
ひとつの PHP ファイルにはクラス定義をひとつだけ含めるようにします。
クラスファイルの中にクラス以外のコードを追加することもできますが、 お勧めしません。このような場合には、クラス定義とその他のコードの間に 空行を 2 行挿入しなければなりません。
これらの条件を満たすクラス宣言の例です。
他のクラスを継承したりインターフェイスを実装したりしているクラスの宣言は、 可能な限りその依存関係も同じ行に含めるようにしなければなりません。 [#z483dac3]
class SampleClass extends FooAbstract implements BarInterface { }
このように宣言しようとした結果、もし行の長さが 最大文字数 を超えてしまう場合は、キーワード "extends" や "implements" の前で改行してインデント量を一段増やします。
class SampleClass extends FooAbstract implements BarInterface { }
関数は、以下の Zend Framework 関数命名規約に従わなければなりません。
クラス内でメソッドを宣言する際には、常に private、protected あるいは public のいずれかの修飾子を用いてアクセス範囲を指定しなければなりません。
クラスと同様、波括弧は関数名の次の行に書かなければなりません。
関数名と引数定義用の開始括弧の間にはスペースを入れてはいけません。
グローバルスコープの関数は、できるだけ使わないようにしましょう。
クラス内の関数宣言の例として適切なものを次に示します。
これは可読性を下げますし、 将来そのメソッドが参照を返すようになった場合にコードが壊れてしまいます。
関数の引数を指定する際は、引数を区切るカンマの後に空白をひとつ入れます。 例えば 3 つの引数を受け取る関数をコールする場合の例は、 以下のようになります。
threeArguments(1, 2, 3);
コール時に引数を参照渡しすることは禁じます。 関数への引数を参照渡しにする方法は、 関数宣言についての節を参照ください。
引数として配列を受け取る関数については、関数コールの中に "array" 構文を含め、それを複数行に分けることもできます。
そのような場合の記述法は、以下のようになります。
threeArguments(array(1, 2, 3), 2, 3); threeArguments(array(1, 2, 3, 'Zend', 'Studio', $a, $b, $c, 56.44, $d, 500), 2, 3); threeArguments(array( 1, 2, 3, 'Zend', 'Studio', $a, $b, $c, 56.44, $d, 500 ), 2, 3);
条件文が 行の最大文字数 を超え、さらに複数の条件がある場合は、 それらを複数行にわけて記述できます。その場合は論理演算子の前で改行し、 条件句の最初の文字がそろうように位置を合わせます。 条件部の閉じ括弧と本体の開始波括弧はスペースをひとつはさんで同じ行に記述し、 そのインデント量は制御構文の開始位置と同じになります。
if (($a == $b) && ($b == $c) || (Foo::CONST == $d) ) { $a = $d; }