Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Programando Con Yii2: Ruteo y Creación de URL

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called How to Program With Yii2.
Programming With Yii2: Using Amazon S3
Programming With Yii2: Helpers

Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)

Yii2 Routing and URL Creation

Si te estás preguntando, "¿Qué es Yii?" revisa nuestra Introducción al Framework Yii, el cuál revisa los beneficios de Yii e incluye un vistazo a Yii 2.0.

Introducción a Ruteo

En esta serie Programando con Yii2, estoy guiando a los lectores en el uso del Framework Yii2 para PHP.

En el tutorial de hoy, revisaré el ruteo y creación de URL en Yii. Cuando una petición de navegador llega al archivo index.php de tu aplicación de Yii, debe ser analizado para determinar cual controlador y método llamar. Eso es ruteo. El proceso inverso de enlazar las partes de tu aplicación es creación de URL, lo cuál es mejor hecho programáticamete.

Yii proporciona mucha flexibilidad en el manejo de ruteo y generación de enlaces. Sígueme mientras reviso los básicos.

Antes de que comencemos, por favor recuerda, trato de participar en las discusiones de abajo. Si tienes una pregunta o sugerencia de tópico, por favor publica un comentario abajo o contactame en Twitter @reifman.

Nota: Si has notado una brecha entre los espisodios de la serie Programando Yii, es porque tuve una cirugía de cerebro el año pasado. Gracias por su paciencia y apoyo--es agradable estar escribiendo regularmente de nuevo y estoy esperando continuar la cobertura de Yii2.

Antecedente

El administrador de URL de Yii es el componente de aplicación usado para analizar peticiones entrantes, parseRequest(), así como generar nuevas URL de manera programática, createURL().

Las peticiones son analizadas en rutas, las cuales toman esta forma:

Esencialmente, el Administrador URL instruye cuál controlador y método de acción crear e invocar.

A lo largo de tu aplicación, necesitarás  generar URLs que puedan ser analizadas propiamente cuando sean pedidas por usuarios. Usar createURL() para esto asegura que las peticiones de entrada puedan ser mapeadas satisfactoriamente.

Aquí hay un ejemplo:

Sin un framework MVC, cualquier archivo PHP en tu aplicación puede responder directamente a peticiones, lo que significa que tienes que administrar la seguridad en cada archivo. Con MVC y administrador URL, la seguridad básica es propocionada a nivel central y el acceso a tu aplicación está bastante controlado. Esta es una de las razones clave para no molestarse en vanilla PHP--¡los frameworks con lo máximo!.

Sumerjámonos en cosas más específicas del tema de hoy.

Ruteo

Las peticiones de usuarios vienen a través del navegador sobre la web para tu servidor en forma de URLs. Veamos una desde una página de petición de login de usuario en mi aplicación de serie startup, Planificador de Reuniones:

Mi aplicación usa URLs bonitas en Yii (descrita abajo); nota menos variables de consulta. Sin eso, la URL se verías así:

En cualquier caso, parseRequest procesa la URL y crea e invoca SiteController.php con actionLogin().

Con URLs bonitas, la administración de URL revisará reglas registradas. En Planificador de Reuniones, están en el archivo de configuración común:

Si no hay una regla que concuerde o hay un error alcanzando un controlador y acción, un error 404, una excepción yii\web\NotFoundHttpException será arrojada.

Sin embargo, arriba está un defaultRoute establecido para ir a la página de inicio en actionIndex de SiteController, el cuál cubrirá peticiones URL sin par.

Veamos más de cerca a una de las reglas arriba:

Dice que si recibes una petición de un controlador seguido por una palabra (\w+) seguida por una diagonal y un número (\d+), envía esa petición al archivo de controlador con un nombre emparejado e invoca actionView($id) con el número, por ejemplo meeting/view/130 llama MeetingController.php actionView(130)

Definir tus reglas es importante y puede agregar o detraer desde el desempeño general de tu sitio o tiempo de respuesta. Deberás querer aprender más acerca de parametrización avanzada de rutas de Yii para optimizar el rendimiento. Escribir reglas puede volverse más detallado, lo que no haré el día de hoy.

URLs Bonitas

Como mencioné arriba, las URLs bonitas cambian de ruteo basado en parámetro de Yii a ruteo basado en ruta. Por ejemplo, esta URL pide ver una reunión con ID 130.

O esta URL pide ver un lugar llamado El Diablo Coffee:

Tal vez quieras leer Cómo Programar Con Yii2 para aprender más sobre implementar para manejar estos tipos de URLs nombradas.

Para habilitar URLs Bonitas, necesitas activar enablePrettyUrl en urlManager:

Nota: Esta vez, también puedes deshabilitar index.php en la URL con showScriptName; sin embargo, aún estoy batallando con crear URLs sin index.php en mi projecto de aplicación actual. Dar seguimiento a esto está en mi lista de tareas.

También necesitas crear un archivo .htaccess y habilitar mod_rewrite para Apache:

Modo CatchAll

Programming Yii Maintenance Mode View

Otra buena cracterística del ruteo Yii es la habilidad para colocar fácilmente tu aplicación en modo de mantenimiento. Solo define un ajuste catchAll en la configuración de aplicación, acción y vista:

También agregué un actionOffline en SiteController.php y una vista offline.php

Creando URLs

Yii proporciona un método de ayuda yii\helpers\Url::to() para crear enlaces dentro de tu aplicación que correspondan propiamente a las reglas de análisis. Generar enlaces programáticamente con la infraestructura de Yii ayudará a mantener la manejabilidad y portabilidad del código de tu aplicación.

Aquí hay algunos ejemplos de crear URLs desde la documentación de Yii:

Por supuesto, si el formato de URL bonita está habilitado, las URLs creadas serán diferentes.

Aquí hay un ejemplo de mi generando un enlace en la cuadrícula de control de lista de Reuniones para Planificador de Reuniones:

También incluyo muchos enlaces en correos de salida para Planificador de Reuniones, el cuál requiere un número de argumentos idénticos para validar acceso de usuario. Creé un ayudante para construír estos comandos que usan Url:to():

Escribir código PHP crudo para crear manualmente enlaces como estos consumirían tiempo, sería propenso a los errores y menos portable. Url::to() ahorra bastante tiempo en código y solución de problemas.

Nota: estaré escribiendo acerca de Yii Helpers en un episodio futuro. Usar una función comunmente accesible dentro de mi ayudante me ahorra mucho esfuerzo y reduce la codificación en general.

En Conclusión

Comenzar con un MVC puede ser confuso y las rutas y URLs puede jugar parte en esto. Quizás debería haber escrito acerca de rutas más temprano en la serie. En cualquier caso, espero que hayas aprendido algunas cosas nuevas acerca de Yii y su diseño de aplicación flexible con rutas y URLs.

Espera nuestros siguientes tutoriales en nuestra serie Programando Con Yii2 mientras continuamos sumergiéndonos en diferentes aspectos del framework. Por ejemplo, dejame saber si quisieras ver más sobre ruteo avanzado. Estoy abierto a peticiones de características y tópicos. Puedes publicarlas en los comentarios de abajo o envíame un email a mi sitio web Lookahead Consulting.

Si te gustaría explorar una aplicación más avanzada de Yii2 ahora, revisa nuestra serie startup y Planificador de Reuniones. La aplicación está ahora en liberación alfa, y puedes usarla para agendar reuniones con amigos. También puedes descargar el código; es código abierto.

Si quisieras saber cuando llegue el siguiente tutorial Yii2, sígueme en Twitter @reifman o revisa mi página de instructor. Mi página de instructor incluirá todos los artículos de esta serie tan pronto como sean publicados.

Enlaces Relacionados

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.