desarrollo rápido con php y symfony (v): las rutas

23
Symfony David J. Brenes Martínez URLs amigables Configuración de rutas Parámetros Helpers URLs y el Modelo Referencias, Créditos y Licencia Desarrollo rápido con PHP y Symfony (V) Las rutas David J. Brenes Martínez Curso de Extensión Universitaria Desarrollo web avanzado Universidad de Oviedo 2010/03/22

Upload: david-j-brenes

Post on 20-Jan-2015

2.301 views

Category:

Education


1 download

DESCRIPTION

Explicación del sistema de rutas de Symfony para la generación de URLs amigables

TRANSCRIPT

Page 1: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Desarrollo rápido con PHP y Symfony(V) Las rutas

David J. Brenes Martínez

Curso de Extensión UniversitariaDesarrollo web avanzado

Universidad de Oviedo

2010/03/22

Page 2: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

La importancia de la URL

Las URLs pueden aportar información al usuario sobrela páginaEn algunos casos es la primera fuente de informaciónque se recibe

Page 3: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

La importancia de la URL

Page 4: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Las rutas en Symfony

El controlador decide a que acción corresponde la rutaPara ello comprueba las rutas configuradas e intentaencajar la ruta actual

Page 5: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

routes.yml

Listado de rutas que componen nuestra aplicaciónAlgunas rutas pueden tener un significado especialContamos con rutas por defecto

Page 6: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

routes.yml

nombre_ruta :u r l : / u r l _1 / : param_url_1 / u r l_2 / : param_url_2param : { param_no_url : va l o r }

Page 7: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

routes.yml

Las rutas reciben un nombre para poder referirse aellasCada ruta puede tener parmámetros dinámicos dentrode la URL o estáticos en los paramsEl módulo y la acción son dos parámetros

Page 8: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Parámetros en la URL

Son fragmentos de la URL que se mapean comoparámetrosLas acciones acceden a estos parámetros a través de$request->getParameter()Estos parámetros son dinámicos así que se les puedenponer condiciones (ser números enteros, por ejemplo)en forma de expresiones regulares.

Page 9: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Parámetros estáticos

Son parámetros cuyo valor se pone de manera estáticapara la rutaLas acciones acceden a estos parámetros a través de$request->getParameter()Pueden usarse para poner valor por defecto a unparámetro de URL

Page 10: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

routes.yml

conductores_de_coche :u r l : / car / : ma t r i cu la / d r i v e r s / : pageparam : { module : d r i ve rs , ac t i on : l i s t ,

page : 1}requirements : { page : \ d+ }

Page 11: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

URLHelper

El helper del Sistema de Rutas es URLHeperPermite construir enlaces y URLs para la aplicación demanera independiente a la configuraciónPodemos cambiar las URLs externas de una aplicaciónen producción sin que los enlaces dejen de funcionar

Page 12: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Funciones

url_to: Te devuelve una URL externa para la URLinterna que le paseslink_to: Construye un enlace con la URL quedevolvería url_toUn enlace interno esmodulo/acción?param1=valor1&param2=valor2Para acelerar las funciones se puede usar también@nombre_ruta?param1=valor1&param2=valor2

Page 13: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Usando el Helper

u r l _ t o ( " d r i v e r s / l i s t ? ma t r i cu la =0000AAA&page=5 " )

/ / −−> / car /0000AAA/ d r i v e r s /5

l i nk \ _to ( " Conductores " ," @conductores_de_coche? mat r i cu la =0000AAA

&page=5 " )/ / −−> <a h re f = " / car /0000AAA/ d r i v e r s /5" >/ / Conductores/ / </a>

Page 14: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

URLs para un modelo

Un parámetro para la ruta es la clase que la manejaPor defecto es el router de SymfonyDoctrine tiene su propio routerAporta ventajas para acceder a ciertos recursos

Page 15: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Una ruta de modelo

coche :u r l : / car / : ma t r i cu lac lass : s fDoct r ineRouteopt ions : { model : Car , type : ob jec t }param : { module : cars , ac t i on : show }requirements : { sf_method : [ get ] }

Page 16: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Ayuda en la acción

La ruta actual te permite obtener el objetoSi el objeto no existe lanza un error 404

Page 17: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Ayuda en la acción

$coche = $ th is −>getRoute ()−> getObject ( ) ;

Page 18: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Ayuda en la vista

El helper de enlaces acepta el objeto para el quequeremos generar el enlacePodemos pasar parametros adicionalesDebemos crear métodos en la clase para que el routerlos obtenga del objeto

Page 19: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Ayuda en la vista

u r l _ f o r ( array ( ’ s f_ rou te ’ => ’ coche ’ ,’ s f _sub jec t ’ => $coche ) )

Page 20: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

URLs de colecciones

Permiten definir multiples URLs para gestionarcoleccionesDefine URLs para crear, eliminar, actualizar, mostrar,listar y los formularios

Page 21: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

URLs de colecciones

car :c lass : s fDoc t r i neRou teCo l l ec t i onopt ions : { model : Car }

Page 22: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Referencias

Symfony Project: www.symfony-project.orgThe Symfony Reference Book: http://www.symfony-project.org/reference/1_4/en/

Practical Symfony:http://www.symfony-project.org/jobeet/1_4/Doctrine/en/

The Definitive Guide to Symfony:http://www.symfony-project.org/book/1_2/

Page 23: Desarrollo rápido con PHP y Symfony (V): Las rutas

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

Licencia

Estas transparencias se publican bajo licencia CreativeCommons y se pueden redistribuir o modificar bajo lassiguientes condiciones:

Se dé reconocimiento al autor de estas transparencias.No se use con propósitos comerciales.Se distribuya con la misma licencia.

Texto de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/