Archiv der Kategorie: continous integration

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 😀

php Codesniffer und CI , Zeilenlänge und Windows Zeilenumbruch setzen

Windows, Continous Integration, 16:10 Bildschirme und phpcs.

Dies alles passt im Standard nicht zusammen, zumindest nicht mit unseren internen Regeln, daher hier die notwendigen Anpassungen, um zumindest die Zeilenlänge auf ein erträgliches Maß von 120 zu 160 zu bekommen (nicht mit dem Blutdruck verwechseln) und den Codesniffer an Windows-like Zeilenumbrüche von \r\n zu gewöhnen.

Meine phpcs.xml sieht dann in etwa so aus:

<?xml version="1.0"?>
<ruleset name="PHPCS Rules">
 <description>Using Zend Rules</description>
 <rule ref="Zend">
  <exclude name="Generic.WhiteSpace.DisallowTabIndent" />
  <exclude name="Generic.Functions.OpeningFunctionBraceBsdAllman" />
  <exclude name="Generic.PHP.DisallowShortOpenTag" />
  <exclude name="Generic.Files.LineEndings" />
 </rule>
 <rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie" />
 <rule ref="Generic.Files.LineLength">
  <properties>
   <property name="lineLimit" value="120"/>
   <property name="absoluteLineLimit" value="160"/>
  </properties>
 </rule>
</ruleset>