3

ちょうど 1 時間前に、symfony 4.2 のシリアライザーの新しい circle_reference_handler について質問しました。

( symfony 4.2 の代わりにコンテキストの "circular_reference_handler" キーを使用してください)

その質問への答えは、到達した最大ネスティング レベルの新しい問題に私を導きます。

ドキュメント ( https://symfony.com/doc/current/components/serializer.html#handling-serialization-depth )

このコンテキスト キーやその実装方法については言及されていません。

前の質問のcircular_reference_handlerの例を使用する場合、framework.yamlファイルの下にコンテキストキーを追加します:

framework:
  serializer:
    max_depth_handler: 'App\Serializer\MyMaxDepthHandler'

そして、クラスを作成します

namespace App\Serializer;


class MyMaxDepthHandler
    {
    public function __invoke($object){
        //TODO how to handle this
    }
}

そして、シリアライザーがこのハンドラーを使用するために、シリアライズ関数のコンテキストを設定します。

$this->serializer->serialize($object, 'json', ['enable_max_depth' => true]);

今私の質問は、これをどのように処理するのですか? この __invoke 関数の本体に何を入れるかの例はありますか?

どんな助けでも大歓迎です

4

1 に答える 1