Несколько маршрутов с тем же анонимным обратным вызовом с использованием Slim Framework

Как определить несколько маршрутов, которые используют один и тот же анонимный обратный вызов?

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

Я знаю, что могу использовать ссылку на функцию, которая будет работать, но я бы предпочел решение использовать анонимную функцию для соответствия остальной части кода.

Итак, в основном, то, что я ищу, - это способ сделать что-то вроде этого:

$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
});

Спасибо.

Ответ 1

Вы можете использовать условия для достижения именно этого. Мы используем это для перевода URL-адресов.

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

Ответ 2

Я не могу дать вам конкретное решение для платформы, но если это поможет вам обратиться к анонимной функции:

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

Ответ 3

Обратные вызовы являются делегатами. Итак, вы можете сделать что-то вроде этого:

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

function myCallBack() {
    //Do stuff
}