すべてのコーディング規約は、ひとつのクラスファイルを含みます。 このファイルによって PHP_CodeSniffer がコーディング規約の情報を問い合わせられるようになり、 このディレクトリが sniff を含むものであることを示します。 この手引きでは、コーディング規約のクラスでオーバーライド可能なメソッドについて説明します。 これらのメソッドにより、コーディング規約についてのいろいろな情報を PHP_CodeSniffer に伝えます。
このメソッドでは、Sniffs ディレクトリで定義した sniff のほかに 別のコーディング規約から取り込む sniff を PHP_CodeSniffer に通知します。 単一の sniff、特定のディレクトリのすべての sniff、 あるいはコーディング規約全体をインクルードすることができます。
以下のサンプルでは、 Generic コーディング規約の MultipleStatementAlignment sniff、 Generic コーディング規約の Functions カテゴリ内のすべての sniff、 そして PEAR コーディング規約で定義されているすべての sniff をインクルードしています。
<?php /** * この規約に含める外部 sniff の一覧を返す * * MyStandard コーディング規約では、汎用 sniff の一部と * PEAR コーディング規約全体を使用します * * @return array */ public function getIncludedSniffs() { return array( 'PEAR', 'Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php', 'Generic/Sniffs/Functions', ); }//end getIncludedSniffs() ?> |
注意 コーディング規約全体をインクルードすると、 その規約が別の規約からインクルードしている sniff も同時に取り込まれます。 たとえば PEAR コーディング規約では、 いくつかの sniff を Generic コーディング規約からインクルードしています。 そのため、PEAR コーディング規約全体をインクルードすると これらの sniff もインクルードされることになります。 これにより、既存の規約をもとにした独自の規約を 手早く簡単に作成できるようになります。
このメソッドは、あなたが作成した規約や getIncludedSniffs() メソッドでインクルードした規約から sniff を除外するよう、PHP_CodeSniffer に指示します。 単一の sniff、特定のディレクトリのすべての sniff、 あるいはコーディング規約全体を除外することができます。
以下の例は、いったん PEAR コーディング規約全体を取り込み、 その中から ControlSignature sniff だけを除外しています。
<?php /** * この規約に含める外部 sniff の一覧を返す * * MyStandard コーディング規約では、 * PEAR コーディング規約野中から特定のひとつを除いたものを使用します * * @return array */ public function getIncludedSniffs() { return array( 'PEAR', ); }//end getIncludedSniffs() /** * この規約から除外する外部 sniff の一覧を返す * * MyStandard コーディング規約では、 * PEAR コーディング規約野中から特定のひとつを除いたものを使用します * * @return array */ public function getExcludedSniffs() { return array( 'PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php', ); }//end getExcludedSniffs() ?> |