我们正在探索Restler框架。我们需要的是一个自定义路由,如下所示:
[host]/:sessionid/{class}/{method}?param1=x¶m2=y例如,Game类中的Settings方法:
<?php
class Game {
function settings($session, $sound=TRUE, $music=TRUE){
//
}
}
?>应映射到http://hostname/12435635/game/settings?sound=x&music=y
我们已经设法通过修改routes.php文件实现了这一点,但是由于文件是自动生成的,所以这个想法并不是很好。那么,有没有可能在不破解Restler的源代码或修改routes.php文件的情况下创建这样的路由呢?
发布于 2012-05-13 23:02:19
第一步是从URI中删除类名。这可以通过修改addAPIClass语句来实现
$r->addAPIClass('Game', '');这会更改自动生成的uri结构,如下所示
http://hostname/settings/12435635/?sound=x&music=y下一步是通过向api方法添加PHPDoc注释来手动指定路由,如下所示
<?php
class Game {
/**
* @url GET /:session/game/settings
*/
function settings($session, $sound=TRUE, $music=TRUE){
//
}
}这将映射到
http://hostname/12435635/game/settings?sound=x&music=y每次在生产模式下生成此路由时,都会将其添加到routes.php :)
您可以添加更多@url注释,以创建到同一方法的多个路由
https://stackoverflow.com/questions/10517005
复制相似问题