La mayoría de los bundles proporcionan sus propias instrucciones de instalación. Sin embargo, los pasos básicos para instalar un bundle son los mismos:
1. Añadir dependencias en Composer
Las dependecias se manejan con Composer. Puedes leer su documentación aquí.
Puedes encontrar un bundle desde diferentes sitios, como Packagist o KnpBundles.
Para instalar el bundle a través de composer:
composer require friendsofsymfony/user-bundle
Este comando elegirá la mejor versión para tu proyecto, añadirá las dependencias en Composer y descargará la librería en el directorio vendor/. Si necesitas una versión específica añade un segundo argumento:
composer require friendsofsymfony/user-bundle "~2.0"
2. Activar el Bundle
El bundle ya está instalado, y el autoloader reconoce sus clases. Ahora sólo hay que registrar el bundle en AppKernel:
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
// ...
public function registerBundles()
{
$bundles = array(
// ...,
new FOS\UserBundle\FOSUserBundle(),
);
// ...
}
}
En algunos casos es posible que sólo quieras que el bundle está disponible en el entorno de desarrollo. Por ejemplo el bundle DoctrineFixturesBundle produce datos de ejemplo, algo que probablemente sólo necesites en este entorno. Para ello el bundle se registra de la siguiente forma:
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
// ...
public function registerBundles()
{
$bundles = array(
// ...
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();
}
// ...
}
}
3. Configurar el Bundle
Es bastante común que haya que añadir algún tipo de configuración en app/config/config.yml. La documentación del bundle te informará acerca de esa configuración, pero también puedes saber la configuración del bundle a través del comando config:dump-reference:
Por ejemplo para buscar la configuración del bundle assetic:
bin/console config:dump-reference AsseticBundle
o así:
bin/console config:dump-reference assetic
El resultado será:
assetic:
debug: %kernel.debug%
use_controller:
enabled: %kernel.debug%
profiler: false
read_from: %kernel.root_dir%/../web
write_to: %assetic.read_from%
java: /usr/bin/java
node: /usr/local/bin/node
node_paths: []
# ...
Fuentes: symfony.com