2012-05-14 4 views
7

Ich versuche, die phpcs irgendwie zu überzeugen, die Zend-Codierungsrichtlinien zu verwenden, aber ich erlaube mir, Variablen mit Unterstrichen (wie $blub->foo_bar) zu haben.Benutzerdefinierte Regelsatz für phpcs mit PHPSstorm

Kann mir jemand sagen, wie man den Regelsatz ändert, den phpcs in PHPStorm benutzt, bitte?

Antwort

11

Sie müssen einen benutzerdefinierten Codierungsstandard erstellen, wenn Sie die integrierten Standards überschreiben möchten. Dies ist nur eine Frage der Erstellung einer XML-Datei mit der Definition des Standards darin.

In Ihrem Fall möchten Sie den gesamten Zend-Codierungsstandard, aber Sie wollen nicht die bestimmte Namenskonvention Regel über Variablennamen. So würden Sie eine Datei mystandard.xml genannt erstellen (nennen Sie es, was Sie wollen und setzte es, wo immer Sie wollen) und in den folgenden Inhalten setzen:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom Zend coding standard.</description> 
<rule ref="Zend"> 
    <exclude name="Zend.NamingConventions.ValidVariableName"/> 
</rule> 
</ruleset> 

Es gibt viel mehr Sie tun können, Ihre Standard anpassen, einschließlich Einchecken von anderen Standards, Überschreiben von Nachrichten oder Stummschalten von einigen von ihnen. Sie können sich die Dokumentation hier ansehen: http://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php

Zuletzt habe ich überprüft, PHPSstorm ließ Sie keine benutzerdefinierten Kodierungsstandards verwenden, aus welchen Gründen auch immer. Normalerweise geben Sie einfach den Namen des Standards als vollständigen Pfad zur Datei mystandard.xml ein. Wenn Sie mit PHPStorm immer noch nicht dazu in der Lage sind, können Sie Ihren benutzerdefinierten Standard tatsächlich installieren.

Beachten Sie, dass dies normalerweise nicht erforderlich ist und etwas kompliziert ist. Aber wenn Sie es versuchen möchten, ist dies wie Sie es tun:

  1. Finden Sie, wo PHPCS auf Ihrem System installiert ist. Wenn Sie nicht wissen, wo das ist, versuchen Sie pear config-show | grep php_dir. PHP_CodeSniffer wird in einem Verzeichnis unter dort sein. Für mich ist PEAR in /usr/local/PEAR installiert, so PHP_CodeSniffer bei /usr/local/PEAR/PHP/CodeSniffer
  2. Erstellen Sie ein neues Verzeichnis MyStandard unter /usr/local/PEAR/PHP/CodeSniffer/Standards
  3. Legen Sie Ihre mystandard.xml Datei direkt in dort aber benennen Sie sie in ruleset.xml

Zur Bestätigung Ihrer genannt gefunden Standard wurde installiert, führen Sie phpcs -i. Sie sollten nun

The installed coding standards are MySource, MyStandard, PEAR, PHPCS, Squiz and Zend 

finden PhpStorm zeigen (hoffentlich) MyStandard als Option in der Dropdown-Liste. Wenn es nicht angezeigt wird, dann haben sie wahrscheinlich die Liste hart-codiert, und es wird keine Möglichkeit geben, es zu funktionieren, ohne den Zend-Codierungsstandard direkt zu hacken.

Ich hoffe, dass Informationen helfen Ihnen eine Lösung zu finden. Wenn nicht, können Sie immer laufen PHPCS direkt auf der Kommandozeile unter Verwendung Ihres eigenen Standard:

phpcs --standard=/path/to/mystandard.xml /path/to/code 
0

Die Liste der Normen ist nicht fest einprogrammiert, wird es von phpcs erhalten. Die Installation Ihres eigenen Standards, wie oben beschrieben, wird Ihre Aufgabe erfüllen.

+0

Ich verbrachte den besseren Teil des Nachmittags versuchen, dies zur Arbeit zu bringen. PHPStorm lädt nicht einmal die Liste der installierten Standards, die einzigen Optionen in den Inspektoreinstellungen sind leer und benutzerdefiniert, und selbst die Auswahl von benutzerdefiniert wird die Validierungsoption nie angezeigt. Ich kann phpcs erhalten, CLI richtig zu laufen, aber es wäre nett, es wie in den Dokumenten für PHPSstorm vorgeschrieben zu arbeiten. –

2

Es ist möglich, einen eigenen benutzerdefinierten Regelsatz auf phpstorm hinzuzufügen, dies kann in den Projekteinstellungen => inspections => "PHP Code Sniffer Validierung" unter Verwendung des Codierungsstandards "Custom" erfolgen und das Wurzelverzeichnis Ihres benutzerdefinierter Regelsatzxml

Verwandte Themen