Abhängigkeiten automatisiert verwalten mit Pundle
Ein Gastbeitrag von Timo Puschkasch
Student aus Stuttgart, seit längerem als Webentwickler mit PHP und Ruby sowie gelegentlich als Blogger tätig. Seit kurzem auch in der UG Stuttgart anzutreffen. Lead Developer des vorgestellten Projekts.
Es gibt heutzutage zwei Arten von PHP-Anwendungen: die Einen bringen ihre Abhängigkeiten in einem riesigen zip-Archiv mit und arbeiten entweder mit veralteten Versionen mancher Bibliotheken oder liefern alle 20 Tage ein neues Archiv aus. Zum einen ist dies sehr nervig und zum anderen entstehen so auch oftmals Sicherheitslücken. Daher liefern immer mehr Anwendungen ihre Abhängigkeiten nicht direkt mit sondern erwarten, dass der Entwickler diese selbst installiert. Obwohl dieses Vorgehen die Sicherheit erheblich verbessert belastet es doch die Zeit des Entwicklers enorm.
Aus genau dieser Problematik ist Pundle entstanden. Als schlankes, PHP-basiertes Tool ermöglicht es, die Installation und Aktualisierung von Abhängigkeiten wie anderen Tools, Bibliotheken oder auch bestimmten PHP-Versionen zu automatisieren und nimmt damit dem Entwickler viel Arbeit ab. Definiert werden die Abhängigkeiten dabei ganz einfach in einer Yaml-Datei. Beispielhaft sieht das so aus:
Pundle kann dabei mit einer Vielzahl von Abhängigkeiten umgehen: Pear-Packages werden genauso unterstützt wie git- und svn-Repositories oder das Prüfen auf ein bestimmtes Betriebssystem, eine PHP-Version oder die Existenz bestimmter Klassen und Methoden. Eine Vielzahl dieser Abhängigkeiten kann auch auf Wunsch des Anwenders aufgelöst werden.
Das Tool läuft sowohl über eine integrierte API, mit der z.B. beim Start eines Tools überprüft werden kann, ob alle Bedingungen erfüllt sind, als auch plattformunabhängig auf der Command Line, was eine schnelle Installation oder Aktualisierung aller nötigen Abhängigkeiten erlaubt:
Da die nötige Yaml-Datei schnell angelegt werden kann und auch die Installation von Pundle schnell über die Bühne geht ist der Umstieg – auch bei laufenden Projekten – schnell erledigt und spart viel Zeit ein. Auch eine teilweise Migration oder eine Migration über einen längeren Zeitraum ist denkbar. Eine Erklärung der Vorteile sowie eine Einführung in die Arbeit mit Pundle können im Pundle GitHub Wiki gefunden werden. Das GitHub-Repository und das dazugehörige Wiki sind auch die richtige Anlaufstelle, wenn ihr selbst an Pundle arbeiten oder es erweitern wollt. Eure Hilfe und euer Feedback sind immer gerne gesehen.
was fürn Zufall, vor nicht all zu langer Zeit hab ich etwas vergleichbares geschrieben mit https://github.com/Flyingmana/pere
Flyingmana
23 Mrz 11 at 15:27