Как определить несколько маршрутов, которые используют один и тот же анонимный обратный вызов?
$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 });
Спасибо.
Вы можете использовать условия для достижения именно этого. Мы используем это для перевода URL-адресов.
$app->get('/:route',function() { //Do same stuff for both routes })->conditions(array("route" => "(first_route|second_route)"));
Я не могу дать вам конкретное решение, но если это поможет вам обратиться к анонимной функции:
$app->get('/first_route', $ref = function() { //Do stuff }); $app->get('/second_route', $ref);
Обратные вызовы являются делегатами. Поэтому вы можете сделать что-то вроде этого:
$app->get('/first_route', myCallBack); $app->get('/second_route', myCallBack); function myCallBack() { //Do stuff }