2010-05-31 3 views
12

Kennt jemand eine Paket-Manager-Bibliothek für PHP (z. B. Apt oder Yum für Linux-Distributionen) auseinander von PEAR? Ich arbeite an einem System, das ein Paketverwaltungssystem für die Modulverwaltung enthalten sollte. Ich habe es geschafft, eine funktionierende Lösung mit PEAR zu bekommen, aber die Verwendung des PEAR-Clients für alles andere als die Verwaltung einer PEAR-Installation ist nicht wirklich die optimale Lösung, da sie nicht dafür ausgelegt ist. Ich müsste es ändern/erweitern (z. B. um Aktionen bei der Installation/Aktualisierung zu implementieren oder PEAR-spezifische Dateien wie Lockfiles vom Systemstamm wegzubewegen) und besonders der CLI-Clientcode ist ziemlich unordentlich und PHP4. Vielleicht hat jemand einige VorschlägePHP-Paket-Manager

  • für eine alternative PEAR-Client-Bibliothek, die einfach zu bedienen und zu erweitern (die Server-Seite ein paar nette Implementierungen wie Pirum hat und pearhub)
  • für ganz andere Paket-Management-Systeme in PHP geschrieben (einschließlich ideal Verfolgung von Abhängigkeiten und verschiedene Kanäle)
  • für einige allgemeine Ideen, wie eine solche PM-System zu implementieren (ja, ich bin bastelt immer noch mit der Idee der Einführung eines solchen Systems von Grund auf neu)

ich weiß, das große System ems wie Magento und symfony verwenden PEAR für ihre PM. Magento verwendet eine gehackte Version des ursprünglichen PEAR-Clients (was ich gerne vermeiden würde), die Implementierung von symfony scheint in das Framework integriert zu sein, wäre aber ein guter Ausgangspunkt, um den Client zumindest von Grund auf neu zu schreiben. Wie auch immer, wenn jemand Vorschläge hat: bitte :)

+1

Ich würde dir nicht empfehlen, selbst einen Paketmanager zu schreiben, es sei denn, es ist für Lernzwecke gedacht. Zum Beispiel ist das Abhängigkeitsmanagement nicht so einfach zu bekommen. – Artefacto

+0

Halten Sie uns auf dem Laufenden, wenn Sie etwas Interessantes finden, oder starten Sie ein neues Projekt! ;) Btw, ich habe in letzter Zeit eine Frage zu "gnope" gesehen (siehe sourceforge). Nicht getestet, aber schien ein grafischer Paketinstallationsprogramm zu sein, wahrscheinlich PEAR-bezogen, aber mit verschiebbaren Paketen. Aber habe es nicht wirklich überprüft. – mario

+0

Abgesehen von den untenstehenden Vorschlägen, habe ich mich mit der Implementierung eines PEAR-Installers von symfony befasst, bei dem es sich um eine Reihe von Klassen handelt, die die ursprünglichen PEAR-Installer erweitern. Scheint ganz einfach, eine eigene Client-Implementierung oben auf der Bibliothek zu schreiben. – maff

Antwort

11

Es Composer auch ist.

+0

Danke, sicherlich der Weg zu gehen, aber war zu dieser Zeit nicht da :) – maff

+0

Um nur dies zu kommentieren - per Composer's Website, "Composer ist kein Paket-Manager. Ja, es geht um" Pakete "oder Bibliotheken, Aber es verwaltet sie pro Projekt und installiert sie in einem Verzeichnis (zB Hersteller) in Ihrem Projekt. Standardmäßig wird es niemals global installieren. Es ist also ein Abhängigkeitsmanager. " Es ist subtil, aber anders. (Immer noch, Komponist ist großartig.) – JasCav

+1

@JasCav Nun, es ist ein Projekt-Level-Paket-Manager dann;) –

3

Haben Sie Maven for PHP überprüft? Ich habe nur Maven im Kontext von Java-Anwendungen verwendet, aber es ist sicher:

  • Leicht zu verlängern - es ist wirklich einfach Maven Plugins zu implementieren
  • Leitet Abhängigkeiten - Scheidungs ​​Kompilierung, Test und Laufzeitabhängigkeiten (obwohl die Compile/Runtime-Unterscheidung macht in PHP keinen Sinn.
  • Repositories sind trivial - Apache mit mod_dav gibt Ihnen ein funktionierendes beschreibbares Repository, aber Sie haben auch Nexus.
  • Unterscheidet Snapshot von stabilen Artefakten; ermöglicht mehrere Richtlinien für die Suche nach neuen Snapshot-Artefakten und von welchen Repositories jeder Typ erhalten wird.

Und viele - viele - mehr Dinge.

+0

Ich kannte Maven nur in Verbindung mit kontinuierlicher Integration, aber es scheint sehr kraftvoll zu sein - danke für den Vorschlag, ich werde es definitiv ausprobieren. – maff

2

PEAR2/Pyrus wurde für die Paketverwaltung für beliebige Anwendungen gebaut. Ich glaube, es wurde den apt/yum-Architekturen nachempfunden.

Helgi - Kern PEAR Mitglied - deckt einen Teil davon hier - http://www.slideshare.net/helgith/pear2-pyrus-the-look-ahead aber die Dokumentation ist auch ziemlich fest: http://pear.php.net/manual/en/pyrus.extending.installation.php

+0

PEAR2 scheint unter Namespaceritis zu leiden. Und nicht der Gute. – mario

+0

Ich kenne Pyrus und dachte darüber nach, es zu benutzen, aber irgendwie habe ich es nicht geschafft, die Dokumente zu finden, mit denen Sie verlinkt sind ... hilft viel bei der Verwendung des PEAR2-Systems, danke. – maff

+0

@Mathias Ich möchte es in web2project für alle unsere Modul-Management-Frage verwenden .. Ich liebe die Abhängigkeitsverwaltung der Dinge. – CaseySoftware