<?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 - php_depend</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.6 - http://www.s9y.org/</generator>
    
    

<item>
    <title>A brief introduction to the Coupling Between Objects metric</title>
    <link>http://www.manuel-pichler.de/archives/97-A-brief-introduction-to-the-Coupling-Between-Objects-metric.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>planet-php</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/97-A-brief-introduction-to-the-Coupling-Between-Objects-metric.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=97</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  In this blog post I will give you a brief introduction into the &lt;em&gt;Coupling Between Objects&lt;/em&gt;
  metric,  that is one of the metrics calculated by the static code analysis tool
  &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2407&amp;amp;entry_id=97&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;.
&lt;/p&gt;


&lt;p&gt;
  The &lt;em&gt;Coupling Between Objects&lt;/em&gt; or &lt;em&gt;CBO&lt;/em&gt; metric was originally 
  defined by Chidamber &amp;amp; Kemerer in their IEEE paper &amp;quot;A Metrics  Suite 
  for Object Oriented Design&amp;quot; &lt;a href=&quot;#ckoom&quot; id=&quot;id1&quot;&gt;[1]&lt;/a&gt;. This
  software metric represents the number of other types a class or interface is
  coupled to. The &lt;em&gt;CBO&lt;/em&gt; metric is calculated for classes and interfaces. 
  It counts the unique number of reference types that occur through method 
  calls, method parameters, return types, thrown exceptions and accessed 
  fields. But there is an exception for types that are either a subtype or 
  supertype of the given class, because these types are not included in the 
  calculated &lt;em&gt;CBO&lt;/em&gt; value.
&lt;/p&gt;
&lt;p&gt;
  Excessive coupled classes prevent reuse of existing components and they are
  damaging for a modular, encapsulated software design. To improve the 
  modularity of a software the inter coupling between different classes should
  be kept to a minimum. Beside reusability a high coupling has a second
  drawback, a class that is coupled to other classes is sensitive to changes in
  that classes and as a result it becomes more difficult to maintain and gets
  more error-prone. Additionally it is harder to test a heavly coupled class in
  isolation and it is harder to understand such a class. Therefore you should
  keep the number of dependencies at a minimum.
&lt;/p&gt;

&lt;h5 id=&quot;thresholds&quot;&gt;Thresholds&lt;/h5&gt;
&lt;p&gt;
  Based on their research Sahraoui, Godin and Miceli &lt;a href=&quot;#sgmqa&quot; id=&quot;id2&quot;&gt;[2]&lt;/a&gt; 
  suggest a maximum &lt;em&gt;CBO&lt;/em&gt; value of &lt;em&gt;14&lt;/em&gt;, because higher values 
  have negative impacts on several quality aspects of a class, which includes 
  the maintainability, stability and understandability.
&lt;/p&gt;

&lt;h5 id=&quot;see-also&quot;&gt;See also&lt;/h5&gt;
&lt;dl&gt;
  &lt;dt&gt;
    &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2410&amp;amp;entry_id=97&quot; title=&quot;http://pdepend.org/documentation/software-metrics/efferent-coupling.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/documentation/software-metrics/efferent-coupling.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Efferent Coupling&lt;/a&gt;: 
  &lt;/dt&gt;
  &lt;dd&gt;
    &lt;em&gt;Efferent Coupling&lt;/em&gt; or &lt;em&gt;CE&lt;/em&gt; is a different name for
    the same metric, that is frequently used in the literatur.
  &lt;/dd&gt;
  &lt;dt&gt;
    &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2411&amp;amp;entry_id=97&quot; title=&quot;http://pdepend.org/documentation/software-metrics/afferent-coupling.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/documentation/software-metrics/afferent-coupling.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Afferent Coupling&lt;/a&gt;:
  &lt;/dt&gt;
  &lt;dd&gt;
    The &lt;em&gt;Afferent Coupling&lt;/em&gt; or &lt;em&gt;CA&lt;/em&gt; is a metric that calculates the 
    reverse coupling of a class.
  &lt;/dd&gt;
&lt;/dl&gt;

&lt;h5 id=&quot;bibliography&quot;&gt;Bibliography&lt;/h5&gt;
&lt;dl&gt;
  &lt;dt id=&quot;ckoom&quot;&gt;
    &lt;a href=&quot;#id1&quot;&gt;[1]&lt;/a&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;
      &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2413&amp;amp;entry_id=97&quot; title=&quot;http://www.iiitd.ac.in/PhD2010/papers/SW_Paper2.pdf&quot;  onmouseover=&quot;window.status=&#039;http://www.iiitd.ac.in/PhD2010/papers/SW_Paper2.pdf&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;http://www.iiitd.ac.in/PhD2010/papers/SW_Paper2.pdf&lt;/a&gt;
    &lt;/p&gt;
    &lt;p&gt;
      IEEE Transactions on Software Engineering; A Metrics Suite for Object
      Oriented Design; Chidamber &amp;amp; Kemerer, 1994
    &lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt&gt;
    &lt;a href=&quot;#id2&quot;&gt;[2]&lt;/a&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;
      &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2415&amp;amp;entry_id=97&quot; title=&quot;http://www.iro.umontreal.ca/~sahraouh/papers/ICSM00.pdf&quot;  onmouseover=&quot;window.status=&#039;http://www.iro.umontreal.ca/~sahraouh/papers/ICSM00.pdf&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;http://www.iro.umontreal.ca/~sahraouh/papers/ICSM00.pdf&lt;/a&gt;
    &lt;/p&gt;
    &lt;p&gt;
      Software Maintenance, 2000. Proceedings. International Conference; Can
      metrics help to bridge the gap between the improvement of OO design
      quality and its automation?; Sahraoui, Godin, Miceli; 2000    
    &lt;/p&gt;
  &lt;/dd&gt;
&lt;/dl&gt;
 
    </content:encoded>

    <pubDate>Tue, 15 Mar 2011 11:59:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/97-guid.html</guid>
    <category>cbo</category>
<category>coupling between objects</category>
<category>php_depend</category>
<category>quality assurance</category>
<category>software metrics</category>

</item>
<item>
    <title>PHP_Depend 0.10.2 released</title>
    <link>http://www.manuel-pichler.de/archives/96-PHP_Depend-0.10.2-released.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>planet-php</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/96-PHP_Depend-0.10.2-released.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=96</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  We are proud to announce release 0.10.2 of &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2400&amp;amp;entry_id=96&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;. Beside two bug fixes this release implements four new software metrics:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2401&amp;amp;entry_id=96&quot; title=&quot;http://pdepend.org/documentation/software-metrics/efferent-coupling.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/documentation/software-metrics/efferent-coupling.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Efferent Coupling&lt;/a&gt;: The number of classes a class depends on.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2402&amp;amp;entry_id=96&quot; title=&quot;http://pdepend.org/documentation/software-metrics/afferent-coupling.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/documentation/software-metrics/afferent-coupling.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Afferent Coupling&lt;/a&gt;: The number of classes that depend on a class.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2403&amp;amp;entry_id=96&quot; title=&quot;http://pdepend.org/documentation/software-metrics/number-of-public-methods.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/documentation/software-metrics/number-of-public-methods.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Number of Public Methods&lt;/a&gt;: The public api/interface of a class.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2404&amp;amp;entry_id=96&quot; title=&quot;http://pdepend.org/documentation/software-metrics/coupling-between-objects.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/documentation/software-metrics/coupling-between-objects.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Coupling Between Objects&lt;/a&gt;: The coupling of a class.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;p&gt;
  A detailed CHANGELOG can be found on the project&#039;s &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2405&amp;amp;entry_id=96&quot; title=&quot;http://pdepend.org/download/release/0.10.2/changelog.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/download/release/0.10.2/changelog.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;download page&lt;/a&gt; and a complete, detailed description of the newly implemented software metrics in PHP_Depend&#039;s &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2406&amp;amp;entry_id=96&quot; title=&quot;http://pdepend.org/documentation/software-metrics/index.html&quot;  onmouseover=&quot;window.status=&#039;http://pdepend.org/documentation/software-metrics/index.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;metric catalog&lt;/a&gt;.
&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 28 Feb 2011 11:25:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/96-guid.html</guid>
    <category>php_depend</category>
<category>quality assurance</category>
<category>software metrics</category>
<category>static code analysis</category>

</item>
<item>
    <title>Brief introduction to the Class Interface Size metric</title>
    <link>http://www.manuel-pichler.de/archives/95-Brief-introduction-to-the-Class-Interface-Size-metric.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>planet-php</category>
    
    <comments>http://www.manuel-pichler.de/archives/95-Brief-introduction-to-the-Class-Interface-Size-metric.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=95</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  This blog post will give you a brief introduction into the &lt;em&gt;Class Interface Size&lt;/em&gt; metric, as it is calculated by the static code analysis tool &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2396&amp;amp;entry_id=95&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;.
&lt;/p&gt;

&lt;p&gt;
  The &lt;em&gt;Class Interface Size&lt;/em&gt; or &lt;em&gt;CIS&lt;/em&gt; metric is measure of the 
  public services that a class provides. This metric was orginally defined in 
  the &lt;em&gt;QMOOD&lt;/em&gt; model &lt;a href=&quot;#moodcis&quot; id=&quot;id1&quot;&gt;[1]&lt;/a&gt; by Bansiya &amp;amp; 
  Davis.
&lt;/p&gt; 

&lt;p&gt;
  The orginal version of the &lt;em&gt;CIS&lt;/em&gt; metric was defined as the number of 
  public methods that a class provides. Each of these methods can be seen as a 
  service where surrounding application can send messages to or receive messages 
  from a class.
&lt;/p&gt;

&lt;blockquote&gt;
  &lt;strong&gt;CIS = public(NOM)&lt;/strong&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  A newer variant of the &lt;em&gt;CIS&lt;/em&gt; metric also includes the public attributes
  of a class, because theses properties can also be used to transport messages 
  or information between a class and the surrounding application.
&lt;/p&gt;

&lt;blockquote&gt;
  &lt;strong&gt;CIS = public(NOM) + public(VARS)&lt;/strong&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  PHP_Depend uses the second variant and counts all public methods and 
  attributes declared in a class to calculate its &lt;em&gt;Class Interface Size&lt;/em&gt; 
  metric.
&lt;/p&gt;

&lt;p&gt;
  This metric is a good indicator for the choosen software design. Several
  classes with a high &lt;em&gt;CIS&lt;/em&gt; value are a sure sign that the design of the
  analyzed software prefers composition over inheritance to share common
  functionality between different components. So in most cases a high value is
  a good a sign, because composition increases the reusability and flexibility.
  But there are also situations where wrongly used composition of functionality
  leads to a design that is harder to understand and maintain.
&lt;/p&gt;

&lt;h5 id=&quot;thresholds&quot;&gt;Thresholds&lt;/h5&gt;
&lt;p&gt;
  It is not easy to define good thresholds for this metric, because those values
  heavy depend on the choosen design, e.g. inheritance or composition. But in
  generall we can say that is best practice to limit the public interface that
  can be used to alter the internal state of an object. Therefore we suggest 
  &lt;code&gt;20&lt;/code&gt;
  as a reference point for the upper limit.
&lt;/p&gt;

&lt;h5 id=&quot;bibliography&quot;&gt;Bibliography&lt;/h5&gt;
&lt;dl&gt;
  &lt;dt id=&quot;moodcis&quot;&gt;
    &lt;a href=&quot;#id1&quot;&gt;[1]&lt;/a&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;
      &lt;a class=&quot;reference external&quot; href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2399&amp;amp;entry_id=95&quot; title=&quot;http://www.ptidej.net/teaching/inf6306/fall09/notes/course4/Bansiya02-QualityModel.pdf&quot;  onmouseover=&quot;window.status=&#039;http://www.ptidej.net/teaching/inf6306/fall09/notes/course4/Bansiya02-QualityModel.pdf&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;http://www.ptidej.net/teaching/inf6306/fall09/notes/course4/Bansiya02-QualityModel.pdf&lt;/a&gt;
    &lt;/p&gt;
    &lt;p&gt;
      IEEE Transactions on Software Enginerring; &lt;em&gt;Hierarchical Model for 
      Object-Oriented Design Quality Assessment&lt;/em&gt;; Bansiya &amp;amp; Davis; 2002
    &lt;/p&gt;
  &lt;/dd&gt;
&lt;/dl&gt; 
    </content:encoded>

    <pubDate>Fri, 25 Feb 2011 16:50:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/95-guid.html</guid>
    <category>class interface size</category>
<category>php_depend</category>
<category>quality assurance</category>
<category>software metrics</category>

</item>
<item>
    <title>PHP_Depend 0.9.16 bugfix release</title>
    <link>http://www.manuel-pichler.de/archives/93-PHP_Depend-0.9.16-bugfix-release.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/93-PHP_Depend-0.9.16-bugfix-release.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=93</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;Today/Yesterday we have released the bugfix version 0.9.15 and 0.9.16 of
PHP_Depend. With these releases we have closed a critical bug in PHP_Depend&#039;s
handling of namespaces, where identical class names in two different
namespaces resulted in an endless loop, so that the php process died with
a fatal error.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2387&amp;amp;entry_id=93&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/152&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/152&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#152&lt;/a&gt;: Endless loop bug for identical class and parent name. Fixed
in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2388&amp;amp;entry_id=93&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1320&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1320&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1320&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2389&amp;amp;entry_id=93&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/153&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/153&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#153&lt;/a&gt;: Only count those classes and interfaces that are flagged
as user defined types. Fixed in subversion revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2390&amp;amp;entry_id=93&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1327&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1327&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1327&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2391&amp;amp;entry_id=93&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/154&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/154&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#154&lt;/a&gt;: Make execution order of analyzers reproducable.
Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2392&amp;amp;entry_id=93&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1331&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1331&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1331&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;p&gt;As always, you can get the latest PHP_Depend version from its PEAR channel:
&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2393&amp;amp;entry_id=93&quot; title=&quot;http://pear.pdepend.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.pdepend.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.pdepend.org&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ pear channel-discover pear.pdepend.org
mapi&amp;#64;arwen ~ $ pear install pdepend/PHP_Depend-beta
&lt;/pre&gt;
&lt;p&gt;Or you can fetch the sources from the subversion reposition:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ svn co http://svn.pdepend.org/trunk pdepend
&lt;/pre&gt;
&lt;p&gt;And additionally you can find a repository mirror on github:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ git clone git://github.com/manuelpichler/pdepend.git
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Sat, 19 Jun 2010 13:07:40 +0200</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/93-guid.html</guid>
    <category>bug fix</category>
<category>php_depend</category>
<category>release announcement</category>

</item>
<item>
    <title>Artikel zum Thema Softwaremetriken</title>
    <link>http://www.manuel-pichler.de/archives/88-Artikel-zum-Thema-Softwaremetriken.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpmd</category>
            <category>phpugdo</category>
            <category>phpundercontrol</category>
            <category>projects</category>
            <category>staticReflection</category>
    
    <comments>http://www.manuel-pichler.de/archives/88-Artikel-zum-Thema-Softwaremetriken.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=88</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  &lt;em&gt;This blog post is in German as the mentioned article was published in German.&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
In der heute erschienenen Ausgabe &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2360&amp;amp;entry_id=88&quot; title=&quot;http://it-republik.de/php/php-magazin-ausgaben/LinkedIn-vs.-Xing-000396.html&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/php/php-magazin-ausgaben/LinkedIn-vs.-Xing-000396.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;4.10&lt;/a&gt; des &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2361&amp;amp;entry_id=88&quot; title=&quot;http://it-republik.de/php/php-magazin/&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/php/php-magazin/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHP Magazins&lt;/a&gt; ist auch ein Artikel von mir enthalten, und wie sollte es wohl anders sein *Trommelwirbel*, beschäftigt der sich mit dem Thema &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2362&amp;amp;entry_id=88&quot; title=&quot;http://de.wikipedia.org/wiki/Softwaremetrik&quot;  onmouseover=&quot;window.status=&#039;http://de.wikipedia.org/wiki/Softwaremetrik&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Softwaremetriken&lt;/a&gt; &lt;img src=&quot;http://www.manuel-pichler.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; In diesem Artikel gibt es eine sehr ausführliche Einführung in die Thematik, mit eine Reihe von praktischen Beispielen und den daraus ableitbaren Aussagen über den untersuchten Quelltext.
&lt;/p&gt;

&lt;p&gt;
Über Kommentare, Anregungen und Kritik rund um den Artikel würde ich mich sehr freuen. Und sollte euch der Artikel gefallen haben, empfehle ich die Internationale &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2363&amp;amp;entry_id=88&quot; title=&quot;http://phpconference.com&quot;  onmouseover=&quot;window.status=&#039;http://phpconference.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHP Conference 2010&lt;/a&gt;, die vom 30. Mai bis 2. Juni in Berlin stattfindet, an der ich teilnehmen und zwei Vorträge halten werden.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2364&amp;amp;entry_id=88&quot; title=&quot;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13448&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13448&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Von Continuous Integration zu Continuous Deployment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2365&amp;amp;entry_id=88&quot; title=&quot;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13450&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13450&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Statische Codeanalyse wirklich effektiv nutzen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Wed, 12 May 2010 09:04:12 +0200</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/88-guid.html</guid>
    <category>article</category>
<category>ipc</category>
<category>php-magazin</category>
<category>software metrics</category>

</item>
<item>
    <title>PHP-Magazin Artikel zum Thema Softwaremetriken</title>
    <link>http://www.manuel-pichler.de/archives/89-PHP-Magazin-Artikel-zum-Thema-Softwaremetriken.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpmd</category>
            <category>phpugdo</category>
            <category>phpundercontrol</category>
            <category>projects</category>
            <category>staticReflection</category>
    
    <comments>http://www.manuel-pichler.de/archives/89-PHP-Magazin-Artikel-zum-Thema-Softwaremetriken.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=89</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  &lt;em&gt;This blog post is in German as the mentioned article was published in German.&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
In der heute erschienenen Ausgabe &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2366&amp;amp;entry_id=89&quot; title=&quot;http://it-republik.de/php/php-magazin-ausgaben/LinkedIn-vs.-Xing-000396.html&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/php/php-magazin-ausgaben/LinkedIn-vs.-Xing-000396.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;4.10&lt;/a&gt; des &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2367&amp;amp;entry_id=89&quot; title=&quot;http://it-republik.de/php/php-magazin/&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/php/php-magazin/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHP Magazins&lt;/a&gt; ist auch ein Artikel von mir enthalten, und wie sollte es wohl anders sein *Trommelwirbel*, beschäftigt der sich mit dem Thema &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2368&amp;amp;entry_id=89&quot; title=&quot;http://de.wikipedia.org/wiki/Softwaremetrik&quot;  onmouseover=&quot;window.status=&#039;http://de.wikipedia.org/wiki/Softwaremetrik&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Softwaremetriken&lt;/a&gt; &lt;img src=&quot;http://www.manuel-pichler.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; In diesem Artikel gibt es eine sehr ausführliche Einführung in die Thematik, mit eine Reihe von praktischen Beispielen und den daraus ableitbaren Aussagen über den untersuchten Quelltext.
&lt;/p&gt;

&lt;p&gt;
Über Kommentare, Anregungen und Kritik rund um den Artikel würde ich mich sehr freuen. Und sollte euch der Artikel gefallen haben, empfehle ich die Internationale &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2369&amp;amp;entry_id=89&quot; title=&quot;http://phpconference.com&quot;  onmouseover=&quot;window.status=&#039;http://phpconference.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHP Conference 2010&lt;/a&gt;, die vom 30. Mai bis 2. Juni in Berlin stattfindet, an der ich teilnehmen und zwei Vorträge halten werden.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2370&amp;amp;entry_id=89&quot; title=&quot;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13448&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13448&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Von Continuous Integration zu Continuous Deployment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2371&amp;amp;entry_id=89&quot; title=&quot;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13450&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=ipc2010se&amp;amp;amp;id=13450&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Statische Codeanalyse wirklich effektiv nutzen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Wed, 12 May 2010 09:04:12 +0200</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/89-guid.html</guid>
    <category>article</category>
<category>ipc</category>
<category>php-magazin</category>
<category>software metrics</category>

</item>
<item>
    <title>PHP_Depend 0.9.13 bugfix release</title>
    <link>http://www.manuel-pichler.de/archives/87-PHP_Depend-0.9.13-bugfix-release.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/87-PHP_Depend-0.9.13-bugfix-release.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=87</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;Today we have released the bugfix version 0.9.13 of PHP_Depend, the tool
to measure several software metrics for your PHP application. This release
fixes two critical bugs. One in the tokenizer implementation, which has
modified valid code under test in such a way, that it has become invalid
PHP code. The second fix is related to PHP_Depends&#039;s test code, where a
missing &lt;code&gt;require_once&lt;/code&gt; statement has caused a &lt;code&gt;E_FATAL&lt;/code&gt; while running
the test suite in &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2359&amp;amp;entry_id=87&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; process isolation mode.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2354&amp;amp;entry_id=87&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/145&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/145&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#145&lt;/a&gt;: Incorrect require_once statement in ASTSwitchStatement
source file. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2355&amp;amp;entry_id=87&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1262&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1262&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1262&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2356&amp;amp;entry_id=87&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/150&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/150&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#150&lt;/a&gt;: Invalid nowdoc substitution has produced broken code.
Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2357&amp;amp;entry_id=87&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1266&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1266&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1266&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;p&gt;As always, you can get the latest PHP_Depend version from its PEAR channel:
&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2358&amp;amp;entry_id=87&quot; title=&quot;http://pear.pdepend.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.pdepend.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.pdepend.org&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ pear channel-discover pear.pdepend.org
mapi&amp;#64;arwen ~ $ pear install pdepend/PHP_Depend-beta
&lt;/pre&gt;
&lt;p&gt;Or you can fetch the sources from the subversion reposition:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ svn co http://svn.pdepend.org/trunk pdepend
&lt;/pre&gt;
&lt;p&gt;And additionally you can find a repository mirror on github:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ git clone git://github.com/manuelpichler/pdepend.git
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Mon, 10 May 2010 17:31:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/87-guid.html</guid>
    <category>bug fix</category>
<category>php_depend</category>
<category>release announcement</category>
<category>software metrics</category>
<category>tokenizer</category>

</item>
<item>
    <title>Goodbye Cologne</title>
    <link>http://www.manuel-pichler.de/archives/86-Goodbye-Cologne.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpmd</category>
            <category>phpugdo</category>
            <category>phpundercontrol</category>
            <category>planet-php</category>
    
    <comments>http://www.manuel-pichler.de/archives/86-Goodbye-Cologne.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=86</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;As many of you may already have noticed, there will be a big change in my
career as a professional software engineer and architect this summer. Together
with &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2346&amp;amp;entry_id=86&quot; title=&quot;http://kore-nordmann.de/blog/0095_ez_components_new_ways.txt&quot;  onmouseover=&quot;window.status=&#039;http://kore-nordmann.de/blog/0095_ez_components_new_ways.txt&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Kore&lt;/a&gt; and &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2347&amp;amp;entry_id=86&quot; title=&quot;http://schlitt.info/opensource/blog/0725_goodbye_ez_systems_hello_world.html&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/opensource/blog/0725_goodbye_ez_systems_hello_world.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Toby&lt;/a&gt; I am in the process of founding a company. The focus
of this company will be on services all around the whole quality life cycle in
PHP projects.&lt;/p&gt;

&lt;p&gt;Under the hood of our company we will also offer support, trainings and
consulting for several quality assurance tools, like &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2348&amp;amp;entry_id=86&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;pdepend&lt;/a&gt;, &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2349&amp;amp;entry_id=86&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; and
&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2350&amp;amp;entry_id=86&quot; title=&quot;http://phpundercontrol.org&quot;  onmouseover=&quot;window.status=&#039;http://phpundercontrol.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;phpUnderControl&lt;/a&gt;. For you, this opens a great opportunity. You can use the
tools and the documentation, as well as participate in the community, as
usual. But from now on you can also purchase professional support, if you get
stuck or need general assitance.  And when you miss a feature or need an
individual extension for one of these tools, don&#039;t hesitate to contact us.&lt;/p&gt;

&lt;p&gt;I am really excited what cool things will happen in the next couple of years
and I am looking forward to cowork with professionals like &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2351&amp;amp;entry_id=86&quot; title=&quot;http://schlitt.info/opensource/&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/opensource/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Toby&lt;/a&gt; and
&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2352&amp;amp;entry_id=86&quot; title=&quot;http://kore-nordmann.de&quot;  onmouseover=&quot;window.status=&#039;http://kore-nordmann.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Kore&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To finalize the little marketing for the company and its services &lt;img src=&quot;http://www.manuel-pichler.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; I would
appreciate to meet you, your colleagues and your compmany, to give
presentations or into-depth trainings on one of the tools or on quality
assurance in general.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Thu, 29 Apr 2010 13:20:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/86-guid.html</guid>
    <category>changes</category>
<category>company</category>
<category>consulting</category>
<category>php</category>
<category>phpmd</category>
<category>phpundercontrol</category>
<category>php_depend</category>
<category>quality</category>
<category>support</category>
<category>training</category>

</item>
<item>
    <title>PHP_Depend 0.9.12 release</title>
    <link>http://www.manuel-pichler.de/archives/85-PHP_Depend-0.9.12-release.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/85-PHP_Depend-0.9.12-release.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=85</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;I am proud to announce the 0.9.12 release of PHP_Depend. PHP_Depend is a
low level static code analysis tool. It takes the given source and
calculates several software metrics for the code. This data can be used by
software-developers, architects and designers to control the quality of a
software-product without time consuming code audits.&lt;/p&gt;
&lt;p&gt;This new release of PHP_Depend has done a great step into the direction of a
token free PHP_Depend version. This means future versions of PHP_Depend will
work without the need to traverse linear token streams up and down, to measure
metrics. Instead PHP_Depend will rely on it&#039;s internal abstract syntax tree,
that represents the logical structure of the analyzed source code. With this
solution it will be possible to implement several new features that will make
PHP_Depend more useful, for example static callgraph analysis.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2331&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/97&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/97&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#97&lt;/a&gt;: Replace current token approach in CCN- and NPath-Analyzer
with AST-Nodes. Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2332&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1248&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1248&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1248&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2333&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/125&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/125&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#125&lt;/a&gt;: PHP_Depend silently parses list statements. Fixed in
svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2334&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1223&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1223&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1223&lt;/a&gt;. Thanks to Joey Mazzarelli for providing this patch.&lt;/li&gt;
&lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2335&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/126&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/126&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#126&lt;/a&gt;: Generate reproducable node identifiers instead of
random numbers. Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2336&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1244&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1244&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1244&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2337&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/128&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/128&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#128&lt;/a&gt;: Variable variables in foreach statement cause an exception.
Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2338&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1237&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1237&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1237&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2339&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/133&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/133&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#133&lt;/a&gt;: Fatal error: Maximum function nesting level of &#039;100&#039; reached,
aborting! in /usr/share/pear/PHP/Depend/Util/Log.php on line 109. Fixed
in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2340&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1257&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1257&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1257&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2341&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/134&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/134&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#134&lt;/a&gt;: ASTReturnStatement is not derived from ASTStatement. Fixed
in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2342&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1250&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1250&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1250&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2343&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/135&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/135&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#135&lt;/a&gt;: Several Statement classes do not inherit ASTStatement. Fixed
in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2344&amp;amp;entry_id=85&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1255&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1255&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1255&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;p&gt;As always, you can get the latest PHP_Depend version from its PEAR channel:
&lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2345&amp;amp;entry_id=85&quot; title=&quot;http://pear.pdepend.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.pdepend.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.pdepend.org&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ pear channel-discover pear.pdepend.org
mapi&amp;#64;arwen ~ $ pear install pdepend/PHP_Depend-beta
&lt;/pre&gt;
&lt;p&gt;Or you can fetch the sources from the subversion reposition:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ svn co http://svn.pdepend.org/trunk pdepend
&lt;/pre&gt;
&lt;p&gt;And additionally you can find a repository mirror on github:&lt;/p&gt;
&lt;pre&gt;
mapi&amp;#64;arwen ~ $ git clone git://github.com/manuelpichler/pdepend.git
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Sun, 25 Apr 2010 14:44:15 +0200</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/85-guid.html</guid>
    <category>bug fix</category>
<category>npath complexity</category>
<category>php_depend</category>
<category>release announcement</category>

</item>
<item>
    <title>PHP_Depend-0.9.11 released</title>
    <link>http://www.manuel-pichler.de/archives/82-PHP_Depend-0.9.11-released.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/82-PHP_Depend-0.9.11-released.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=82</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  I have just released version 0.9.11 of PHP_Depend. It contains a few bug fixes and improvements for PHP_Depend.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2291&amp;amp;entry_id=82&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/118&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/118&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#118&lt;/a&gt;: Calculation of the Number Of Overwritten Methods is wrong. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2292&amp;amp;entry_id=82&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1112&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1112&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1112&lt;/a&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2293&amp;amp;entry_id=82&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/119&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/119&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#119&lt;/a&gt;: Three test cases fail for all PHP versions prior to 5.3. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2294&amp;amp;entry_id=82&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1114&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1114&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1114&lt;/a&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2295&amp;amp;entry_id=82&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/121&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/121&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#121&lt;/a&gt;: Parse arguments of the ASTForeachStatement. Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2296&amp;amp;entry_id=82&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1115&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1115&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1115&lt;/a&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    Critical issue in PHP_Depend&#039;s temporary data cache fixed. This bug only occured when running several instances of PHP_Depend in parallel. In this setup the used cache key &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2297&amp;amp;entry_id=82&quot; title=&quot;http://php.net/spl_object_hash&quot;  onmouseover=&quot;window.status=&#039;http://php.net/spl_object_hash&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;spl_object_hash()&lt;/a&gt; has caused a corrupted cache, because different php process instances have written different data to the same cache file.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;p&gt;
  As always, you can get the latest PHP_Depend version from its PEAR channel: &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2298&amp;amp;entry_id=82&quot; title=&quot;http://pear.pdepend.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.pdepend.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.pdepend.org&lt;/a&gt;:
&lt;/p&gt;
&lt;pre&gt;
  mapi&amp;#64;arwen ~ $ pear channel-discover pear.pdepend.org
  mapi&amp;#64;arwen ~ $ pear install pdepend/PHP_Depend-beta
&lt;/pre&gt;
&lt;p&gt;
  Or you can fetch the sources from the subversion reposition:
&lt;/p&gt;
&lt;pre&gt;
  mapi&amp;#64;arwen ~ $ svn co http://svn.pdepend.org/branches/0.9.0/
&lt;/pre&gt;
&lt;p&gt;
  And additionally you can find a repository mirror on github:
&lt;/p&gt;
&lt;pre&gt;
  mapi&amp;#64;arwen ~ $ git clone git://github.com/manuelpichler/pdepend.git
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Tue, 02 Mar 2010 21:08:03 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/82-guid.html</guid>
    <category>bug fix</category>
<category>php_depend</category>
<category>release announcement</category>
<category>software metrics</category>
<category>static code analysis</category>

</item>
<item>
    <title>PHP_Depend-0.9.10 released</title>
    <link>http://www.manuel-pichler.de/archives/81-PHP_Depend-0.9.10-released.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>planet-php</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/81-PHP_Depend-0.9.10-released.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=81</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
I have just released the bug fix version 0.9.10 of PHP_Depend. This
release contains several bug fixes and improvements for PHP_Depend.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2272&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/72&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/72&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#72&lt;/a&gt;__: Add NOAM, NOOM and NOCC metrics. Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2273&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1084&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1084&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1084&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2274&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/74&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/74&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#74&lt;/a&gt;: Make CRAP-index available. Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2275&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1063&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1063&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1063&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2276&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/105&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/105&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#105&lt;/a&gt;: Support for deep search implement. Implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2277&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1078&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1078&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1078&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2278&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/106&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/106&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#106&lt;/a&gt;: Filter algorithm is broken for namespaced internal classes. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2279&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1039&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1039&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1039&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2280&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/110&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/110&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#110&lt;/a&gt;: Duplicate &quot;coupling&quot; directory in test code. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2281&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1032&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1032&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1032&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2282&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/111&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/111&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#111&lt;/a&gt;: Dynamic Strings are treated as literal strings. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2283&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1037&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1037&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1037&lt;/a&gt;. &lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2284&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/114&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/114&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#114&lt;/a&gt;: Parsing error caused by complex string expressions fixed. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2285&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1068&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1068&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1068&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2286&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/115&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/115&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#115&lt;/a&gt;: Summary and PHPUnit Report lists unknown classes. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2287&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1101&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1101&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1101&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2288&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/116&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/116&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#116&lt;/a&gt;: Returns reference results in parsing error. Fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2289&amp;amp;entry_id=81&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1090&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1090&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1090&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Performance intensive calculation result cached.&lt;/li&gt;
  &lt;li&gt;Test code restructured and improved.&lt;/li&gt;
  &lt;li&gt;Concurrency issue for parallel running pdepend instances fixed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
As always, you can get the latest PHP_Depend version from its PEAR channel: &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2290&amp;amp;entry_id=81&quot; title=&quot;http://pear.pdepend.org&quot;  onmouseover=&quot;window.status=&#039;http://pear.pdepend.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pear.pdepend.org&lt;/a&gt;:
&lt;/p&gt;
&lt;pre&gt;
  mapi@arwen ~ $ pear channel-discover pear.pdepend.org
  mapi@arwen ~ $ pear install pdepend/PHP_Depend-beta
&lt;/pre&gt;
&lt;p&gt;
Or you can fetch the sources from the subversion reposition:
&lt;/p&gt;
&lt;pre&gt;
  mapi@arwen ~ $ svn co http://svn.pdepend.org/branches/0.9.0/
&lt;/pre&gt;
&lt;p&gt;
And additionally you can find a repository mirror on github:
&lt;/p&gt;
&lt;pre&gt;
  mapi@arwen ~ $ git clone git://github.com/manuelpichler/pdepend.git
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Tue, 23 Feb 2010 20:36:01 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/81-guid.html</guid>
    <category>php</category>
<category>php5</category>
<category>php_depend</category>
<category>quality assurance</category>
<category>release announcement</category>
<category>software metrics</category>
<category>static code analysis</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>
<item>
    <title>PHP_Depend-0.9.9 released</title>
    <link>http://www.manuel-pichler.de/archives/71-PHP_Depend-0.9.9-released.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/71-PHP_Depend-0.9.9-released.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=71</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  I have just released the bug fix version 0.9.9 of PHP_Depend.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2207&amp;amp;entry_id=71&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/108&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/108&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#108&lt;/a&gt;: Parser doesn&#039;t set start/end line/column on variables, fixed in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2208&amp;amp;entry_id=71&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1015&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1015&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1015&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Implemented &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2209&amp;amp;entry_id=71&quot; title=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/104&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/issue_tracker/issue/104&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#104&lt;/a&gt;: Add isStatic() method on ASTMemberPrimaryPrefix node, implemented in svn revision &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2210&amp;amp;entry_id=71&quot; title=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1013&quot;  onmouseover=&quot;window.status=&#039;http://tracker.pdepend.org/pdepend/browse_code/revision/1013&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;#1013&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;
&lt;p&gt;
   You can get the latest PHP_Depend version from its PEAR channel: pear.pdepend.org 
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ pear channel-discover pear.pdepend.org
mapi@arwen ~ $ pear install pdepend/PHP_Depend-beta
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Sat, 26 Dec 2009 23:26:37 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/71-guid.html</guid>
    <category>bug fix</category>
<category>php_depend</category>
<category>release announcement</category>

</item>
<item>
    <title>PHP_Depend-0.9.8 released</title>
    <link>http://www.manuel-pichler.de/archives/70-PHP_Depend-0.9.8-released.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>projects</category>
    
    <comments>http://www.manuel-pichler.de/archives/70-PHP_Depend-0.9.8-released.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=70</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
Today I released PHP_Depend 0.9.8, which contains many bug fixes and improvements. This release will be the base version for a new tool called &lt;a href=&quot;http://tracker.pdepend.org/php_mess_detector/browse_code&quot;&gt;PHPMD&lt;/a&gt;. PHPMD is a frontend that reports critical and suspect software artifacts in a project, based on the metrics measured with PHP_Depend. It aims to be a PHP equivalent to the well known java tool &lt;a href=&quot;http://pmd.sourceforge.net/&quot;&gt;PMD&lt;/a&gt;.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Closed &lt;a href=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/93&quot;&gt;#93&lt;/a&gt;: Implement an assignment expression, Implemented in svn revision &lt;a href=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/992&quot;&gt;#992&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/94&quot;&gt;#94&lt;/a&gt;: Parser throws exception for closures that return by reference, fixed in svn revision &lt;a href=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/962&quot;&gt;#962&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/98&quot;&gt;#98&lt;/a&gt;: Functions with an invalid signature result in an inconsistent object graph, fixed in svn revision &lt;a href=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/986&quot;&gt;#986&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/102&quot;&gt;#102&lt;/a&gt;: Namespace keyword in type-hint is broken, fixed in svn revision &lt;a href=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1010&quot;&gt;#1010&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed &lt;a href=&quot;http://tracker.pdepend.org/pdepend/issue_tracker/issue/103&quot;&gt;#103&lt;/a&gt;: The parser does not handle all strings as parameter default value correct, fixed in svn revision &lt;a href=&quot;http://tracker.pdepend.org/pdepend/browse_code/revision/1009&quot;&gt;#1009&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;
&lt;p&gt;
   You can get the latest PHP_Depend version from its PEAR channel: pear.pdepend.org 
&lt;/p&gt;

&lt;pre&gt;
mapi@arwen ~ $ pear channel-discover pear.pdepend.org
mapi@arwen ~ $ pear install pdepend/PHP_Depend-beta
&lt;/pre&gt;

 
    </content:encoded>

    <pubDate>Mon, 14 Dec 2009 17:21:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/70-guid.html</guid>
    <category>bug fix</category>
<category>phpmd</category>
<category>php_depend</category>
<category>pmd</category>
<category>release announcement</category>

</item>
<item>
    <title>PHP_Depend PEAR Channel switched to Pirum</title>
    <link>http://www.manuel-pichler.de/archives/67-PHP_Depend-PEAR-Channel-switched-to-Pirum.html</link>
            <category>php</category>
            <category>php_depend</category>
            <category>phpugdo</category>
            <category>planet-php</category>
    
    <comments>http://www.manuel-pichler.de/archives/67-PHP_Depend-PEAR-Channel-switched-to-Pirum.html#comments</comments>
    <wfw:comment>http://www.manuel-pichler.de/wfwcomment.php?cid=67</wfw:comment>

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

    <author>nospam@example.com (Manuel Pichler)</author>
    <content:encoded>
    &lt;p&gt;
  Today &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2160&amp;amp;entry_id=67&quot; title=&quot;http://fabien.potencier.org/&quot;  onmouseover=&quot;window.status=&#039;http://fabien.potencier.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Fabien Potencier&lt;/a&gt; &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2165&amp;amp;entry_id=67&quot; title=&quot;http://fabien.potencier.org/article/38/pirum-the-simple-pear-channel-server-manager&quot;  onmouseover=&quot;window.status=&#039;http://fabien.potencier.org/article/38/pirum-the-simple-pear-channel-server-manager&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;announced&lt;/a&gt; the first relase of the &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2161&amp;amp;entry_id=67&quot; title=&quot;http://pear.php.net&quot;  onmouseover=&quot;window.status=&#039;http://pear.php.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PEAR&lt;/a&gt; Channel server &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2162&amp;amp;entry_id=67&quot; title=&quot;http://pirum-project.org/&quot;  onmouseover=&quot;window.status=&#039;http://pirum-project.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Pirum&lt;/a&gt;. The great benefit of this Channel server is that it provides a simple shell script to publish new PEAR package releases, a feature that I missed in the previously used &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2163&amp;amp;entry_id=67&quot; title=&quot;http://pear.chiaraquartet.net/&quot;  onmouseover=&quot;window.status=&#039;http://pear.chiaraquartet.net/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Chiara PEAR Server&lt;/a&gt;. Pirum will make it really easy to publish new package versions through a simple build script &lt;img src=&quot;http://www.manuel-pichler.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
  The setup was quick done, following the &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2162&amp;amp;entry_id=67&quot; title=&quot;http://pirum-project.org/&quot;  onmouseover=&quot;window.status=&#039;http://pirum-project.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;instructions&lt;/a&gt; on the pirum website, and importing the existing package files worked like a charm. The only problem I encountered was that both channel server implementations use a different directory structure. Pirum stores all the XML descriptors under a directory named &lt;i&gt;/rest&lt;/i&gt;, while my Chiara Server installation has used &lt;i&gt;/Chiara_PEAR_Server_REST&lt;/i&gt;, so that a first call to &lt;code&gt;pear upgrade&lt;/code&gt; resulted in the following error:
&lt;/p&gt;

&lt;pre&gt;
manu@arwen ~ $ pear upgrade
Error getting channel info from pear.pdepend.org: \
File http://pear.pdepend.org:80/Chiara_PEAR_Server_REST/p/packages.xml \
not valid (received: HTTP/1.1 404 Not Found)
&lt;/pre&gt;

&lt;p&gt;
  But a simple 301 redirect makes this software transition transparent for the &lt;a href=&quot;http://www.manuel-pichler.de/exit.php?url_id=2166&amp;amp;entry_id=67&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; users. So when you will also switch to Pirum you should keep this in mind and test your channel server with an existing/configured local pear installation.
&lt;/p&gt;

&lt;p&gt;
  Finally, thanks to Fabien for this nitty-gritty tool, which will speed up the deployment process of PEAR packages, at least for me.
&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 28 Nov 2009 14:00:23 +0100</pubDate>
    <guid isPermaLink="false">http://www.manuel-pichler.de/archives/67-guid.html</guid>
    <category>fabien potencier</category>
<category>php</category>
<category>php_depend</category>
<category>pirum</category>

</item>

</channel>
</rss>
