11

Silexを使用してすべての応答にヘッダーを「自動的に」追加するにはどうすればよいですか?

これまでのところ、私はすべての応答で次のことをしなければなりません:

$app->post('/photos'), function () use ($app) {
    return $app->json(array('status' => 'success'), 200, array('Access-Control-Allow-Origin' => '*'));
});

Access-Control-Allow-Origin: *代わりに、beforeフィルターを使用して、すべてのリクエストで自動的に送信したいと思います。

// Before
$app->before(function () use ($app) {
    $response = new Response();
    $response->headers->set('Access-Control-Allow-Origin', '*');
});

// Route
$app->post('/photos'), function () use ($app) {
    return $app->json(array('status' => 'success')); // <-- Not working, because headers aren't added yet.
});
4

1 に答える 1

16

afterアプリケーションミドルウェアを使用できます。これはメソッドシグネチャです。

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$app->after(function (Request $request, Response $response) {
    // ...
});

このようにして、自由に変更できるResponseオブジェクトを取得します。

于 2013-01-14T09:00:07.460 に答える