Das Build-Tool Phing um eigene Anforderungen erweitern

Traumtyp Phing
Kommentare

Um mit der Entwicklung Schritt halten zu können, ist es erforderlich, Backups zu erstellen, Dokumentation zu generieren, Caches aufzufrischen und vieles mehr. Eine Lösung, damit einem der Zeitaufwand dafür nicht irgendwann über den Kopf wächst, ist das Build-Tool Phing: eine Alternative zu Ant, die keine Java-Kenntnisse erfordert. Dieser Artikel zeigt, wie es geht.

PHP Magazin

Der Artikel „Traumtyp Phing“ von Alberto Assmann ist erstmalig erschienen im PHP Magazin 3.2012.

In jedem Projekt wird das Deployment ab einem gewissen Zeitpunkt anstrengend: Anfangs brauchte man zehn Minuten, um die neuesten Änderungen auf den Server zu schieben, irgendwann ist man bei Stunden angekommen. Ein einfacher FTP-Upload reicht schon lange nicht mehr aus, um mit der Entwicklung Schritt halten zu können. Dinge wie Backups erstellen, generieren der Dokumentation, Datenbankänderungen einspielen, auffrischen des Caches, löschen der alten Log-Dateien und viele andere kleine Aufgaben haben die Checkliste für ein Release inzwischen auf mehrere Seiten anwachsen lassen. So oder so ähnlich könnte sich ein Projektmanager bei Ihnen beklagen, wenn Sie ihn denn auf seinen Deployment-Prozess ansprechen würden. Dabei könnte das Leben so einfach sein: Den Schritt zu einem (teilweise) automatisierten Build- und Deployment-Prozess sind bereits viele Projekte gegangen, eventuell auch das Ihre.

Phing vs. Ant

Der Platzhirsch bei den Build-Tools ist neben selbst geschriebenen Bash Scripts das in Java geschriebene Ant [1]. An sich ist es ein tolles Tool, wenn da nicht früher oder später die Frage nach den Erweiterungsmöglichkeiten gestellt würde. Und sie dürfte sich bei den meisten Projekten eher früher als später stellen. Hier macht Ant es einem PHP-Entwickler nicht unbedingt leicht, da Erweiterungen dafür standesgemäß in Java geschrieben werden. Als PHP-Entwickler hat man im täglichen Projektgeschäft genug Probleme, und Java-Code schreiben zu müssen, sollte nicht dazu gehören. Zudem ist Java gerade auf einfachen Hosting-Systemen nur selten ein fester Bestandteil, PHP mit seiner weiten Verbreitung jedoch schon. Ähnlich mögen wohl auch die Autoren von Phing [2] gedacht haben.

Und dann kam Phing

Also nahmen sie die Arbeit an einer Ant-Portierung in PHP in Angriff, erst als Teil des Binary-Cloud-Frameworks [3], ab Anfang 2006 dann als eigenständiges Projekt. Obwohl das Binary-Cloud-Framework inzwischen nicht mehr verwendet wird, ist Phing sehr wohl noch lebendig, inzwischen sogar auf GitHub [4]. Am einfachsten ist die Installation per PEAR [5], jedoch gibt es auch eine Installationsanleitungen für Systeme, auf denen kein PEAR zur Verfügung steht [6].

Die Build Scripts, die von Phing ausgeführt werden, sind wie beim großen Bruder Ant in XML geschrieben und werden in so genannte Targets unterteilt. Ein einzelnes Target steht dabei für eine Aufgabe innerhalb des Deployment-/Build-Prozesses und kann beliebig viele so genannte Tasks enthalten. Diese Tasks repräsentieren einzelne Schritte, die innerhalb eines Targets notwendig sind, um dessen Fertigstellung voran zu treiben. Eine Aufgabe könnte zum Beispiel das Paketieren darstellen, das wiederum aus den Tasks Zielort abfragen, Überprüfen, ob der Zielort schreibbar ist und Archiv erstellen besteht (Listing 1).

Listing 1
${target.path} konnte nicht gefunden werden

Auf den folgenden Seiten:

  • Eine erste Buildfile
  • Was Ant fehlt
  • Was Phing (noch) nicht hat
  • Erste Schritte
  • Dateien und Ordner
  • Ein Traumtyp
  • Den Task das Laufen lehren
  • Unser Task lernt sprechen
  • Fazit
  • Info zum Autoren
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -