25 Stimmen

Verwenden Sie Phing?

Verwendet jemand Phing um PHP-Anwendungen bereitzustellen, und wenn ja, wie verwenden Sie es? Wir haben derzeit ein handgeschriebenes "Setup"-Skript, das wir jedes Mal ausführen, wenn wir eine neue Instanz unseres Projekts bereitstellen. Wir checken es einfach aus dem SVN aus und führen es aus. Es setzt einige grundlegende Konfigurationsvariablen, installiert die Datenbank oder lädt sie neu und generiert einen v-host für die Site-Instanz.

Ich habe oft darüber nachgedacht, dass wir vielleicht die Phing . Ich habe die Ameise noch nicht oft benutzt, daher kann ich nicht wirklich einschätzen, was Phing soll etwas anderes tun, als das Kopieren von Dateien von einem Ort zum anderen zu skripten, wie es unser Setup-Skript tut. Welche fortgeschritteneren Verwendungszwecke können Sie anhand von Beispielen erläutern, damit ich verstehe, warum wir eine Integration wünschen oder nicht? Phing in unseren Prozess?

16voto

Ryan Guest Punkte 5611

Aus Federico Cargnelutti's Blog-Beitrag :

Die Funktionen umfassen Dateitransformationen (z.B. Token Ersetzung, XSLT-Transformation, Smarty-Template-Transformationen), Datei Systemoperationen, interaktive Build Unterstützung, SQL-Ausführung, CVS Operationen, Werkzeuge zur Erstellung von PEAR Pakete und vieles mehr.

Natürlich können Sie auch eigene Skripte für all diese Punkte schreiben. Die Verwendung eines spezialisierten Build-Tools wie Phing bietet Ihnen jedoch eine Reihe von Vorteilen. Sie verwenden ein bewährtes Framework, so dass Sie sich nicht um die Einrichtung der "Infrastruktur" kümmern müssen, sondern sich auf den Code konzentrieren können, den Sie schreiben müssen. Die Verwendung von Phing macht es auch einfacher, wenn neue Mitglieder zu Ihrem Team stoßen, da sie in der Lage sind, zu verstehen, was vor sich geht, wenn sie Phing (oder Ant, worauf Phing basiert) bereits verwendet haben.

8voto

user119494 Punkte 81

Die überzeugende Antwort für mich ist, dass phing PHP-Klassenpfade versteht. Ant tut das nicht. Ich möchte keine ant build.xml voller exec-Befehle haben. Ich bin in erster Linie ein Java-Programmierer und benutze trotzdem phing. Es ist das beste Werkzeug für diese Aufgabe.

2 Stimmen

UMMM... für die Ausführung von PHP-Skripten mit ANT brauchen Sie nur "#!/usr/local/bin/php" (oder den Ort der ausführbaren php-Datei) am Anfang Ihres PHP-Skripts. Dann rufen Sie das Skript einfach von ANT aus auf, wie Sie es bei jeder Linux-Befehlszeilenoperation tun würden. Auf diese Weise können Sie alle benutzerdefinierten Code-Operationen, einschließlich SQL-Befehle, von PHP aus lösen.

7voto

Ich bin von Ant zu Phing gewechselt, nur weil es PHP ist. Ich benutze es, um aus verschiedenen Subversion-Repositories zu exportieren, Dinge zu kopieren, verschiedene Installationspakete zu erstellen usw., und das alles mit einer 20-zeiligen, wiederverwendbaren xml-Datei und einer Konfigurationsdatei mit projektspezifischem Material. Mit einem benutzerdefinierten Skript könnte ich das nicht so schnell erledigen. Ich plane auch, die Erstellung von Api-Dokumentation und Unit-Tests zu integrieren. Ich liebe es!

3voto

cweiske Punkte 28626

Wir verwenden phing zur Bereitstellung SemanticScuttle :

  • zip-Archiv für die Verteilung erzeugen
  • créer BIRNE Paket
  • hochladen zip zu SourceForge
  • Aktualisierung der PEAR-Kanal mit der neuen Paketdatei
  • reStructuredText-Dokumentation in Html-Dateien umwandeln und diese hochladen. Derzeit mit exec aber ich bin gerade dabei, eine separate Aufgabe für sie.

Das Hochladen der Zip-Datei und des Channels erfolgt über rsync, was leider von phing nicht durch einen speziellen Task unterstützt wird - aber mit exec ist immer möglich und funktioniert sehr gut.

Letztendlich spart dies eine Menge Zeit und wir können unsere Anwendung mit einem einzigen Befehl testen, verpacken und bereitstellen (was uns einen weiteren Punkt auf der Joel Test ). Ich würde nicht ohne sie leben wollen.

Siehe die build.xml-Code .

2voto

Ich sehe keinen zwingenden Grund, sich für Phing zu entscheiden. Ich meine, sollten PHP-Programmierer versuchen, Eclipse neu zu schreiben, "nur weil" es irgendwie einfacher sein könnte, Eclipse-Plugins in PHP zu schreiben? Das glaube ich nicht.

Ant hat eine bessere Dokumentation, einschließlich einiger schöner O'Reilly-Bücher, und es ist im Java-Universum gut etabliert, so dass Sie die Probleme (1) "wir haben Feature X noch nicht nach Phing kopiert" und (2) das Risiko, dass das Phing-Projekt stirbt, vermeiden. Hier ist ein Artikel über die Konfiguration von PHPUnit für die Arbeit mit Ant und Cruisecontrol: nicht so schwer. Und Sie erhalten die Eclipse-Integration kostenlos.

Viel Glück!

5 Stimmen

Nun, Eclipse neu zu schreiben ist wahrscheinlich nicht die beste Idee, Ant in PHP zu portieren ist eine wirklich gute Idee. Der Grund ist einfach: benutzerdefinierte Aufgaben, die in einfachem PHP erledigt werden können (nicht jeder kennt Java gut genug). Die Entwicklung von Anwendungen beinhaltet oft benutzerdefinierte Funktionen, die automatisiert werden müssen, und die Möglichkeit, dies in einer Sprache zu tun, die man gut beherrscht, ist für mich ein großes Plus. P.S. Wenn Sie Java verwenden, dann sollten Sie sich Maven ansehen :))

0 Stimmen

Die Dokumentation von Ant ist nicht besser als die von Phing. Ja, in der Phing-Dokumentation fehlen mehr Beispiele, aber in der Ant-Dokumentation ist das auch der Fall.

0 Stimmen

Sie müssen ANT nicht in PHP neu schreiben, um benutzerdefinierte Aufgaben zu erstellen. Alles, was Sie brauchen, ist ein Adaptertask oder Compiler, mit dem Sie PHP-Skripte von ANT aus ausführen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X