Nothing happens when you sit at home. I always make it a point to carry a camera with me at all times...I just shoot at what interests me at that moment.

Elliot Erwitt

menú
 

Enrutado de URL's en Dune

 

He añadido capacidad de traducción y enrutado de URL's en Dune.

No era algo imprescindible ni tengo intención (de momento) de usar URL's limpias aquí; pero quería ver como hacerlo, experimentar, jugar, y dejar lista la posibilidad tanto para mí como para cualquiera que pueda necesitarlo.

Ya está hecho y funcional. Necesita mas pruebas, ver donde puede flaquear la forma elegida y fortalecerla, si es posible.

Creo que ha quedado bastante sencillo de utilizar: se reduce a un array asociativo con las reglas deseadas en el fichero "config/rutas.php". Cada elemento del array define en su clave la ruta que reconoce Dune, y su valor una expresión regular que es lo que intentará identificar en la URL que proporcione el navegador. No me alargo en esto, creo que está suficientemente explicado en el propio fichero.

Lo mas interesante, que no veo como hacer, es emular la funcionalidad que provee mod_rewrite (o cualquier otro reescritor). Tal como está ahora: la URL escrita en el navegador se traduce con la regla que corresponda a elementos del array superglobal $_GET (que es la estructura que se usa internamente), pero la URL escrita en el navegador permanece, así que afecta a todas las que se encuentren en la página si son relativas; eso se puede solucionar usando la constante D_BASE_URL, o mejor con D_BASE_URL_FQDN, ambas corregidas y mejoradas (lo que no garantiza que devuelvan el valor correcto en todos los entornos).

Está bien y eso, pero no es transparente. Fuerza al desarrollador a usar URL's absolutas si utiliza el sistema de enrutado. Pero tampoco quiero que Dune dependa de elementos externos si puedo evitarlo.

Otra cosa mas para la lista de seguir investigando, veremos si le encuentro solución.

códigophpDunemejoraurl

José M. Carnero

Sunday 4 de June de 2017 (01:03)

PermURL: ../?entrada&ent=enrutado_de_urls_en_dune

Comentarios

Sin resultados