Para instalar JMSSecurityExtraBundle con Composer sólo añade lo siguiente al tu archivo composer.json:
// composer.json
{
// ...
require: {
// ...
"jms/security-extra-bundle": "dev-master"
}
}
Nota
Por favor, sustituye dev-master en el fragmento anterior con la última rama estable, por ejemplo 1.0.*.
Luego, puedes instalar las nuevas dependencias ejecutando la orden update de Composer desde el directorio donde tienes tu archivo composer.json:
$ php composer.phar update jms/security-extra-bundle
Ahora, Composer automáticamente descargará todos los archivos necesarios y los instalará por ti. Todo lo que resta por hacer es actualizar el archivo AppKernel.php y registrar el nuevo paquete:
<?php
// en AppKernel::registerBundles()
$bundles = array(
// ...
new JMS\AopBundle\JMSAopBundle(),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
// ...
);
En primer lugar consigue una copia del código. Sólo tienes que añadir lo siguiente al archivo deps de tu distribución estándar de Symfony:
[JMSSecurityExtraBundle]
git=https://github.com/schmittjoh/JMSSecurityExtraBundle.git
target=/bundles/JMS/SecurityExtraBundle
; Dependencias:
;--------------
[metadata]
git=https://github.com/schmittjoh/metadata.git
version=1.1.0 ; <- asegúrate de conseguir 1.1, no 1.0
; ve https://github.com/schmittjoh/JMSAopBundle/blob/master/Resources/doc/index.rst
[JMSAopBundle]
git=https://github.com/schmittjoh/JMSAopBundle.git
target=/bundles/JMS/AopBundle
[cg-library]
git=https://github.com/schmittjoh/cg-library.git
; Esta dependencia es opcional (la necesitas si no estás usando
; servicios como controladores):
; Consulta https://github.com/schmittjoh/JMSDiExtraBundle/blob/master/Resources/doc/index.rst
[JMSDiExtraBundle]
git=https://github.com/schmittjoh/JMSDiExtraBundle.git
target=/bundles/JMS/DiExtraBundle
Luego registra el paquete en tu núcleo:
<?php
// en AppKernel::registerBundles()
$bundles = array(
// ...
new JMS\AopBundle\JMSAopBundle(),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
// ...
);
Asegúrate de registrar los espacios de nombres en tu cargador automático:
<?php
// app/autoload.php
$loader->registerNamespaces(array(
// ...
// ...
'JMS' => __DIR__.'/../vendor/bundles',
'Metadata' => __DIR__.'/../vendor/metadata/src',
'CG' => __DIR__.'/../vendor/cg-library/src',
// ...
));
Ahora usa el programa vendors para clonar en tu proyecto los repositorios recientemente añadidos:
php bin/vendors install