2012-04-14 4 views
2

Ich habe eine Frage gestellt here weil alle meine PHP-Code von 2 eingekerbt ist, nicht 4.PHP, Einzug Breite von 4 und CodeSniffer: ist "4" ein De-facto-Standard?

Php CodeSniffer, die ein wirklich großartiges Werkzeug ist, eine Vertiefung von „4“ hat und es scheint, kann man nicht ändere diesen Wert.

PHP CodeSniffer hat viele Optionen. So sollte es einfach sein, "Einrückbreite" hinzuzufügen. Aber es scheint die Schöpfer haben freiwillige vermieden die Möglichkeit, weil es nicht möglich ist (was ist seltsam IMHO).

Also wenn Sie das nicht ändern können, habe ich mich gefragt: Ist "indentation width = 4" ein De-facto-Standard?

Ist das für die Java/JavaDoc-Generierung gleich?

Muss ich alle meine 10.000 Zeilen Code auf eine 4 - Verzierungsbreite ändern?

Antwort

6

öffentliches Mitglied var in schnüffelt durch die Verwendung einer ruleset.xml Datei überschrieben werden kann. Eine ruleset.xml-Datei ist eine XML-Darstellung Ihres eigenen benutzerdefinierten Codierungsstandards. Es kann Sniffs von jedem der enthaltenen Standards importieren und kann auch eigene Sniffs enthalten, wenn Sie diese schreiben.

In Ihrem Fall möchten Sie den genauen PEAR-Standard, aber mit dem Einzug Wert geändert. So erstellen Sie eine Datei mystandard.xml und machen diese den Inhalt:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom PEAR coding standard.</description> 
<rule ref="PEAR"/> 
<rule ref="PEAR.WhiteSpace.ScopeIndent"> 
    <properties> 
    <property name="indent" value="2"/> 
    </properties> 
</rule> 
</ruleset> 

Statt nun PHP_CodeSniffer Ausführen des Befehls mit phpcs --standard=PEAR ... Sie verwenden phpcs --standard=/path/to/mystandard.xml ...

Beachten Sie, dass Sie die Standard etwas aufrufen können Sie wollen, und die XML-Metadaten ändern (Name und Beschreibung) zu etwas passenderem.

Mit einer benutzerdefinierten Datei "ruleset.xml" können Sie noch viel mehr tun. Weitere Informationen zu benutzerdefinierten Regelsätzen finden Sie hier: http://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php

0

PHP CodeSniffer hat Regeln, von denen ich weiß, dass Sie in der Lage sein sollten, eine zu erstellen, die den Einzug definiert. 4 ist nur ein Wert, wie 2. Also sollte funktionieren. Wahrscheinlich nicht als Option, aber innerhalb, wenn Sie Ihren Standard definieren.

2

Was ich in PHP_CodeSniffer\CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\ScopeIndentSniff.php gefunden habe, ist .

Sie möchten vielleicht nur diesen Wert ändern.

+0

Dies ist die richtige Lösung. Ich wollte meinen ganzen Standard nicht neu definieren, weil ich finde, dass PEAR ein wirklich netter Standard ist. –

+1

@OlivierPons: Verlängern Sie den Standard, ändern Sie den Wert. – hakre

2

Nein, es ist kein De-facto-Standard. Es gibt keinen Standard für die Einrückung.

Sie können Regeln mit --sniffs wählen - siehe manual. Sie müssen den Eindrucktest nicht durchführen.

Wenn PHP CodeSniffer etwas gut wäre, wäre es möglich, den Einrückungsstil in Ihrem Kodierungsstandard zu definieren. Es wird jedoch nicht in der Dokumentation erwähnt.

Alternativ können Sie Ihre eigene Regel schreiben, wie hier beschrieben: http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php

+0

Vielen Dank für den Link, ich werde es eines Tages überprüfen, wenn ich meine eigenen Regeln machen möchte. –

Verwandte Themen