Nuestra Misión:

La Universidad Luterana Salvadoreña es una institución de Educación Superior creada para favorecer a sectores marginados de las posibilidades de educación, ofreciéndoles carreras que demanda el desarrollo sostenible; basándose en un modelo educativo participativo forma profesionales con valores científico-técnicos y moralmente integrales para enfrentarse a presentes y futuras exigencias de la sociedad salvadoreña. Sustentada en la inspiración cristiana, funciona democráticamente y garantiza una sólida calidad humana a través de la docencia, la investigación científica y la proyección social.

Nuestra Visión:

Ser una institución de educación superior empeñada en el desarrollo de la ciencia y la cultura, formando profesionales integrales con calidad académica, que contribuyan eficaz y eficientemente al desarrollo económico y social sustentable, con paz, justicia y democracia y a la construcción de una nueva civilización pluralista.

Composer es un manejador de dependencias para PHP

Print Friendly and PDF

Por: Camilo Alvarado | Publicado el: Lun. 08 Dic. - 2014

Composer es un gestor de dependencias para PHP, este proyecto inspirado en npm para NodeJS y Bundler de Ruby on Rails, sirve para administrar librerías de terceros o propias en nuestros proyectos en PHP.Composer se encarga de instalar las librerías que necesites para tu proyecto con las versiones pertinentes y si esas librerías dependen de otras es capaz de resolver las dependencias y descargar lo que necesites para que funcione, quitándonos el trabajo de hacerlo todo a mano, teniendo que estar pendiente de actualizaciones futuras de las librerías de terceros que utilizamos. lo ven ...

Instalar Composer en sistemas GNU/Linux

 

Composer pude ser instalado específicamente en cada proyecto que realizamos, o podemos instalarlo en el sistema para que esté disponible en todos los proyectos PHP que realicemos.

Para instalar Composer espacificamente solo debes ejecutar en el terminal:

cd /ruta_a_tu_proyecto_php
curl -s https://getcomposer.org/installer | php

 Si NO tienes curl instalado puedes ejecutar: 

sudo apt-get install php5-curl

 Luego para comprobar que se instaló correctamente puedes ejecutar:

php composer.phar

Si todo salió bien debe desplegar una lista de las opciones del comando.

Si quieres ejecutar Composer globalmente, osea que esté disponible para cualquier proyectos que estes realizando, solo tienes que mover el composer al directorio /bin, donde se alojan los ejecutables en linux. Esto los consigues con el siguiente comando:

sudo mv composer.phar /usr/local/bin/composer

Con esto podremos ejecutar directamente el comando desde cualquier sitio o proyecto, por ejemplo:

composer about

Utilizando Composer

Como mencionamos anteriormente Composer está basado en Bundler y npm por lo que su uso es muy parecido a estas herramientas.

Para indicar las dependencias de tu proyecto debes crear un archivo llamado composer.json que en su forma más básica debe verse así:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

 Veamos sus partes:

  • require: esta palabra simplemente le dice a Composer que necesitamos la libreria que le indicamos dentro de los corchetes {}
  • Nombre del paquete o libreria: está separado en dos partes vendedor/proyecto, normalmente estos dos son iguales como en este caso o pueden ser distintos por ejemplo “illuminate/foundation”.
  • Versiones del paquete: después de los dos puntos ( : ) indicamos la versión que queremos de este paquete. Tenemos varias opciones:
    • Versión exacta: podemos decirle a Composer que queremos una versión específica como por ejemplo 1.0.1.
    • Rango: Podemos definir rangos de versiones con los operadores >, >=, <, <=, !=. Por ejemplo si queremos una versión mayor a la 2 colocariamos >2. También podemos definir entre dos versiones separando con comas, por ejemplo >=1.0, <2.0.
    • Comodín: podemos usar el comodín ( o wildcard ) * para definir versiones, como ejemplo 1.0.* esto quiere decir cualquier versión dentro de 1.0 ( 1.0.1, 1.0.2 … 1.0.8 etc.)
    • Por último tenemos el operador ~, es un poco dificil de explicar así que usaremos un ejemplo: tenemos una librería que tiene la versión 1.x y 2.x pero no son compatibles entre ellas y queremos la última de 1.x y no la de 2.x entonces utilizaríamos el operador de esta forma ~1.2 que es equivalente a >=1.2, <2.0, mientras si vamos a algo más específico como ~1.3.1 es equivalente a >=1.3.1, <1.4.

Como vemos podemos ser tan libres o específicos como queramos, y me falto mencionarles que si no nos importa la versión simplemente podemos colocar “*”.

Instalando las Dependencias

Una vez que tengas configurado tu archivo composer.json con todos los paquetes que requiere tu proyecto es hora de que Composer haga su trabajo y lo instale para esto ejecutamos:

php composer.phar install

O si seguiste mi consejo e instalaste Composer como un comando global (ver arriba) puedes ejecutar:

composer install

Una vez que termina de descargar los paquetes los coloca dentro de una carpeta llamada vendor por defecto esto lo podemos cambiar en nuestro archivo composer.json agregando las siguientes líneas:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
    "config": {
        "vendor-dir":"librerias"
    }
}

 Aquí especificamos librerias como el directorio a donde se descargan los paquetes.

Si queremos actualizar las librerias ejecutamos:

php composer.phar update

O si está como comando global:

composer update

Autoloading

Ademas de descargar las librerias, Composer también prepara un archivo de autoload que es capaz de autocargar todas las clases en cualquiera de las librerías descargadas. Para utilizarlo, simplemente añadimos la siguiente línea en nuestro código:

require 'vendor/autoload.php';

 Repositorios

Si quieres ver los paquetes disponibles puedes visitar el repositorio en https://packagist.org/

Bueno eso es todo, para mi composer es una herramienta muy util que nos facilita el tedioso trabajo de trabajar con dependencia, de hecho composes ya se está utilizando en varios frameworks como FuelPHP, CodeIgniter, Symfony2 y Laravel, pero si lo tuyo son pequeños proyectos y no utilizas frameworks, pues también te viene bien.