2010-05-31 21 views
12

Qualcuno conosce una libreria di pacchetti manager per PHP (come ad esempio apt o yum per distro linux) apart di PEAR? Sto lavorando a un sistema che dovrebbe includere un sistema di gestione dei pacchetti per la gestione dei moduli. Sono riuscito a ottenere una soluzione funzionante utilizzando PEAR, ma l'utilizzo del client PEAR per scopi diversi dalla gestione di un'installazione PEAR non è la soluzione ottimale in quanto non è progettato per questo. Dovrei modificarlo/estenderlo (ad es. Per implementare azioni su installazione/aggiornamento o spostare file specifici PEAR come file di lock dalla root di sistema) e specialmente il codice CLI client è piuttosto disordinato e PHP4. Così forse qualcuno ha qualche suggerimentoGestore pacchetti PHP

  • per una libreria alternativa client PEAR, che è facile da usare ed estendere (lato server ha alcune implementazioni come Pirum e pearhub)
  • per completamente diversi sistemi di gestione dei pacchetti scritti in PHP (tra cui idealmente la gestione delle dipendenze e diversi canali)
  • per alcune idee generali come implementare un sistema di PM (sì, sto ancora armeggiare con l'idea di attuare un tale sistema da zero)

lo so quel grande sistema ems come Magento e symfony usano PEAR per il loro PM. Magento usa una versione compromessa del client PEAR originale (che vorrei evitare), l'implementazione di symfony sembra abbastanza integrata con il framework, ma sarebbe un buon punto di partenza per scrivere almeno il client da zero. Ad ogni modo, se qualcuno ha dei suggerimenti: per favore :)

+1

Non ti consiglio di scrivere un gestore di pacchetti tu stesso, a meno che non sia per scopi di apprendimento. Ad esempio, la gestione delle dipendenze non è così facile da ottenere. – Artefacto

+0

Tienici aggiornati se trovi qualcosa di interessante o in realtà inizia un nuovo progetto! ;) A proposito, ultimamente ho visto una domanda per "gnope" (vedi sourceforge). Non testato, ma sembrava essere un programma di installazione di pacchetti grafico, probabilmente correlato PEAR ma con pacchetti rilocabili. Ma non l'ho verificato davvero. – mario

+0

Oltre ai suggerimenti di seguito, ho dato un'occhiata all'implementazione di symfony di un programma di installazione PEAR, che è un insieme di classi che estendono le originali PEAR. Sembra abbastanza semplice scrivere un'implementazione del proprio cliente in cima alla libreria. – maff

risposta

11

C'è anche Composer.

+0

Grazie, sicuramente la strada da fare ora, ma non c'era in quel momento :) – maff

+0

Solo per commentare questo - per sito Web del compositore, "Composer non è un gestore di pacchetti. Sì, si tratta di" pacchetti "o librerie, ma li gestisce su una base per progetto, installandoli in una directory (ad esempio il venditore) all'interno del progetto, ma per impostazione predefinita non installerà mai nulla a livello globale, quindi è un gestore delle dipendenze. " È sottile, ma diverso. (Comunque, Composer è grandioso.) – JasCav

+1

@JasCav Bene, allora è un gestore di pacchetti a livello di progetto;) –

3

Avete controllato Maven for PHP? Ho usato solo Maven nel contesto di applicazioni Java, ma è certamente:

  • semplice per estendere - è davvero facile da implementare plugin Maven
  • Gestisce le dipendenze - compilazione di distinzione, di prova e le dipendenze runtime (anche se la la compilazione/runtime distintion non ha senso in PHP).
  • I repository sono banali da montare - Apache con mod_dav ti darà un repository scrivibile funzionante, ma hai anche Nexus.
  • Distingue lo snapshot da artefatti stabili; consente diversi criteri per quando controllare i nuovi artefatti di istantanee e da cui i repository ottengono ciascun tipo.

E molte, molte più cose.

+0

Ho appena conosciuto Maven in congiunzione con l'integrazione continua, ma sembra molto potente - grazie per il suggerimento, lo proverò sicuramente. – maff

2

PEAR2/Pyrus è stato creato per la gestione dei pacchetti per applicazioni arbitrarie. Credo che sia stato modellato sulle architetture apt/yum.

Helgi - membro del nucleo PEAR - copre alcune delle quali qui - http://www.slideshare.net/helgith/pear2-pyrus-the-look-ahead ma la documentazione è piuttosto solido troppo: http://pear.php.net/manual/en/pyrus.extending.installation.php

+0

PEAR2 sembra soffrire di nomipaceriti. E non quello buono. – mario

+0

Conosco Pyrus e ho pensato di usarlo, ma in qualche modo non sono riuscito a trovare i documenti a cui ti sei collegato ... mi aiuta molto ad usare il sistema PEAR2, grazie. – maff

+0

@Mathias Sto cercando di usarlo in web2project per tutti i nostri problemi di gestione dei moduli. Adoro il lato della gestione delle dipendenze delle cose. – CaseySoftware

Problemi correlati