6

私はRESTサーバーをモックするためにSilexフレームワークを使用しています。OPTIONS httpメソッドのURIを作成する必要がありますが、ApplicationクラスはPUT、GET、POST、およびDELETEのメソッドのみを提供します。カスタムhttpメソッドを追加して使用することは可能ですか?

4

2 に答える 2

4

私も同じことをしましたが、どうやってそれを機能させたのかよく覚えていません。私は今それを試すことができません。確かにあなたは拡張する必要がありますControllerCollection

class MyControllerCollection extends ControllerCollection
{
    /**
     * Maps an OPTIONS request to a callable.
     *
     * @param string $pattern Matched route pattern
     * @param mixed  $to      Callback that returns the response when matched
     *
     * @return Controller
     */
    public function options($pattern, $to)
    {
        return $this->match($pattern, $to)->method('OPTIONS');
    }
}

そして、それをカスタムApplicationクラスで使用します。

class MyApplication extends Application
{
    public function __construct()
    {
        parent::__construct();

        $app = $this;

        $this['controllers_factory'] = function () use ($app) {
            return new MyControllerCollection($app['route_factory']);
        };
    }

    /**
     * Maps an OPTIONS request to a callable.
     *
     * @param string $pattern Matched route pattern
     * @param mixed  $to      Callback that returns the response when matched
     *
     * @return Controller
     */
    public function options($pattern, $to)
    {
        return $this['controllers']->options($pattern, $to);
    }
}
于 2012-11-29T09:37:44.323 に答える