Kleiner Einstieg in Phing 3

Nachdem wir im letzten Teil das Zielverzeichnis gelöscht haben ist es jetzt an der Zeit es erneut anzulegen.

<mkdir dir="${targetDir}" />

Wo das Zielverzeichnis existiert kopieren wir alle relevanten Dateien und Verzeichnisse aus unserm Projekt hinein.

<copy todir="${targetDir}" >
    <fileset dir="${baseDir}">
        <include name="**" />
        <exclude name=".*" />
        <exclude name="**/.*" />
    </fileset>
</copy>

Der Copytask ist komplexer im Aufbau. Das Atribut todir bestimmt wohin die Dateien oder Verzeichnisse kopiert werden sollen. Innerhalb des Copytasks berstimmen wir mit einem Fileset was kopiert werden soll. Das Atribut dir bestimmt von wo ausgegangen werden soll. Include gibt an, was alles in der Selektion ist. Die 2 Sterne ist kein Tippfehler sondern besagt alle Dateien in allen Unterverzeichnissen. Die beiden Excludes schließen alle Dateien und Verzeichnisse aus, die mit einem Punkt Beginnen. Das sind in meinen Projekten zum einen die Dateien von Zend Studio, aber natürlich auch die .svn Verzeichnisse der Versionskontrolle. Beides ist nichts, was man auf einem Live System haben will.

Nach dem alle Projektdateien kopiert wurden kann man sich an die Syntaxprüfung machen:

<phplint haltonfailure="true">
    <fileset dir="${targetDir}">
        <include name="**/*.php"/>
        <include name="**/*.phtml"/>
    </fileset>
</phplint>

Für Syntaxprüfung ist der Phplinttask zuständig. Wie beim Copytask geben wir auch hier wieder ein Fileset an. Die PHP Prüfung wende ich auf alle .php und .phtml Dateien an. Die Endung .phtml steht bei Zend Framework Dateien für die Viewscripte. In diesen Dateien wird HTML und PHP gemixt, somit sind sie auch zu checken. Das Atribut haltonfailure habe ich angegeben um Phing dazu zu bringen den aktuellen lauf abzubrechen, sobald ein Fehler auftritt. Ich will kein kompletten Durchlauf, falls es hier zu Problemen kommt.