【发布时间】:2014-08-11 23:07:18
【问题描述】:
我们正在使用 SLIM 框架构建 API。在我们的 API 层次结构中,一些特定的操作将可用于多个路径。这是一个例子:
$app->get('/surveys/:sid/contacts/:cid', function ($sid, $cid) use ($user) {
// Do stuff
});
OR
$app->get('/contacts/:cid/surveys/:sid', function ($cid, $sid) use ($user) {
// Do same stuff
});
我们已经看到了一些方法(例如Multiple routes with the same anonymous callback using Slim Framework)并且能够通过引用匿名函数来做到这一点。
$app->get('/surveys/:sid/contacts/:cid', $ref = function ($sid, $cid) use ($user) {
// Do stuff
});
AND
$app->get('/contacts/:cid/surveys/:sid', $ref); // Calls the same stuff, but with different order of arguments (wrong)
但是我们如何处理传递参数的顺序变化(“$sid, $cid”和“$cid, $sid”)?
谢谢!
感谢安德鲁·史密斯的回答!我们将使用稍微不同的实现:
function doStuff($user, $sid, $cid) {
// Do stuff
}
$app->get('/surveys/:sid/contacts/:cid', function ($sid, $cid) use ($user) {
doStuff($user, $sid, $cid);
});
$app->get('/contacts/:cid/surveys/:sid', function ($cid, $sid) use ($user) {
doStuff($user, $sid, $cid);
});
【问题讨论】: