Frage

Benutzt jemand Phing um PHP-Anwendungen bereitzustellen, und wenn ja, wie verwenden Sie sie?Wir verfügen derzeit über ein handgeschriebenes „Setup“-Skript, das wir jedes Mal ausführen, wenn wir eine neue Instanz unseres Projekts bereitstellen.Wir checken einfach bei SVN aus und führen es aus.Es legt einige grundlegende Konfigurationsvariablen fest, installiert oder lädt die Datenbank neu und generiert einen V-Host für die Site-Instanz.

Ich habe oft darüber nachgedacht, dass wir vielleicht etwas verwenden sollten Phing.Ich habe Ant nicht oft verwendet, daher habe ich kein wirkliches Gespür dafür, was Phing soll neben dem Skript auch das Kopieren von Dateien von einem Ort an einen anderen erledigen, ähnlich wie es unser Setup-Skript tut.Was sind einige fortgeschrittenere Verwendungszwecke, für die Sie Beispiele nennen können, um mir zu helfen, zu verstehen, warum wir integrieren möchten oder nicht? Phing in unseren Prozess?

War es hilfreich?

Lösung

Von Federico Cargnelutti Blogeintrag:

Zu den Funktionen gehören Dateitransformationen (z. B.Token -Ersatz, XSLT -Transformation, Smarty -Vorlagentransformationen), Dateisystemoperationen, Interaktive Build -Unterstützung, SQL -Ausführung, Lebensläufe, Tools zum Erstellen von Birnenpaketen und vieles mehr.

Natürlich können Sie für alle oben genannten Punkte benutzerdefinierte Skripte schreiben.Die Verwendung eines speziellen Build-Tools wie Phing bietet Ihnen jedoch eine Reihe von Vorteilen.Sie verwenden ein bewährtes Framework, sodass Sie sich nicht um die Einrichtung einer „Infrastruktur“ kümmern müssen, sondern sich auf den Code konzentrieren können, den Sie schreiben müssen.Durch die Verwendung von Phing wird es auch für neue Mitglieder, die Ihrem Team beitreten, einfacher, zu verstehen, was vor sich geht, wenn sie zuvor Phing (oder Ant, worauf Phing basiert) verwendet haben.

Andere Tipps

Ich bin von Ant zu Phing gewechselt, „einfach weil“ es PHP ist.Ich verwende es, um aus verschiedenen Subversion-Repositorys zu exportieren, Dinge zu kopieren, verschiedene Installationspakete zu erstellen usw., und das alles mit einer wiederverwendbaren 20-Zeilen-XML-Datei und einer Konfigurationsdatei mit projektspezifischen Dingen.Mit einem benutzerdefinierten Skript könnte ich es auf keinen Fall so schnell schaffen.Ich plane auch, die API-Dokumentationsgenerierung und Unit-Tests zu integrieren.Liebe es!

Die überzeugende Antwort für mich ist, dass Phing PHP-Klassenpfade versteht.Ameise nicht.Ich möchte keine ant build.xml voller Exec-Befehle haben.Ich bin hauptsächlich Java-Programmierer und verwende immer noch Phing.Es ist das beste Werkzeug für den Job.

Wir verwenden Phing zur Bereitstellung SemanticScuttle:

  • Generieren Sie ein ZIP-Archiv zur Verteilung
  • erstellen BIRNE Paket
  • hochladen Reißverschluss zu SourceForge
  • Aktualisieren Sie die PEAR-Kanal mit der neuen Paketdatei
  • Rendern Sie die reStructuredText-Dokumentation in HTML-Dateien und laden Sie sie hoch.Derzeit mit exec aber ich bin gerade dabei, eine zu schreiben separate Aufgabe dafür.

Das Hochladen der Zip-Datei und des Kanals erfolgt über rsync, was per Phing leider nicht über eine spezielle Aufgabe unterstützt wird – sondern über exec ist immer möglich und funktioniert gut.

Letztendlich spart es viel Zeit und wir können unsere App mit einem einzigen Befehl testen, verpacken und bereitstellen (was uns einen weiteren Punkt verschafft). Joel-Test).Ich möchte nicht ohne leben wollen.

Siehe die build.xml-Code.

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 verfügt über eine bessere Dokumentation, einschließlich einiger netter O'Reilly-Bücher, und ist im Java-Universum gut etabliert, sodass Sie die Probleme (1) „Wir haben Feature X noch nicht in Phing kopiert“ und (2) das Risiko vermeiden dass das Phing-Projekt scheitert. Hier ist ein Artikel über die Konfiguration von PHPUnit für die Zusammenarbeit mit Ant und Cruisecontrol:nicht so schwer.Und Sie erhalten die Eclipse-Integration kostenlos.

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top