Logo Composer PHPComposer es un manejador de dependencias para PHP, este proyecto inspirado en npm y Bundler y sirve para administrar librerías de terceros o propias en nuestros proyectos de PHP.

Composer es capaz de de instalar las librerías que requieres para tu proyecto con las versiones que necesites y si esas librerías dependen de otras también es capaz de resolver las dependencias y descargar todo lo que necesites para que funcione, quitándonos el dolor de tener que hacer esto manualmente y mantenerlo todo actualizado.

Instalar Composer

Composer está formado por dos partes, la primera es una aplicación de línea de comandos que permite encontrar, descargar, actualizar y compartir los paquetes o librerías y el otro es el repositorio donde se guardan dichos paquetes o librerías.

Para instalar Composer 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:

php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Lo que hace este instalador es chequear que tu php.ini esté configurado con lo necesario y de lo contrario te arrojará un error.

[alert_yellow textalign=”left”] Composer es un archivo ejecutable Phar por lo que debes tener habilitado phar dentro del php.ini, si no lo tienes simplemente descomenta extension=phar.so. [/alert_yellow]

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 ejecutamos este comando adicional:

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. 

[alert_green textalign=”left”]Tip: Si estás utilizando git para tu proyecto, probablemente quieras agregar vendor (o el directorio que hayas especificado) dentro de .gitignore. Con esto evitamos agregar el código adicional a nuestro repositorio sin necesidad. [/alert_green]

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';

[alert_red textalign=”left”] Por supuesto que si cambiaste el directorio de descarga lo tienes que actualizar en esta línea. [/alert_red]

Repositorios

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

Conclusión

Esto es todo por ahora, Composer a mi parecer es una herramienta que hacia mucha falta en PHP, muchos frameworks como FuelPHP, CodeIgniter, Symfony2 y Laravel ya están integrando Composer.

Además es una gran herramienta para utilizar tanto en desarrollo como en producción y que nos ahorra una gran cantidad de trabajo de manejo y mantenimiento.

Aquí solo he tocado la superficie de la configuración puedes ver mucho más en la Documentación.

Me gustaría saber que opinan de esta herramienta y si la está usando o la planean utilizar en sus proyectos, por favor dejen sus comentarios.

Recursos

[list_check]

[/list_check]

 

Ruby on Rails es un popular framework de desarrollo web y que cada día gana más seguidores y entusiastas por su forma de desarrollo y su “Convención sobre Configuración”. Ultimamente he estado experimentando algunas cosas con Ruby on Rails y cada vez le agarro un poco más de “cariño” así que aquí les explicaré como instalar este framework en Ubuntu 12.04.

Al final de este tutorial tendremos instalado Ruby en su versión 1.9.3 y Rails listo para empezar a desarrollar tus aplicaciones.

1. Configurar el Terminal de Gnome e instalar las dependencias

Vamos a utilizar RVM para instalar Ruby, este es una herramienta bastante útil que nos permite manejar las versiones de Ruby de manera fácil y sencilla. Para que RVM funcione tenemos que configurar nuestra terminal para que se comporte como un shell de login.

Lo primero que tenemos que hacer es abrir el Terminal de Gnome e ir al menú de Editar>Perfiles… luego hacemos click en Editar para cambiar la configuración del perfil. Seleccionamos la pestaña de Título y Comando y seleccionamos Ejecutar el comando como intérprete de conexión. Como una imagen vale más que mil palabras aquí está.

Cambiar preferencias de terminal gnome

Hacemos click en Cerrar y listo ya nuestro terminal se va a comportar de la forma que RVM lo requiere.

Luego tenemos que instalar un par de dependencias que necesitamos para hacer la instalación git y curl.

Para actualizar los repositorios de Ubuntu:

sudo apt-get update

Para instalar git y curl

sudo apt-get install git curl

Ya tenemo todo listo con las dependencias ahora vamos con lo nos importa.

2. Instalar RVM y Ruby

Para obtener e instalar RVM ejecutamos en el terminal:

curl -L get.rvm.io | bash -s stable

Luego cargamos el RVM:

source ~/.rvm/scripts/rvm

Por último instalamos las dependencias adicionales de RVM, si queremos ver las dependencias ejecutamos rvm requirements nos va a dar una serie de listas dependiendo de si solo queremos instalar Ruby, JRuby o IronRuby. Como queremos instalar solo Ruby ejecutamos en el terminal:

sudo apt-get -y install build-essential openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion

Instalar un framework de Javascript

Para las nuevas versiones de Rail se necesita un framework de Javascript por lo que vamos a instalar nodejs. Simplemente ejecutamos

sudo apt-get install nodejs

3. Instalar Ruby

Por fin ya vamos a la instalar Ruby, ya tenemos RVM instalado y funcionando por lo que instalar y manejar varias versiones de Ruby va a ser muy fácil. Para instalar ejecutamos el siguiente comando:

rvm install 1.9.3

En caso que quieras instalar ruby 1.9.3, si quieres otra versión simplemente coloca el número de la versión que quieras instalar y rvm se encarga.

Tambien puedes instalar más de una versión, después definimos la versión que instalamos como la que vamos a utilizar por defecto ejecutando:

rvm use 1.9.3 --default

Con esto ya tenemos ruby1.9.3 instalado y funcionando, para chequear la versión de ruby en cualquier momento puedes ejecutar

ruby -v

4. Instalar Rails

Cuando instalamos ruby con RVM también se instala gem que es la utilidad que usa ruby para manejar librerias. Para instalar rails ejecutamos:

gem install rails

Y eso es todo ahora podemos crear una aplicación ejecutando:

rails new nombre_aplicacion
cd nombre_aplicacion
rails server
Y ahora abre tu navegador favorito y ve a http://localhost:3000
 

Y verás algo como esto:

Ruby on Rails funcionando

Así que ya estamos listos para empezar a desarrollar. Espero que les sirva, cualquier duda o sugerencia por favor dejen su comentario.