Primer bundle con symfony2

Nuestro primer bundle con symfony2 lo vamos a construir con un comando de symfony2 para crear bundle, lo podemos hacer a mano creandonos los ficheros, pero luego tendriamos que tocar muchos ficheros de configuración, y de esta forma nos modifica todos los ficheros necesarios para poder trabajar con el una vez generado.

Antes de ejecutar este comando tenemos que tener instalado Symfony2 en nuestro pc (Instalación de symfony2).

Abrimos una ventana de comandos con cmd.
Nos situamos en el directorio donde esta instalado symfony2, en nuestro caso en I:\Proyectos\symfony2\Proyecto1

Ejecutamos es siguiente comando

php app/console generate:bundle

Nos hara las siguientes preguntas:

Bundle namespace:

Se divide en dos partes, la primera es el nombre del proyecto y la segunda es el nombre del bundle en si, teminado con “Bundle” sino no, nos dara error a la hora de crearlo, nosotro hemos puesto Primero/PrimerBundle.

Bundel name:

Es el nombre del bundle con en que se hara refefencia dentro de la aplicación. Normalmente se pone el bundle namespace sin barras separadoras, en nuestro caso: PrimeroPrimerBundle que es la opción por defecto, con lo cual pulsaremos intro.

Target directory:

Es el diretorio donde se va a crear el bundle, dejamos el de por defecto.

Configuration format:

Formato de configuración de ficheros, puede ser yml, xml, php o anotaciones, elegiremos yml.

Do you want to generate the whole dicectory structure?:

Nos esta preguntado si queremos crear una estructura compleja de directorios, respondemos no, pues queremos crear la estructura basica del bundle.

Do you confirm generation?:

Confirmamos la generacion yes.

Confirm automatic update os you Kernel?:

Nos dice si queremos que el bundle se active en la aplicación despues de generarlo, es decir que modifique los ficheros del kernel para que nos funcione nuestro bundle respondemos yes.

Confirm automatic update os you Routing?:

Contestaremos yes, para que nos modifique el enrutamiento del bundel.

Ya estaria creado nuestro bundle, aqui podemos ver el proceso entero del bundle:
proceso de generacion del bundle

Nos creara los siguiente directorios:
Ficheros craeados por el bundle

una vez creados los ficheros, vamos a modificar dos de ellos para ver que nuesto bundle esta funcionando, pues sino, le routing que tiene es el mismo que tiene el de ejemplo de instalación de symfony2,

modificamos los siguientes ficheros:

I:\Proyectos\symfony2\Proyecto1\src\Primero\PrimerBundle\Resources\config\routing.yml
primero_primer_homepage:
pattern: /hello/{name}
defaults: { _controller: PrimeroPrimerBundle:Default:index }

lo vamos a cambiar por:
primero_primer_homepage:
pattern: /briored/{name}
defaults: { _controller: PrimeroPrimerBundle:Default:index }

pattern es la ruta que tenemos que poner, y {name} es un parametro que cojemos de la ruta.

y luego vamos a cambiar la plantilla que pintamos que esta en I:\Proyectos\symfony2\Proyecto1\src\Primero\PrimerBundle\Resources\views\Default\index.html.twig
Hello {{ name }}!

la vamos a cambiar por
Mi primer bundle con ayuda de www.briored.com Listo, bienvenido {{ name }}!

Una vez cambiado accdedemos a la siguiente ruta en el navegador para ver que funciona.

http://localhost/app_dev.php/briored/amigo

con esto hemos creado un bundle completo, ahora ya es modificar los ficheros que nos genera para adaptarlo a nuestra aplicación.

Enlaces Relaccionados
Quitar app_dev.php de la url de symfony
Instalar symfony2 en Windows