2012-11-22 13 views
5

Chciałbym wprowadzić niewielką zmianę w standardzie PEAR dla naszej walidacji phpcs. W tej chwili PEAR wymaga napisać else tak:Modyfikacja standardu PEAR dla phpcs

} else { 

Chcielibyśmy napisać je tak:

} 
else { 

Jak mogę iść o wprowadzeniu tej zmiany?

+0

Czy Twój kod jest dostępny online? Również chciałbym napisać mój kod w ten sposób, ale nie chcę wykluczać PEAR.ControlStructures.ControlSignature. – TheFox

Odpowiedz

5

Jedynym sposobem, aby to zrobić, jest napisanie własnego standardu kodowania przy użyciu pliku ruleset.xml. Musi zaimportować cały standard kodowania PEAR, ale wykluczyć konkretny sniff, który wykonuje tę kontrolę. Ten bit można zrobić za pomocą pojedynczego pliku XML.

Ale nie ma wbudowanych wąchów, które wymuszają rodzaj składni, której szukasz. Aby to wymusić, musisz napisać niestandardowy sniff, który jest bardziej skomplikowany, ponieważ musisz go również gdzieś przechowywać.

Jeśli chcesz zacząć od próby prostego standardu zwyczaj kodowania, utwórz plik o nazwie ruleset.xml i zrobić to zawartość:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom coding standard.</description> 
<rule ref="PEAR"> 
    <exclude name="PEAR.ControlStructures.ControlSignature"/> 
</rule> 
</ruleset> 

następnie uruchomić PHP_CodeSniffer tak:

phpcs --standard=/path/to/ruleset.xml /path/to/code 

Ta wola sprawdź swój kod pod kątem standardu kodowania PEAR, ale nie uwzględniaj specyficznych kontroli dla struktur kontrolnych. Jeśli to wszystko, czego potrzebujesz, możesz na tym poprzestać. Jeśli masz zespół osób, które chcesz uruchomić ten niestandardowy standard, po prostu daj im plik i mogą go również używać.

Nie ma więcej informacji na temat formatu ruleset.xml tutaj: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

Jeśli chcesz iść dalej i napisać niestandardowy powąchać, to najlepiej zacząć od podstawowego tutoriala: http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php

Będzie wyjaśnij, czym jest standard kodowania. Następnie, będziesz chciał stworzyć swój własny sniff, który jest po prostu kopią PEAR z drobnymi zmianami, jak kontrolujesz strukturę. PEAR sniff jest tutaj: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php

Bez testowania, zakładam, że chcesz zmienić } else {EOL', na }EOLelse {EOL', i sprawdzić, czy to działa.

+0

Dzięki Greg, najwyraźniej dodając EOL zanim jeszcze nie zadziała. Skończyłem na tym, że pożyczyłem od standardów kodu Drupala węch i połączyłem je z PEAR. Dziękuję za komentarz, kilka dobrych informacji. – Noodles