2012-07-17 24 views
11

¿Cómo puedo definir varias rutas que usan la misma devolución de llamada anónima?Rutas múltiples con la misma devolución de llamada anónima usando Slim Framework

$app->get('/first_route',function() 
{ 
    //Do stuff 
}); 
$app->get('/second_route',function() 
{ 
    //Do same stuff 
}); 

Sé que puedo utilizar una referencia a una función que iba a funcionar, pero preferiría una solución para el uso de la función anónima para ser coherente con el resto de la base de código.

Así que, básicamente, lo que estoy buscando es una forma de hacer algo como esto:

$app->get(['/first_route','/second_route'],function() 
{ 
     //Do same stuff for both routes 
}); 

~ O ~

$app->get('/first_route',function() use($app) 
{ 
    $app->get('/second_route');//Without redirect 
}); 

Gracias.

Respuesta

19

Puede utilizar condiciones para lograr precisamente eso. Usamos eso para traducir URLs.

$app->get('/:route',function() 
{ 
    //Do same stuff for both routes 
})->conditions(array("route" => "(first_route|second_route)")); 
+0

Eso es increíble, gracias. – Francisc

14

No puedo dar una solución específica marco, pero si ayuda puede hacer referencia a la función anónima:

$app->get('/first_route', $ref = function() 
{ 
    //Do stuff 
}); 
$app->get('/second_route', $ref); 
+0

Eso es muy inteligente, gracias. Esperaré para ver si hay una solución específica para el marco. – Francisc

4

Las devoluciones de llamada son delegadas. Entonces puede hacer algo como eso:

$app->get('/first_route', myCallBack); 
$app->get('/second_route', myCallBack); 

function myCallBack() { 
    //Do stuff 
} 
Cuestiones relacionadas