Composer PHP – Guía de inicio y un poco más

Se que hay varios tutoriales epro bueno este lo he ehcho de la manera que me ha servido y con lo que creo que funcione, de cada punto pondré algún link donde exista una explicación más a fondo. Ahora sí, empecemos:

Composer no es un gestor de paquetes; es un gestor de dependencias. Con esto entiendase que NO instala paquetes si no simplemente descarga las dependencias y las deja disponibles para utilizarlas en el proyecto.

Instalación

Hay dos formas, tenerlo en cada proyecto o bien instalarlo global.
Local – Puedes usarlo con php composer.phar install
curl -sS https://getcomposer.org/installer | php

Global – Ahora solo tiene que usar composer install
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

NOTA: De aquí en adelante vamos a asumir que la instalación que se hizo fue la global.

Iniciar proyecto

Debes crear el archivo composer.json donde se encontrarán las dependencias de tu proyecto. La única etiqueta obligatoria es ‘required’ pero tiene muchas más como authors, license, support, type, version, homepage. Un ejemplo básico del archivo:

{
    "require": {
        "raveren/kint": "0.9"
    }
}

Para el manejo de las versiones de los paquetes pueden ir al siguiente link  a ver más detalles. La versión con als que trabaja composer son las versiones estables pero también se pueden manejar versiones alpha, beta, etc utilizando stability flags.

Ahora que ya tienes el archivo composer.json listo ejecutas el comando

composer install

Que lo que nos va  a hacer es descargar kint en su versión 0.9 y esto por default se va a la carpeta vendor. Ahora que ya tenemos nuestras dependencias instaladas vamos a utilizarlas, para esto genera un archivo autoload.php que se debe de incluir en el archivo donde se va a utilizar, por ejemplo creamos el archivo index.php

<?php

require 'vendor/autoload.php';

$arrayTest = array("Hola", "Mundo !", null, array(1, 2, 3, probando));// creamos un arreglo de prueba

d($arrayTest); // usamos KINT que fue cargado via composer

Con esto ya podemos utilizar composer para instalar un proyecto, pero bueno en caso de que queramos agregar más paquetes al proyecto lo que debemos hacer es modificar nuestro archivo composer.json

{
    "require": {
        "raveren/kint": "0.9",
        "phpmailer/phpmailer": "5.*"
    }
}

Ejecutar el comando

composer update

Y listo! ya tenemos actualizado nuestro proyecto con el nuevo paquete que se requería.

Composer.lock

Este archivo se genera despues de cada instalación o actualización que se realice y nos va a permiter que al compartir el código se busque primero las versiones que están ya en composer.lock y no se vaya a buscar alguna nueva versión que pudiera no ser compatible con los desarrollos por ejemplo; reuire tiene “paqueteEjemplo”: “5.*” cuando se hizo el install la versión estable era la 5.3 y así se mantiene el el lock; cuando algún otro desarrollador desea instalar el poyecto con sus dependencias composer si encuentra el archivo .lock buscará la versión 5.3 de este ejemplo y no ira a buscar la 5.4 que pudiera ya estar como estable.
Con este archivo nos aseguramos que nuestro proyecto funcione correctamente con las versiones que se instalaron en el momento de desarrollo.

Datos Importantes:

  • Al usar control de versiones, solo se debe de incluir el código que desarrollamos y los archivos composer.json y composer.lock, cada desarrollador debe instalar y ejecutar composer install
  • De preferencia completar las etiquetas name, description. Las demás etiquetas se sugiere estén completas si vamos a publicar nuestro paquete
  • Para obtener más paquetes ir al sitio packagist y todos los que ahí están te indican como se debe de agregar al required y las versiones disponnibles

 

El siguiente post que publicaré será de la utilización de composer para un proyecto con el framework CakePHP. Keep learning …

Leave a Reply

Your email address will not be published. Required fields are marked *