首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Restler自定义路由

Restler自定义路由
EN

Stack Overflow用户
提问于 2012-05-09 21:20:49
回答 1查看 675关注 0票数 0

我们正在探索Restler框架。我们需要的是一个自定义路由,如下所示:

代码语言:javascript
复制
[host]/:sessionid/{class}/{method}?param1=x&param2=y

例如,Game类中的Settings方法:

代码语言:javascript
复制
<?php
class Game {
    function settings($session, $sound=TRUE, $music=TRUE){
        //
    }
}
?>

应映射到http://hostname/12435635/game/settings?sound=x&music=y

我们已经设法通过修改routes.php文件实现了这一点,但是由于文件是自动生成的,所以这个想法并不是很好。那么,有没有可能在不破解Restler的源代码或修改routes.php文件的情况下创建这样的路由呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-13 23:02:19

第一步是从URI中删除类名。这可以通过修改addAPIClass语句来实现

代码语言:javascript
复制
$r->addAPIClass('Game', '');

这会更改自动生成的uri结构,如下所示

代码语言:javascript
复制
http://hostname/settings/12435635/?sound=x&music=y

下一步是通过向api方法添加PHPDoc注释来手动指定路由,如下所示

代码语言:javascript
复制
<?php
class Game {

    /**
    * @url GET /:session/game/settings
    */
    function settings($session, $sound=TRUE, $music=TRUE){
        //
    }
}

这将映射到

代码语言:javascript
复制
http://hostname/12435635/game/settings?sound=x&music=y

每次在生产模式下生成此路由时,都会将其添加到routes.php :)

您可以添加更多@url注释,以创建到同一方法的多个路由

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10517005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档