2012-05-09 64 views
0

我們正在探索Restler框架。我們需要的是像一個自定義路線:Restler定製路線

[host]/:sessionid/{class}/{method}?param1=x&param2=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文件?

回答

1

第一步是從URI中刪除類名。它可以通過修改addAPIClass語句

$r->addAPIClass('Game', ''); 

這改變了自動生成的URI結構如下

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

下一步是通過添加PHPDoc的評論對API的方法手動指定的路徑來實現下面

<?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評論創建多個路由指向同一方法生成每次