Como instalar Bundles de terceros en Symfony 2.3.6


La mayoria de los bundles tienen sus propias instrucciones de instalación. Sin embargo los pasos basicos para la instalacion de un bundle son los mismos

Añadiendo dependencias Composer

A partir de la versión 2.1 de Symfony, las dependencias empezaron a ser manejadas con Composer así que sería una buena idea echarle una ojeada a la documentación oficial de esta libreria.

Antes de empezar a usar Composer para la instalación de los bundles, deberías primero mirar en por un paquete Packagist para ese bundle. Por ejemplo, si buscas el popular FOSUserBundle encontraras un paquete llamado friendofsymfony/user-bundle.

Packagist es el repositorio principal de Composer, pero si estás buscando un bundle lo mejor que puede hacer es visitar KnpBundles, este último es el repositorio no oficial de los Bundles de Symfony. Si un bundle contiene un archivo REAME muestra la información que contiene y si tiene un paquete Packagist nos muestra el enlace del paquete. Este es un sitio muy útil para empezar a buscar bundles.

Ahora que tienes el nombre del paquete, deberías determinar que versión usar. Usualmente versiones diferentes de un bundle corresponden a versiones particulares de Symfony, esta información debe aparecer en el archivo README, si no se encuentra quiere decir que puedes utilizar la versión que desees, ahora si escoges una versión del bundle incompatible con la versión de Symfony que estas utilizando, al utilizar Composer este va a arrojar un error de dependencia cuando lo trates de instalar, si esto pasa debería probar una versión diferente

Ahora puedes agregar el bundle al fichero composer.json y actualizar las dependencias, esto se puede hacer manualmente:

  1. Agrega esto al fichero composer.json
    {
        ...,
        "require": {
            ...,
            "friendsofsymfony/user-bundle": "2.0.*@dev"
        }
    }
    
  2. Actualiza la dependencia
    $ php composer.phar update friendsofsymfony/user-bundle
    

    o actualiza todas las dependencias

    $ php composer.phar update
    

O puedes ejecutar este comando

$ php composer.phar require friendsofsymfony/user-bundle:2.0.*@dev

Habilitando el bundle

A este punto el bundle ya esta instalado en tu proyecto Symfony (en vendor/friendofsymfony/) y el autoloader reconoce sus clases. Lo único que necesitas ahora es registrar el bundle en el AppKernel:

// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
    // ...
    public function registerBundles()
    {
        $bundles = array(
        // ...,
        new FOS\UserBundle\FOSUserBundle(),
        );
        // ...
    }
}

Configurando el Bundle

Usualmente un bundle requiere alguna configuración para ser agregado al fichero de configuración de la aplicación en app/config/config.yml. La documentación del bundle describe esta configuración, pero puedes acceder a la referencia de está ejecutando el comando config:dump-reference.

Por ejemplo con el objetivo de ver la referencia de la configuración de swiftmailer se puede usar esto:

$ app/console config:dump-reference SwiftmailerBundle

O así

$ app/console config:dump-reference swiftmailer

Concluyendo…

En este articulo vimos como instalar Bundles de terceros en nuestro proyecto de Symfony2.3.6, La filosofía de funcionamiento es la misma que las Aplicaciones en Django, asi que espero que hayan aprendido algo nuevo. Recuerda siempre dejarnos tus comentarios en Disqus, Twitter o Facebook y así poder retroalimentar nuestros conocimientos. Hasta la próxima.