Home / Blog / Desarrollo en Drupal8, Capitulo 1 Enrutamiento
Imagen de Daniel
Daniel M. Fernandez
Comp. Science Engineer
23 Ene 2017
Desarrollo
en Drupal8, Capitulo 1 Enrutamiento

Este es el primero, de un compendio de tutoriales que se irán publicando sobre el desarrollo de módulos en drupal 8. Trataremos de ir basando cada explicación en un módulo de ejemplo al que le iremos incorporando funcionalidades a medida que vayamos adentrándonos en cada capítulo.

Body: 

Este es el primero, de un compendio de tutoriales que se irán publicando sobre el desarrollo de módulos en drupal 8. Trataremos de ir basando cada explicación en un módulo de ejemplo al que le iremos incorporando funcionalidades a medida que vayamos adentrándonos en cada capítulo.

Es importante recalcar que Drupal 8 se integró en gran medida al conocido framework Synfony 2, por lo que recomendamos para un mayor entendimiento que se estudie algunos aspectos importantes de este Framework con anterioridad, aunque no se descarta que puedan ser entendidos sin conocimientos previos del mismo.

Conocimientos previos para entender este tutorial:                        

PHP, Desarrollo en drupa, POO.

Nota: Para un mejor entendimiento se recomiendo leer el capítulo Enrutando del libro Synfony 2.

 Objetivo del curso

Configurar el enrutamiento a la hora de desarrollar módulos en  Drupl 8, routing.yml y

Capitulo 1 Enrutamiento:

1.1 El routing.yml

El enrutamiento es mediante el método de synfony2, se declara en un fichero yml, compuesto su nombre de la forma nombre_modulo.routing.yml (Sustituiremos nombre_modulo por el nombre de nuestro módulo). En este fichero se declaran los ítems menú que no gestionan acciones, para estas se utiliza el fichero links.action.yml posteriormente analizado.

Estructura de este  fichero:

  1. Definimos la clave desde donde tendremos acceso a la ruta desde el interior del módulo.
  2. Rute desde donde será accesible, también se puede utilizar pattern en lugar de path para obtener una url más enriquecida, con valores de argumentos etc.
  3. Clausula donde se definen propiedades del vínculo.
  4. Definimos el Controlador y Acción o función que manejará el contenido de la página.
  5. Título de la página.
  6. Requerimientos que tendrá nuestra página para ejecutarse.
  7. Definiendo que el usuario tienen que estar logueado para tener acceso a la página.

Notas:

  1. Dentro de la estructura default también se define el _controller donde se define el controlador y la Acción o función en donde se ejecutará la operación correspondiente, como por ejemplo cualquiera que se incluya en el CRUD de una entidad, como son (create, update, delete).
  2. Dentro de la estructuras requirements se incluyen muchas otras cláusulas. Se puede forzar a que sea ejecutada mediante el protocolo http o https (_method: GET o POST), además de las 2 maneras habituales de manejar los permisos, mediante true o false en los permisos definidos por drupal o la cláusula _permission y definiendo un permiso a nuestra conveniencia.
  3. Existe la cláusula options donde también podemos mesclar tipos de acceso de enrutamiento etc.
  4. Recomendamos ver las amplias funcionalidades y configuraciones que se pueden ver en enrutamiento del Symfony 2, también se incluyen cláusulas puramente del trabajo con entitys que en el capítulos de desarrollo con entitys se conocerán.
  5. Para los autoload de clases drupal utiliza los estándares PSR-0 y PSR-4, este no es más que los estándares que se aplican a los mayotias de los framework para poder colaborar entre ellos a su desarrollo, estos estándares son recogidos en PHP Framework Interop Group, puede documentarse más en www.php-fig.org. En las siguientes imágenes se recoge la forma que se recomienda que debe seguir el directorio del módulo y la manera que son invocados desde el routing.yml.
                                                                                                                Esto equivale en las  rutas fijadas en el routing.yml

      

Flujo de enrutamiento en synfony2 y por su parte en drupal8.