1

ルールのより複雑な処理を含む、最新のチュートリアルを持っている人はいますか? 私がオンラインで見つけているチュートリアルのほとんどは、ruleset.xml を使用した 1.4.3 を扱っていませんが、コーディングの古い php ファイルを扱っています。

第二に、私たちの会社には施行のためにコーディングする必要があるさまざまなコーディング標準があり、既存の複雑なスニフとその構造を理解するための適切な出発点が必要なため、より詳細な処理を行いたいと考えています。

私たちの会社は一般的なライブラリとは異なる標準を使用しているため、開発者はコードを読むときにメソッドが外部ライブラリ (PEAR/Zend/etc...) からのものかどうかを命名規則が示すため、知ることができます。コーディング標準が私たちの形式ではない場合、メソッドは外部ライブラリからのものであり、開発者が何かを再実装する必要なく、うまく機能する可能性が高い.

大規模なコード ベースでは、ソースを知らなくても、スタックをトレースしなくても、作成されたクラスと参照されたメソッドが表示されます。したがって、異なる基準を使用することで、クラスが際立ちます。

例えば:

$Foo = Foo::Find();    // Mixed case - from a library or PHP itself
$Bar = BAR::Find();    // All uppercase - ours, may need to optimize the Find()

変数の宣言も同じで、メソッドと変数の末尾にアンダースコアを使用して Private スコープを示します。誰かがスコープの解決を変更している場合は、アンダースコアを削除し、変更の影響を理解していることを明確に示すために、プライベート キーワードの変更/削除を行います。

4

1 に答える 1

1

ここから始めますが、基本的なものです: http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php

PHP_CodeSniffer には、さまざまなことを行う非常に多くのスニフが付属しています。それらのいくつかに目を通し、それらがトークン スタックをどのように利用しているかを確認する価値があるかもしれません。

-vv コマンド ライン引数を使用することも、ファイルがどのようにトークンに変換されるかを確認するための非常に良い方法です。これは、正しいトークン タイプを探すために登録し、多くのスニフが使用する $phpcsFile->findNext() および $phpcsFile->findPrevious() メソッドを利用するのに役立ちます。

一見の価値がある小さなスニフを次に示します: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php

また、トークン スタックでの追加インデックスの使用法を示す別の例: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php

于 2012-12-06T02:08:49.623 に答える