Un bundle es básicamente una carpeta que contiene los archivos necesarios para un grupo de funcionalidades específicas, un concepto similar al de los plugins en otras aplicaciones, como por ejemplo un blog, un carrito de compras o hasta el mismo frontend y backend de nuestra aplicación. La diferencia clave es que en Symfony 2 (Sf2) todo es un bundle, incluyendo tanto la funcionalidad básica de la plataforma como el código escrito para tu aplicación, de tal forma que esta vez les quiero mostrar como hacer Crear Bundles en Symfony.

Permiten utilizar funcionalidades construidas por terceros o empaquetar tus propias funcionalidades para distribuirlas y reutilizarlas en otros proyectos. Además, facilitan mucho la activación o desactivación de determinadas características dentro de una aplicación.

Las aplicaciones Sf2 se componen de bundles, tal como se define en el método “registerBundles()” de la clase “AppKernel”:

Con el método “registerBundles()”, puedes controlar completamente los bundles que utiliza tu aplicación, incluso aquellos bundles que forman el núcleo del framework

En este artículo te enseñaremos  crear bundles en Sf2

Comencemos

1.- Crear el bundle

La distribucion estandar de Sf2 cuenta un comando completamente funcional para crear tus bundles, para mostrarte lo sencillo que es crearemos un bundle llamado “PonceelrelajadoDemoBundle”

Sin que te des cuenta, se ha creado un directorio para el bundle en src/Ponceelrelajado/DemoBundle. Además se ha añadido automáticamente una línea en el archivo app/AppKernel.php para registrar el bundle en el núcleo de Symfony:

Relacionado:  Rows a 2 columnas en mobile Theme X

Ahora que ya está configurado el bundle, puedes comenzar a construir tu aplicación dentro del bundle.

2.- Cambiar el enrutamiento

Por defecto, el archivo de configuración de enrutamiento en una aplicación Symfony2 se encuentra en app/config/routing.yml, pero, si quieres y al igual que en el resto de la configuración en Sf2, puedes utilizar el formato XML o PHP para configurar tus rutas.

Si te fijas en el archivo de enrutamiento principal, verás que Symfony ya ha agregado una entrada al generar el bundle “PonceelrelajadoDemoBundle”:

YAML

XML

PHP

Básicamente le estamos diciendo a Symfony que cargue la configuración de enrutamiento del “archivo Resources/config/routing.yml” que se encuentra en el interior del bundle “PonceelrelajadoDemoBundle”.

En otras palabras, puedes configurar tus rutas directamente en el archivo app/config/routing.yml o puedes definirlas en varias partes de la aplicación y después las importas desde ese archivo.

Relacionado:  Guía para editar código fuente de Shopify en local con Theme Kit

Ahora que el archivo routing.yml del bundle se importa desde el archivo de enrutamiento principal de la aplicación, añade la nueva ruta que define la URL de la página que estás a punto de crear:

YAML

XML

PHP

La ruta se compone básicamente de dos partes: el path, que es la URL con la que debe coincidir la petición del usuario para activar la ruta, y un array llamado defaults, que especifica el controlador que se ejecuta. Las partes de la URL encerradas entre comillas indican que su valor puede variar. De esta forma, {name} significa que las URL /hello/Ryan, /hello/Fabien o cualquier otra URI similar coincidirá con esta ruta. El valor de las partes variables también se pasa al controlador, que puede acceder a ellos a través del nombre asignado en la propia ruta (name en este caso).

3.- CONSTRUIR EL CONTROLADOR

Cuando el usuario solicita la URL /hello/Ryan, se activa la ruta hello, a la que corresponde el controlador PonceelrelajadoDemoBundle:Hello:index, qué es realmente el código que se ejecuta. El segundo paso del proceso de creación de páginas consiste precisamente en crear ese controlador.