<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Manuel Pichler - phpmd</title>
    <link>http://www.manuel-pichler.de/</link>
    <description>Trust is good, (phpUnder)Control is better.</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    
    

<item>
    <title>PHPMD 0.2.3 released with @SuppressWarnings support and new rule set.</title>
    <link>http://www.manuel-pichler.de/archives/83-PHPMD-0.2.3-released-with-SuppressWarnings-support-and-new-rule-set..html</link>
            <category>php</category>
            <category>phpmd</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/83-PHPMD-0.2.3-released-with-SuppressWarnings-support-and-new-rule-set..html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=83</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.manuel-pichler.de/rss.php?version=2.0&amp;type=comments&amp;cid=83</wfw:commentRss>
    

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  We are proud to announce the 0.2.3 release of the &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2299&amp;amp;entry_id=83&quot; title=&quot;http://phpmd.org&quot;  onmouseover=&quot;window.status=&#039;http://phpmd.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHP Mess Detector&lt;/a&gt;, a tool that takes source code and performs various tests to calculate various quality aspects from it. The measured values are a good starting point for future improvements. This release contains some new features, for example support for the &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2300&amp;amp;entry_id=83&quot; title=&quot;http://phpmd.org/documentation/suppress-warnings.html&quot;  onmouseover=&quot;window.status=&#039;http://phpmd.org/documentation/suppress-warnings.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;@SuppressWarnings&lt;/a&gt; annotation, that allows you to exclude single methods or complete classes from PHPMD&#039;s analyzing process. This annotation can be used to suppress a single rule, a group of rules or PHPMD at all.
&lt;/p&gt;

&lt;pre&gt;
/**
 * Suppress all PHPMD warnings for this class.
 *
 * @SuppressWarnings(PHPMD)
 */
class PHPMD_SuppressAll 
{
}

class  PHPMD_SuppressOnMethod
{
    /**
     * Do not warn about the unused parameter $bar.
     *
     * @SuppressWarnings(PHPMD.UnusedFormatParameter)
     */
    public function foo($bar)
    {
    }
}
&lt;/pre&gt;

&lt;p&gt;
  Beside several  bugfixes this release comes with a new set of rules that check the naming of methods, variables etc. against common coding conventions and best practices.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2301&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/6&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/6&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#6&lt;/a&gt;: PHP Tokenizer required but no error when installing.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2302&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/7&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/7&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#7&lt;/a&gt;: UnusedLocalVariable ruleset incorrectly flags variables as unused when used inside double quoted string. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2303&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/187&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/187&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#187&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2304&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/9&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/9&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#9&lt;/a&gt;: Add support for &quot;Suppress warnings&quot; annotations. Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2305&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/200&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/200&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#200&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2306&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/10&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/10&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#10&lt;/a&gt;: Support for exclude element in rule-set files added.   Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2307&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/189&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/189&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#189&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2308&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/13&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/13&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#13&lt;/a&gt;: Implement naming rules, e.g. short variables, parameter etc.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2309&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/14&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/14&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#14&lt;/a&gt;: ExcessivePublicCount rule should utilize PHP_Depend&#039;s cis metric. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2310&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/203&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/203&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#203&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2311&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/15&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/issue_tracker/issue/15&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#15&lt;/a&gt;: ExcessivePublicCount rule is never used. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2312&amp;amp;entry_id=83&quot; title=&quot;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/202&quot;  onmouseover=&quot;window.status=&#039;http://tracker.phpmd.org/php_mess_detector/browse_code/revision/202&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#202&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;

&lt;p&gt;
  You can get the latest PHPMD version from its PEAR channel: &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2313&amp;amp;entry_id=83&quot; title=&quot;http://pear.phpmd.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.phpmd.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.phpmd.org&lt;/a&gt; 
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ pear channel-discover pear.pdepend.org
mapi@arwen ~ $ pear channel-discover pear.phpmd.org
mapi@arwen ~ $ pear install --alldeps phpmd/PHP_PMD-alpha
&lt;/pre&gt;

&lt;p&gt;
  Or from our &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2314&amp;amp;entry_id=83&quot; title=&quot;http://github.com/manuelpichler/phpmd&quot;  onmouseover=&quot;window.status=&#039;http://github.com/manuelpichler/phpmd&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;github&lt;/a&gt; &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2314&amp;amp;entry_id=83&quot; title=&quot;http://github.com/manuelpichler/phpmd&quot;  onmouseover=&quot;window.status=&#039;http://github.com/manuelpichler/phpmd&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;repository&lt;/a&gt;:
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ git clone git://github.com/manuelpichler/phpmd.git
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Thu, 04 Mar 2010 10:32:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/83-guid.html</guid>
    <category>annotations</category>
<category>phpmd</category>
<category>quality assurance</category>
<category>release announcement</category>
<category>static code analysis</category>

</item>
<item>
    <title>PHPMD wednesday... PHPMD 0.2.2, PHPMD Ant Task, PHPMD on GitHub</title>
    <link>http://www.manuel-pichler.de/archives/78-PHPMD-wednesday...-PHPMD-0.2.2,-PHPMD-Ant-Task,-PHPMD-on-GitHub.html</link>
            <category>php</category>
            <category>phpmd</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/78-PHPMD-wednesday...-PHPMD-0.2.2,-PHPMD-Ant-Task,-PHPMD-on-GitHub.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=78</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.manuel-pichler.de/rss.php?version=2.0&amp;type=comments&amp;cid=78</wfw:commentRss>
    

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  Today I have released &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2239&amp;amp;entry_id=78&quot; title=&quot;http://phpmd.org/download/index.html&quot;  onmouseover=&quot;window.status=&#039;http://phpmd.org/download/index.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHPMD 0.2.2&lt;/a&gt;, a minor bug fix release that solves some exit code issues in the previous version. Beside this, I am proud to announce the first release of the &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2240&amp;amp;entry_id=78&quot; title=&quot;http://phpmd.org/documentation/ant-task.html&quot;  onmouseover=&quot;window.status=&#039;http://phpmd.org/documentation/ant-task.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHPMD Ant Task&lt;/a&gt;. It allows a seamless integration of &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2241&amp;amp;entry_id=78&quot; title=&quot;http://phpmd.org/&quot;  onmouseover=&quot;window.status=&#039;http://phpmd.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHPMD&lt;/a&gt; into your &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2242&amp;amp;entry_id=78&quot; title=&quot;http://ant.apache.org&quot;  onmouseover=&quot;window.status=&#039;http://ant.apache.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Ant&lt;/a&gt; build.xml file. So, please download the PHPMD Ant Task, test it and file bug reports or feature requests in PHPMD&#039;s &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2243&amp;amp;entry_id=78&quot; title=&quot;http://tracker.pdepend.org/php_mess_detector/&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/php_mess_detector/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;issue tracker&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
  You can get the latest PHPMD version from its PEAR channel: &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2244&amp;amp;entry_id=78&quot; title=&quot;http://pear.phpmd.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.phpmd.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.phpmd.org&lt;/a&gt; 
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ pear channel-discover pear.pdepend.org
mapi@arwen ~ $ pear channel-discover pear.phpmd.org
mapi@arwen ~ $ pear install --alldeps phpmd/PHP_PMD-alpha
&lt;/pre&gt;

&lt;p&gt;
  Beside this two releases there is an additional news. From now on you can find an up-2-date mirror of PHPMD&#039;s subversion repository on &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2245&amp;amp;entry_id=78&quot; title=&quot;http://github.com/manuelpichler/phpmd&quot;  onmouseover=&quot;window.status=&#039;http://github.com/manuelpichler/phpmd&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;github&lt;/a&gt;, so that you can fork PHPMD and participate on in development on these days social coding plattform. 
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ git clone git://github.com/manuelpichler/phpmd.git
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Wed, 20 Jan 2010 21:11:56 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/78-guid.html</guid>
    <category>ant</category>
<category>git</category>
<category>github</category>
<category>phpmd</category>
<category>release announcement</category>

</item>
<item>
    <title>PHP Mess Detector 0.2.1 released</title>
    <link>http://www.manuel-pichler.de/archives/77-PHP-Mess-Detector-0.2.1-released.html</link>
            <category>php</category>
            <category>phpmd</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/77-PHP-Mess-Detector-0.2.1-released.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=77</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.manuel-pichler.de/rss.php?version=2.0&amp;type=comments&amp;cid=77</wfw:commentRss>
    

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  This is just a small bugfix release of PHPMD. It introduces a small new feature that enables PHPMD&#039;s command line tool to handle multiple input files. This feature was required for some upcoming external features and extensions. Since version 0.2.1 you can call the command line tool of PHPMD with multiple input files and/or directories, separated by comma.
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ phpmd phpmd,systemDaemon text unusedcode
&lt;/pre&gt;

&lt;p&gt;
  You can get the latest PHPMD version from its PEAR channel: &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2238&amp;amp;entry_id=77&quot; title=&quot;http://pear.phpmd.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.phpmd.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.phpmd.org&lt;/a&gt; 
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ pear channel-discover pear.pdepend.org
mapi@arwen ~ $ pear channel-discover pear.phpmd.org
mapi@arwen ~ $ pear install --alldeps phpmd/PHP_PMD-alpha
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Tue, 05 Jan 2010 22:31:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/77-guid.html</guid>
    <category>bug fix</category>
<category>cli</category>
<category>phpmd</category>
<category>pmd</category>
<category>release announcement</category>

</item>
<item>
    <title>PHP Mess Detector 0.2 released.</title>
    <link>http://www.manuel-pichler.de/archives/73-PHP-Mess-Detector-0.2-released..html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpmd</category>
            <category>phpugdo</category>
            <category>planet-php</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/73-PHP-Mess-Detector-0.2-released..html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=73</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.manuel-pichler.de/rss.php?version=2.0&amp;type=comments&amp;cid=73</wfw:commentRss>
    

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  Today I have released version 0.2.0 of the &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2211&amp;amp;entry_id=73&quot; title=&quot;http://phpmd.org&quot;  onmouseover=&quot;window.status=&#039;http://phpmd.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHP Mess Detector&lt;/a&gt; or short &lt;em&gt;PHPMD&lt;/em&gt;. PHPMD is a simple, customizable and user friendly frontend application for &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2212&amp;amp;entry_id=73&quot; title=&quot;http://pdepend.org&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHP_Depend&lt;/a&gt;. It takes the raw metrics measured by PHP_Depend, compares them with appropriate thresholds and generates a report that lists those software artifacts with potential problems. Such a report can be taken as a basis for human code audits or you can use it as input for an automated build/reporting tool.
&lt;/p&gt;

&lt;p&gt;
  Most concepts behind PHPMD are based on those of the well known Java Tool &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2213&amp;amp;entry_id=73&quot; title=&quot;http://pmd.sourceforge.net&quot;  onmouseover=&quot;window.status=&#039;http://pmd.sourceforge.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PMD&lt;/a&gt;. It uses so called rule set files to organize different sets of rules. There are two purposes that are accomplished by these xml files. The first is to create custom sets of rules which fulfills the projects requirements. The second purpose is the configuration of each rule with thresholds, warning messages and other things. The format of these files is totally borrowed from PMD, so that the reuse existing rule sets in multi language environments should be easy. At the moment PHPMD has two build-in rule sets. One that detects software artifacts with high code size, and the second one detects unused code in your software.
&lt;/p&gt;

&lt;p&gt;
  Now lets start with a small &lt;em&gt;How to use it&lt;/em&gt;. PHPMD can be called from the command line by typing &lt;code&gt;phpmd&lt;/code&gt;, which prints a general help text.
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ phpmd 
Mandatory arguments:
1) A php source code filename or directory
2) A report format
3) A ruleset filename or a comma-separated string of ...

Optional arguments that may be put after the mandato...
--minimumpriority: rule priority threshold; rules with ...
--reportfile: send report output to a file; default to ...
--extensions: comma-separated string of valid source ...
--ignore: comma-separated string of patterns that are ...
&lt;/pre&gt;

&lt;p&gt;
  Now let&#039;s call PHPMD on its own source, with a simple text report on STDOUT and the &lt;code&gt;codesize&lt;/code&gt; ruleset:
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ phpmd ~/phpmd/source text codesize

/home/mapi/phpmd/source/PHP/PMD/RuleSetFactory.php:66 \
  This class has too many methods, consider refactoring it.
/home/mapi/phpmd/source/PHP/PMD/RuleSetFactory.php:267 \
  The method _parseSingleRuleNode() has a Cyclomatic \
  Complexity of 11.
/home/mapi/phpmd/source/PHP/PMD/RuleSetFactory.php:326 \
  The method _parseRuleReferenceNode() has a Cyclomatic \
  Complexity of 10.
&lt;/pre&gt;

&lt;p&gt;
  The &lt;code&gt;--reportfile&lt;/code&gt; option can be used, to redirect the report output into a file. So let us repeat the previous example that writes the report into a file, additionally uses the &lt;code&gt;unusedcode&lt;/code&gt; rule and changes the format from text to xml.
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ phpmd ~/phpmd/source xml codesize,unusedcode \
  --reportfile ~/pmd.xml
mapi@arwen ~ $ cat ~/pmd.xml 
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;
&amp;lt;pmd version=&quot;@package_version@&quot; timestamp=&quot;...&quot;&amp;gt;
  &amp;lt;file name=&quot;.../source/PHP/PMD/RuleSetFactory.php&quot;&amp;gt;
    &amp;lt;violation beginline=&quot;66&quot; endline=&quot;417&quot; rule=&quot;TooManyMet ...&amp;gt;
      This class has too many methods, consider refactoring it.
    &amp;lt;/violation&amp;gt;
    &amp;lt;violation beginline=&quot;267&quot; endline=&quot;315&quot; rule=&quot;Cyclomati ...&amp;gt;
      Method _parseSingleRule() has a Cyclomatic Complexity of 11.
    &amp;lt;/violation&amp;gt;
    &amp;lt;violation beginline=&quot;326&quot; endline=&quot;367&quot; rule=&quot;Cyclomati ...&amp;gt;
      Method _parseRuleReference() has a Cyclomatic Complexity of 10.
    &amp;lt;/violation&amp;gt;
  &amp;lt;/file&amp;gt;
&amp;lt;/pmd&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
  This xml file is compatible with those files generated by &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2213&amp;amp;entry_id=73&quot; title=&quot;http://pmd.sourceforge.net&quot;  onmouseover=&quot;window.status=&#039;http://pmd.sourceforge.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PMD&lt;/a&gt; and &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2219&amp;amp;entry_id=73&quot; title=&quot;http://phpunit.de&quot;  onmouseover=&quot;window.status=&#039;http://phpunit.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHPUnit&#039;s&lt;/a&gt; deprecated &lt;code&gt;--log-pmd&lt;/code&gt; option. So that it should be no problem to use this files in existing environments like &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2215&amp;amp;entry_id=73&quot; title=&quot;https://hudson.dev.java.net/&quot;  onmouseover=&quot;window.status=&#039;https://hudson.dev.java.net/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Hudson&lt;/a&gt;, &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2216&amp;amp;entry_id=73&quot; title=&quot;http://cruisecontrol.sourceforge.net/&quot;  onmouseover=&quot;window.status=&#039;http://cruisecontrol.sourceforge.net/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;CruiseControl&lt;/a&gt; or &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2217&amp;amp;entry_id=73&quot; title=&quot;http://sonar.codehaus.org/&quot;  onmouseover=&quot;window.status=&#039;http://sonar.codehaus.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Sonar&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
  Currently PHPMD supports the following three different report formats: Text, HTML and XML. And it has the build-in rule sets: &lt;code&gt;codesize&lt;/code&gt; and &lt;code&gt;unusedcode&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
  You can get the latest PHPMD version from its PEAR channel: &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2218&amp;amp;entry_id=73&quot; title=&quot;http://pear.phpmd.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.phpmd.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.phpmd.org&lt;/a&gt; 
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ pear channel-discover pear.pdepend.org
mapi@arwen ~ $ pear channel-discover pear.phpmd.org
mapi@arwen ~ $ pear install --alldeps phpmd/PHP_PMD-alpha
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Tue, 29 Dec 2009 23:40:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/73-guid.html</guid>
    <category>phpmd</category>
<category>php_depend</category>
<category>pmd</category>
<category>quality assurance</category>
<category>static code analysis</category>

</item>

</channel>
</rss>