Silex ユーザーガイド

SerializerServiceProvider

SerializerServiceProvider オブジェクトをシリアライズするためのサービスを提供します。

Parameters

無し

登録

$app->register(new Silex\Provider\SerializerServiceProvider());

Note

SerializerServiceProvider は Symfony の Serializer Component に依存しており、 “全部入り” Silex のアーカイブには含まれますが、通常版には含まれません。 そのため依存関係を composer.json ファイルに追記してください:

"require": {
    "symfony/serializer": ">=2.3,<2.5-dev",
 }

使い方

SerializerServiceProvider プロバイダーは serializer サービスを提供します。:

use Silex\Application;
use Silex\Provider\SerializerServiceProvider;
use Symfony\Component\HttpFoundation\Response;

$app = new Application();

$app->register(new SerializerServiceProvider());

// アサートメソッド経由で、シリアライザーが扱えるコンテンツタイプのみを受け入れる
$app->get("/pages/{id}.{_format}", function ($id) use ($app) {
    // Pageオブジェクトを返すページリポジトリサービスがあるとします。
    // また返されたオブジェクトはゲッターとセッターを持っているとします。
    $page = $app['page_repository']->find($id);
    $format = $app['request']->getRequestFormat();

    if (!$page instanceof Page) {
        $app->abort("No page found for id: $id");
    }

    return new Response($app['serializer']->serialize($page, $format), 200, array(
        "Content-Type" => $app['request']->getMimeType($format)
    ));
})->assert("_format", "xml|json")
  ->assert("id", "\d+");

commit: a8ab1f8bac91246f420d9ba0b151bf1f77c38f0a original: https://github.com/silexphp/Silex/blob/master/doc/providers/serializer.rst

このページのコンテンツ

前のドキュメント

RememberMeServiceProvider

次のドキュメント

ServiceControllerServiceProvider

ソース