我们正在探索Restler框架。我们需要的是一条自定义路线,如:
[host]/:sessionid/{class}/{method}?param1=x¶m2=y
例如,Settings
类中的Game
方法:
<?php
class Game {
function settings($session, $sound=TRUE, $music=TRUE){
//
}
}
?>
应映射到http://hostname/12435635/game/settings?sound=x&music=y
我们设法通过稍微破解routes.php
文件来实现它,但由于文件是自动生成的,因此这个想法并不是很好。那么,是否可以在不破解Restler源或修改routes.php
文件的情况下创建此类路由?
答案 0 :(得分:1)
第一步是从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注释以创建指向同一方法的多个路径