2012-07-17 42 views
11

Làm cách nào để xác định nhiều tuyến đường sử dụng cùng một cuộc gọi lại ẩn danh?Nhiều tuyến đường với cùng một cuộc gọi lại ẩn danh bằng cách sử dụng Slim Framework

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

Tôi biết tôi có thể sử dụng một tham chiếu đến một chức năng mà sẽ làm việc, nhưng tôi muốn một giải pháp cho việc sử dụng các chức năng ẩn danh để phù hợp với phần còn lại của codebase.

Vì vậy, về cơ bản, những gì tôi đang tìm kiếm là một cách để làm một cái gì đó như thế này:

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

~ HOẶC ~

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

Cảm ơn bạn.

Trả lời

19

Bạn có thể sử dụng điều kiện để đạt được điều đó. Chúng tôi sử dụng điều đó để dịch URL.

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

Thật tuyệt vời, cảm ơn. – Francisc

14

tôi không thể cung cấp cho bạn một giải pháp khuôn khổ cụ thể, nhưng nếu nó giúp bạn có thể tham khảo chức năng ẩn danh:

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

Rất thông minh, cảm ơn. Tôi sẽ chờ xem có giải pháp khung cụ thể không. – Francisc

4

Gọi lại là đại biểu. Vì vậy, bạn có thể làm điều gì đó tương tự:

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

function myCallBack() { 
    //Do stuff 
} 
Các vấn đề liên quan