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

Post on 20-Jan-2015

2.301 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

Symfony

David J.Brenes

Martínez

URLsamigables

Configuraciónde rutasParámetros

Helpers

URLs y elModelo

Referencias,Créditos yLicencia

La importancia de la URL

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

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

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 }

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

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.

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

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+ }

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

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

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>

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

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 ] }

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

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 ( ) ;

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

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 ) )

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

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 }

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/

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/

top related