PHP_CodeSniffer Regeln Dokumentation

9

Wo ist die Dokumentation zu den PHP_CodeSniffer Regeln verfügbar? Scheint mir, als ob die Regeln existieren, aber niemand kennt die Liste von ihnen und ihren Eigenschaften. Ich konfrontiert das wesentliche Problem, ich möchte einen Standard anpassen und geschweiften Klammer Start in der gleichen Zeile nach Anweisung durch ein Leerzeichen geteilt und kann keine Möglichkeit, es zu tun sehen. Und das ist nur ein Thema, aber ich habe viele andere. Danke.

    
Alexander 07.05.2013, 19:41
quelle

3 Antworten

5

Wenn Sie sich den Quelltext anschauen, kann das beängstigend sein, aber am Ende, wenn Sie alle möglichen Regeln auflisten möchten (oder schnüffeln als PHP_CodeSniffer ruft sie auf) Sie müssen sich den Quellcode ansehen.

Ich hatte das gleiche Problem und habe drei Techniken verwendet:

1. Option -s

Der Befehl

phpcs verfügt über eine Option, die den Bezeichner von nicht beachteten Sniffs ausgibt. Schauen wir uns ein Beispiel an:

%Vor%

Im Bericht gibt jeder Fehler oder jede Warnung den Sniff aus.

2. ruleset.xml Dateien im Quelltext

Die Konfiguration der Regeln, die in einem Projekt befolgt oder ignoriert werden müssen, wird normalerweise in einer ruleset.xml -Datei definiert. Der PHP_CodeSniffer-Quellcode enthält einige Beispiele. PHP_CodeSniffer definiert mehrere Standards: Generisch, PSR1, PSR2, ... Jede von ihnen hat eine ruleset.xml Datei. Sie können von ihnen lernen, wie Sie Ihre eigenen erstellen.

Bei dieser Technik müssen Sie sich den Quellcode ansehen, aber Sie müssen nur Dateien lesen, die denen in Ihrem Projekt ähneln. Zum Beispiel finden Sie die Datei ruleset.xml für den PSR2-Standard im Ordner CodeSniffer/Standards/PSR2 .

3. Schließlich der Quellcode

Wenn Sie am Ende eine umfassende Liste von Sniffs haben möchten, müssen Sie sie aus dem Quellcode extrahieren . Lassen Sie uns entschlüsseln, wie Sniff Bezeichner erstellt werden.

Es ist einfach, die PHP-Klasse zu kennen, die einen Sniff implementiert. Nehmen wir zum Beispiel Generic.Commenting.Todo.TaskFound . Die drei ersten Token bedeuten:

  1. Generic : Dies ist der Standard und definiert den Standardordner CodeSniffer/Standards/Generic
  2. Commenting : Dies ist die Sniff-Gruppe unter dem Standard und verweist auch auf einen Ordner innerhalb des Standards: CodeSniffer/Standards/Generic/Sniffs/Commenting
  3. Todo : Es ist der Sniff, und es ist in einer Klasse namens <sniff name>Sniff.php implementiert

Also, wir haben% c_de% sniff implementiert in Generic.Commenting.Todo.TaskFound Klasse.

Wir können das anders herum machen. Wenn wir den Pfad zu einer PHP-Klasse kennen, können wir den Sniff kennen, den PHP_CodeSniffer melden wird. Zum Beispiel wurde die Klasse in CodeSniffer/Standards/Generic/Sniffs/Commenting/TodoSniff.php implementiert generiert Sniffs mit dem Bezeichner CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php .

    
rchavarria 31.07.2015 06:55
quelle
2

Außer den Quellcode gibt es keine Dokumentation zu den Regeln. Schau dir die verschiedenen Standards an und wie sie sie benutzen.

    
cweiske 08.05.2013 05:25
quelle
1

Probieren Sie dieses PHP-Skript aus.

Ändern Sie $ standardsDirectory in den richtigen Pfad.

%Vor%     
l00k 02.07.2017 02:00
quelle

Tags und Links