domingo, 10 de junio de 2007

El router de la 1.2 (atualizado): indicar URL como arrays

He estado leyendo un artículo de Andy Dawson sobre el router de CakePHP 1.2.

El router, entre otras cosas, es el que se encarga de gestionar las URL de Cake, permitiéndole intrepretar sus características /controlador/accion/[parametros]. Pero también, desde la versión 1.2, se puede aprovechar para generar esas mismas URL desde el código de manera inteligente, sin tener que pensar dónde estoy exactamente.

Para eso usamos un array, que en su forma completamente desarrollada viene siendo así:

$url = array (
CAKE_ADMIN=>false,
'plugin'=>false,
'controller'=>'Post',
'action'=>'view',
)


Pero que nosotros podríamos usar así:

$url = array {
'action' = 'edit',
12
}

Que sería el equivalente de

$url = '/controller/edit/12';

Y que podríamos emplear en un $html->link (), por ejemplo, o en otros métodos que necesiten una URL.


Ventajas

La principal, que hacemos que sea Cake quien se encargue de formar correctamente las URL.

Por otro lado, el código se hace más transportable y genérico. Ideal para helpers.

En consecuencia, he empezado a migrar mis URL internas al formato array.

Ojo con requestAction

Por lo que veo, requestAction no soporta las url en forma de array. Así no me funcionan a mí los elements.

No hay comentarios: