ホームページ >バックエンド開発 >PHPチュートリアル >Symfony2 フレームワークシリアル化ツールの使用 (2)

Symfony2 フレームワークシリアル化ツールの使用 (2)

WBOY
WBOYオリジナル
2016-06-23 13:09:00947ブラウズ

Symfony2 フレームワークは、デフォルトで ObjectNormalizer を使用します。これについては、前の記事で説明しました。しかし実際には、デフォルトのメソッドに加えて、GetSetMethodNormalizer を使用するなど、より多くの選択肢もあります。必要なのは、サービスを登録することだけです。

services:    app.serializer.method_normalizer:        class: Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer        tags:            - { name: serializer.normalizer }

サービスを Normalizer として定義する鍵は、実際には最後の文のタグの定義。サービスをserializer.normalizerとして定義している限り、それはシリアライザーサービスのノーマライザーになります。

GetSetMethodNormalizer のコンストラクターはパラメーターを必要としないことが許可されていますが、この場合、前の記事で説明した Serialization Group を定義するために Annotation を使用することはできません。さらに、新しい Normalizer が登録されるときに、config.yml 内の name_converter が使用されます。また、機能しません (この設定はフレームワークに付属の Normalizer にのみ影響します)。そのため、この Normalizer サービスを登録するときは、フレームワークに付属の Normalizer を模倣して @serializer.mapping を読み取ることをお勧めします。 class_metadata_factory サービスと、アノテーションによって設定された @serializer がサービスに挿入されます。ユーザーは 1 つのグループがあるが、グループには n 人のユーザーがいるなど、循環参照の問題に注意する必要があります。そのようなユーザー オブジェクトがシリアル化されると、このユーザーのグループ オブジェクトは自動的にシリアル化されます。グループオブジェクトはシリアル化され、グループ内のすべてのオブジェクトは自動的にシリアル化されます...幸いなことに、Symfony2 のシリアル化ツールは

に設定できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。