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.
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