Multiple routes with the same anonymous callback using Slim Framework

谁都会走 提交于 2019-12-18 05:47:06

问题


How can I define multiple routes that use the same anonymous callback?

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

I know I can use a reference to a function which would work, but I'd prefer a solution for using the anonymous function to be consistent with the rest of the codebase.

So basically, what I'm looking for is a way of doing something like this:

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

~ OR ~

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

Thank you.


回答1:


You can use conditions to achieve just that. We use that to translate URLs.

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



回答2:


I can't give you a framework specific solution, but if it helps you can reference anonymous function:

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



回答3:


Callbacks are delegates. So you can do something like that :

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

function myCallBack() {
    //Do stuff
}


来源:https://stackoverflow.com/questions/11521264/multiple-routes-with-the-same-anonymous-callback-using-slim-framework

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!