Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 雷斯特勒海关路线_Php_Url Routing_Restler - Fatal编程技术网

Php 雷斯特勒海关路线

Php 雷斯特勒海关路线,php,url-routing,restler,Php,Url Routing,Restler,我们正在探索Restler框架。我们需要的是定制路线,如: [host]/:sessionid/{class}/{method}?param1=x&param2=y 例如,游戏类中的设置方法: <?php class Game { function settings($session, $sound=TRUE, $music=TRUE){ // } } ?> 应映射到http://hostname/12435635/game/setti

我们正在探索Restler框架。我们需要的是定制路线,如:

[host]/:sessionid/{class}/{method}?param1=x&param2=y
例如,
游戏
类中的
设置
方法:

<?php
class Game {
    function settings($session, $sound=TRUE, $music=TRUE){
        //
    }
}
?>

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


我们通过对
routes.php
文件进行了一些黑客攻击来实现这一点,但由于该文件是自动生成的,所以这一想法不是很好。那么,在不攻击Restler的源代码或修改
routes.php
文件的情况下创建这样的路由是否可能?

第一步是从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){
        //
    }
}
每次在生产模式下生成此路由时,都会将其添加到
routes.php

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

http://hostname/12435635/game/settings?sound=x&music=y