Archiv für den Monat: Januar 2015

Verzeichnisse ignorieren bei pdepend und phpdox

Im Zuge der „continuous integration“ setzt du bestimmt auch auf Tools wie pdepend oder phpdox. Allerdings würde ich gern nicht alle Verzeichnisse durchgehen, sondern ein paar davon exkludieren (Vendor-Zeug wie smarty oder das Zend-Framework).

Wer bei pdepend Verzeichnisse ignorieren will, der sollte es nicht wie in der Doku angegeben mit „–exclude“ versuchen, denn diese Option funktioniert schlicht einfach nicht.

Die Lösung ist bei pdepend der Parameter „–ignore=…“ dem man einfach alle Verzeichnisse kommasepariert übergibt, z.B. aus meinem ant-Script:

<arg value="--ignore=${basedir}/smarty,${basedir}/Zend" />

Bei phpdox kann man Verzeichnisse ausnehmen, wenn man diese auf die exclude-Liste des collector-Blocks setzt, den ihr in der entsprechenden phpdox.xml findet. Dieser Block kann dann z.B. so aussehen:

<collector publiconly="false" backend="parser">
<!-- @publiconly - Flag to disable/enable processing of non public methods and members -->
<!-- @backend - The collector backend to use, currently only shipping with 'parser' -->

<!-- <include / exclude filter for filelist generator, mask must follow fnmatch() requirements -->
<include mask="*.php" />
<exclude mask="**Zend**"/>
<exclude mask="**smarty**"/>

<!-- How to handle inheritance -->
<inheritance resolve="true">
<!-- @resolve - Flag to enable/disable resolving of inheritance -->

<!-- You can define multiple (external) dependencies to be included -->
<!-- <dependency path="" -->
<!-- @path - path to a directory containing an index.xml for a dependency project -->
</inheritance>

</collector>

Der „Trick“ dabei sind die beiden * vor und nach dem Namen.
Zumindest in meinem Jenkins läuft nun alles wie es soll 😀