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