2

PHP プロジェクトで最低レベルのコード品質を保証するphpmdが大好きです。ここで、スーパーグローバルの使用を検出するルールを追加したいと思います。しかし、物議を醸すルールセット全体を含めたくありません。次の行を試しました(phpmdはcomposerとともにインストールされます):

vendor/bin/phpmd src/ text codesize,design,naming,unusedcode,Superglobals

しかし、出力は次のとおりです。

Cannot find specified rule-set "Superglobals".

phpmd に単一のルールを追加する方法を知っている人はいますか?

4

1 に答える 1

3

次の内容のファイル phpmd.rules.xml を作成しました。

<?xml version="1.0"?>
<ruleset name="No controversial but superglobals"
         xmlns="http://pmd.sf.net/ruleset/1.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
    <description> Rulesets without controversial rules but including the check for superglobals </description> 
    <rule ref="rulesets/codesize.xml" />
    <rule ref="rulesets/design.xml" />
    <rule ref="rulesets/naming.xml" />
    <rule ref="rulesets/unusedcode.xml" />
    <rule ref="rulesets/controversial.xml/Superglobals" />
</ruleset>

これらのルールを使用するには、次のコマンドを使用できます (phpmd は、composer を使用してプロジェクトにローカルにインストールされます)。

 vendor/bin/phpmd src/ text phpmd.xml 

詳細については、http://phpmd.org/documentation/creating-a-ruleset.htmlを参照してください。

于 2015-01-15T10:39:06.450 に答える