0

Restler フレームワークを調査しています。必要なのは、次のようなカスタム ルートです。

[host]/:sessionid/{class}/{method}?param1=x&param2=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ファイルを変更したりせずに、そのようなルートを作成することは可能ですか?

4

1 に答える 1

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 コメントを追加して、同じメソッドへの複数のルートを作成することができます

于 2012-05-13T15:02:19.203 に答える