DI を介してサービスにエンティティを挿入しようとしています。
Entity は、Doctrine-JSON-ODM-library ( https://github.com/dunglas/doctrine-json-odm )を介して、データベース (ユーザー要求から照会された) の JSON フィールドから作成されます。
私は通常、リクエストとリポジトリを使用して依存関係を返すコンテキストクラスを作成します(ここで説明されているようにhttps://blogs.cuttingedge.it/steven/posts/2015/code-smell-injecting-runtime-data-into -コンポーネント/ )。ただし、私の依存関係はツリー構造内の深くネストされたデータに依存しているため、これは実行可能ではないようです。
/* Doctrine-Entity queried from DB with User-Request-Parameters */
class Page
{
/**
* @var Slot[]
* @ORM\Column(type="json_document", options={"jsonb": true})
*/
private $slots = [];
}
/* First level of nesting */
class Slot
{
/** @var Components[] */
private $components;
}
/* Entity to be injected */
class Component
{
// multiple data-fields
}
// Service which will need to work with the Component-Data
class ComponentRenderService
{
// multiple functions which all need (read)-access to the
// Component-data
}
深くネストされた構造を介して作成された依存関係を解決するにはどうすればよいですか?