Gestionar las dependencias con Composer

Gestionar las dependencias con Composer

Casi sin darnos cuenta ha habido una enorme revolución en el uso de PHP, el cual ha sido posible gracias a la incorporación de los espacios de nombres. Rápidamente tras esto surgió una herramienta de gestión de dependencias llamada Composer para fomentar la interoperabilidad entre los desarrolles.

Composer es un gestor de dependencias. Esta idea no es nueva, pues está inspirado en otras herramientas de otros lenguajes como npm o bundler.

Gracias a esta herramienta vamos a ser capaces de establecer las dependencias y requerimientos de una aplicación o publicar paquetes generados por nosotros.

Esto se hace necesario por los enormes problemas que hay ahora mismo para la interoperabilidad y cooperación entre frameworks, ya que cada uno nos ofrecía soluciones para lo mismo. Gracias a interfaces comunes y a gestionar las dependencias de forma sencilla se está llegando a este consenso y están brotando grupos de interoperabilidad.

Cómo se usa

Como desarrolladores tendremos un fichero en nuestros proyectos llamado composer.json donde estableceremos las dependencias de una forma parecida a esta:

{
    "require": {
        "monolog/monolog": "1.0.0"
    }
}

De esta forma le estamos diciendo a nuestra aplicación que requerimos la librería monolog. Más aún, le estamos diciendo que necesitamos exactamente la versión 1.0.0. por lo que aunque salgan versiones más modernas de esta rama, no las necesito.

Aquí tenemos la información de cómo podemos realizar el proceso de instalar / actualizar nuestras dependencias http://getcomposer.org/doc/00-intro.md

Reinventar la rueda

Este es un problema muy grande que existe en el desarrollo de software actual, y una de las causas es de no tener la facilidad de publicar nuestras librerías y poder necesitar las publicadas por otros de forma fácil.

Composer es la solución a un problema que no consiguió resolver PEAR. En parte porque éste no conseguía resolver el problema (o no de forma fácil) de tener instalada en la misma máquina diferentes versiones de una librería, ya que podías tener proyectos que dependieran de ambas.

También el problema es que las dependencias no se hacían explícitas de ninguna manera.

Otra diferencia notable, es que no es necesario un proceso de aprobación para que te incluyan tu paquete en el repositorio de Packagist.

Ventajas

Este es un resumen de las ventajas de utilizar esta aplicación

  • Puedes indicar exactamente qué necesitas y en qué rama de desarrollo.
  • Fomentar el uso de estándares.
  • Puedes utilizar paquetes de PEAR
  • Existe un repositorio público
  • Puedes instalar un repositorio privado
  • Podemos establecer procedimientos o llamadas de funciones que se ejecutarán después de realizar operaciones (actualización, borrado, …)

Referencias

Comentarios

Sin comentarios
Ha habido un error en el envío
Comentario enviado. Será revisado por la moderación antes de ser publicado.

Deja tu comentario

Tu nombre:
Tu email:
Tu comentario: