2010-05-31 9 views
12

¿Alguien sabe una biblioteca de administrador de paquetes para PHP (como, por ejemplo, apt o yum para distribuciones de Linux) aparte de PEAR? Estoy trabajando en un sistema que debe incluir un sistema de gestión de paquetes para la gestión de módulos. Me las arreglé para obtener una solución que funciona con PEAR, pero usar el cliente PEAR para cualquier otra cosa aparte de administrar una instalación PEAR no es realmente la solución óptima, ya que no está diseñada para eso. Tendría que modificarlo/extenderlo (por ejemplo, para implementar acciones en la instalación/actualización o mover archivos específicos de PEAR como archivos de bloqueo desde la raíz del sistema) y especialmente el código del cliente CLI es bastante complicado y PHP4. Así que tal vez alguien tiene algunas sugerenciasAdministrador de paquetes PHP

  • para una biblioteca de cliente PEAR alternativo que es fácil de usar y extender (el lado del servidor tiene algunas implementaciones agradables como Pirum y pearhub)
  • para completamente diferentes sistemas de gestión de paquetes escritos en PHP (idealmente incluyendo la revisión de dependencias y diferentes canales)
  • para algunas ideas generales de cómo implementar un sistema de este tipo PM (sí, todavía estoy jugando con la idea de implementar un sistema de este tipo a partir de cero)

que sé ese gran syst Ems como Magento y Symfony usan PEAR para su PM. Magento usa una versión pirateada del cliente original PEAR (que me gustaría evitar), la implementación de Symfony parece bastante integrada con el marco, pero sería un buen punto de partida para, al menos, escribir al cliente desde cero. De todos modos, si alguien tiene sugerencias: por favor :)

+1

No recomendaría que escribas un administrador de paquetes tú mismo, a menos que sea para fines de aprendizaje. Por ejemplo, la gestión de la dependencia no es tan fácil de corregir. – Artefacto

+0

¡Manténganos actualizados si encuentra algo interesante o realmente comienza un nuevo proyecto! ;) Por cierto, últimamente he visto una pregunta aquí para "gnope" (ver sourceforge). No lo probé, pero parecía ser un tipo de instalador gráfico de paquetes, probablemente relacionado con PEAR pero con paquetes reubicables. Pero no lo he comprobado realmente. – mario

+0

Además de las sugerencias a continuación, eché un vistazo a la implementación de un instalador PEAR de Symfony, que es un conjunto de clases que amplían las originales PEAR. Parece bastante sencillo escribir una implementación de cliente propio en la parte superior de la biblioteca. – maff

Respuesta

11

Hay Composer también.

+0

Gracias, seguramente el camino a seguir ahora, pero no estaba allí en ese momento :) – maff

+0

Solo para comentar sobre esto, según el sitio web de Composer, "Composer no es un administrador de paquetes. Sí, se trata de" paquetes "o bibliotecas, pero los gestiona por proyecto, instalándolos en un directorio (por ejemplo, un proveedor) dentro de su proyecto. De manera predeterminada, nunca instalará nada de forma global. Por lo tanto, es un administrador de dependencias ". Es sutil, pero diferente. (Aún así, Composer es genial) – JasCav

+1

@JasCav Bueno, entonces es un administrador de paquetes a nivel de proyecto;) –

3

¿Has visto Maven for PHP? Sólo he utilizado Maven en el contexto de las aplicaciones Java, pero es sin duda:

  • fácil de extender - es muy fácil de implementar plugins de Maven
  • Gestiona dependencias - compilación distintiva, prueba y dependencias de tiempo de ejecución (aunque el la distinción compilación/tiempo de ejecución no tiene sentido en PHP).
  • Los repositorios son triviales de poner: Apache con mod_dav le proporcionará un repositorio de escritura que funciona, pero también tiene Nexus.
  • Distingue la instantánea de artefactos estables; permite varias políticas para cuándo verificar nuevos artefactos de instantáneas y de qué repositorios obtiene cada tipo.

Y muchas - muchas - más cosas.

+0

Conocí a Maven junto con la integración continua, pero parece ser muy poderoso. Gracias por la sugerencia, definitivamente lo probaré. – maff

2

PEAR2/Pyrus fue creado para la gestión de paquetes para aplicaciones arbitrarias. Creo que fue modelado después de las arquitecturas apt/yum.

Helgi - miembro de núcleo PERA - cubre parte de ella aquí - http://www.slideshare.net/helgith/pear2-pyrus-the-look-ahead pero la documentación es bastante sólido también: http://pear.php.net/manual/en/pyrus.extending.installation.php

+0

PEAR2 parece padecer de nombrepaceritis. Y no el bueno. – mario

+0

Conozco a Pyrus y pensé en usarlo, pero de alguna manera no logré encontrar los documentos a los que me vinculó ... ayuda mucho con el uso del sistema PEAR2, gracias. – maff

+0

@Mathias Estoy buscando utilizarlo en web2project para todos nuestros problemas de administración de módulos. Me encanta el lado de administración de dependencias. – CaseySoftware

Cuestiones relacionadas