Die Antwort ist, dass sie sicherlich nicht überflüssig sind.
Es ist wahr, dass man dasselbe Endergebnis mit einem Bash-Skript erzielen kann, das Drush-Befehle enthält (zumindest den Gebäudeteil). Wenn wir jedoch unseren Prozess in ein CI-Framework wie JenkinsCI integrieren möchten, ist die Verwendung von Phing (Ant oder Capistrano könnte hier ersetzt werden) der richtige Weg.
Mit Phing können wir den Build-Prozess in verschiedene Segmente aufteilen, die auf intelligente Weise an Jenkins zurückmelden können.
Also zum Beispiel. Nehmen wir an, dass ich im Rahmen meines Erstellungsprozesses drush verwende, um zwei Module zu aktivieren, Node und Shouldfail. Dann sollte der Build fehlschlagen. Wenn wir JenkinsCI jedoch nur anweisen, den folgenden Shell-Befehl auszuführen, gibt JenkinsCI an, dass der Build PASSED ist:
drush --quiet --yes @staging en node shouldfail
Offensichtlich stimmt das nicht. Wenn wir jedoch stattdessen ant oder phing verwenden, um denselben Prozess zu definieren, können wir auch eine Fehlerlogik hinzufügen, die Jenkins versteht und die daher nicht ordnungsgemäß funktioniert. Das folgende Phing-Build-Skript versucht, das Gleiche wie der vorherige Befehl zu tun, schlägt jedoch fehl, wie wir es erwarten:
<project name="staging" default="enable modules" description="Jenkins Staging Build">
<target name="enable modules">
<exec command="drush --quiet --yes @staging en node shouldfail" error='error' checkreturn="true">
</exec>
<loadfile property="en.error" file="error" />
<if>
<contains string="${en.error}" substring="warning" />
<then>
<property name="en.fail" value="Could not enable all modules" />
</then>
</if>
<fail if="en.fail" message="${en.fail}" />
</target>
</project>
BTW Ameise und Phing sind fast identisch. Der Vorteil für PHP-Entwickler bei der Verwendung von Phing besteht darin, dass sie Phing komfortabler erweitern können.
Was Drupal-Entwicklung und Drush angeht, sehe ich keinen großen Nutzen darin, Phing zu erweitern, und denke, dass das Ausführen von Exec-Tasks ausreichen würde, um eine intelligente Build-Vorlage zu erstellen.
Nun, um meine Frage zu beantworten, habe ich mir die Zeit genommen, um Phing herauszufinden. Es ist eigentlich ziemlich intuitiv und es dauert nicht allzu lange, um es herauszufinden.