Drupal 8 integra el componente de enrutamiento de Symfony2
Drupal 8, cuya fecha prevista de salida es septiembre de 2013, continúa su proceso de symfonización. El último componente en integrarse ha sido el componente de enrutamiento, encargado tanto de generar rutas como de decidir qué código se ejecuta para responder a cada URL solicitada por los usuarios.
Teniendo en cuenta que Drupal cuenta con unas 1.000 rutas, el enrutamiento es una de las partes más críticas del sistema. En Drupal 7, cada módulo podía crear sus propias rutas mediante un mecanismo llamado hook_menu
(ver sus detalles en la API de Drupal 7). Básicamente, consiste en definir las diferentes partes de las rutas mediante arrays asociativos:
function example_menu() { $items['foo/bar/%node'] = array( 'title' => 'My title', 'page callback' => 'example_page', 'page arguments' => array(2), 'access callback' => 'user_access', 'access arguments' => array('my permission'), ); return $items; } function example_page($node) { return "El contenido de la página ..."; }
El nuevo sistema, basado en el componente routing de Symfony2, define las rutas mediante clases de tipo Route
que después se añaden a una colección de rutas:
$route = new Route('router_test/test1', array( '_controller' => '\Drupal\router_test\TestControllers::test1' )); $collection = new RouteCollection(); $collection->add('router_test_1', $route);
Si la ruta enlaza directamente con un contenido simple, puedes reemplazar la opción _controller
por _content
:
$route = new Route('router_test/test2', array( '_content' => '\Drupal\router_test\TestControllers::test2' )); $collection->add('router_test_2', $route);
Aunque todavía falta mucho trabajo para integrar por completo el componente de enrutamiento de Symfony en Drupal 8, algún programador ya ha comentado que la nueva API no le convence. De hecho, sugiere que se cree alguna función simple similar a Drupal 7 que convierta después la información a la API de bajo nivel de las rutas de Symfony2.
Fuente: New Symfony-based routing system
Comentarios
Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente
unos meses después de su publicación para asegurar que estos sigan
siendo relevantes.
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.