Spędziłem ponad 2h próbując dowiedzieć się, jak wymagać {
w tym samym wierszu, co deklaracja metody, zamiast domyślnego wymogu jest następny wiersz. Jak mogę to zrobić? Skopiowałem standard PSR2 do nowego folderu o nazwie PSR2, aby móc go zmodyfikować zgodnie z własnymi upodobaniami. Więc podstawą, nad którą pracuję, jest zasadniczo standard PSR2, który chciałbym zmodyfikować.phpcs: Jak mogę zmodyfikować PSR2, aby sprawdzić, czy klamra jest na tej samej linii, co metoda?
Próbowałem już pliku ruleset.xml i próbowałem go zmodyfikować bezpośrednio w kodzie bez powodzenia.
<rule ref="PEAR.Classes.ClassDeclaration">
<properties>
<property name="eolChar" value="{"/>
</properties>
</rule>
<rule ref="PSR2R.Classes.ClassDeclaration">
<properties>
<property name="eolChar" value="{"/>
</properties>
</rule>
Ja już zorientowali się, że jest to źle. EOL jest ustawiany przez phpcs. Ale nie mogę się dowiedzieć, czy w ogóle istnieje wartość, którą mogę skonfigurować za pomocą reguły.
Działa to dobrze dla mnie do tej pory (przykręcić głupie spacji !!!):
<?xml version="1.0"?>
<ruleset name="PSR2R">
<description>PSR2 with tabs instead of spaces.</description>
<arg name="tab-width" value="4"/>
<rule ref="PSR2">
<exclude name="Generic.WhiteSpace.DisallowTabIndent"/>
</rule>
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
<rule ref="Generic.WhiteSpace.ScopeIndent">
<properties>
<property name="indent" value="4"/>
<property name="tabIndent" value="true"/>
</properties>
</rule>
</ruleset>
Ale chciałbym dodać powyższy przepis.
To również zostało zadane tutaj: https://github.com/squizlabs/PHP_CodeSniffer/issues/703 –