@Lobanov

Как правильно смапить PHP класс с Doctrine?

Всем привет)
Ребят, подскажите пожалуйста, как правильно смапить классы агрегата состоящего из нескольких сущностей на доктрину, проставив связи между классами, если у нас порой могут быть только часть данных ?

У меня получается так, что я хожу по API забирать данные и порой апишка отдает только часть данных, а иногда полные (это связано с нюансами возникающих событий в системе).

Мое описание агрегата выглядит следующим образом:

class A {
    private Id $id;
    private SourceId $source;
    private EventSource $eventSource;
    
    public function __construct(
        Id $id,
        SourceId $source,
        EventSource $eventSource
    ) {
        $this->id = $id;
        $this->source = $source;
        $this->eventSource = $eventSource;
    }
}

class EventSource {
    private Id $id;
    private ?ASource $aSource = null;
    private ?BSourceVnr $bSource = null;
    
    public function __construct(
        Id $id,
        ?ASource $aSource = null,
        ?BSourceVnr $bSource = null
    )
    {
        $this->id = $id;
        $this->aSource = $aSource;
        $this->bSource = $bSource;
    }
}

class ASource {
    private Id $id;
    private int $param1;
    private int $param2;
    public function __construct(
        Id $id,
        int $param1,
        int $param2
    )
    {
        $this->id = $id;
        $this->param1 = $param1;
        $this->param2 = $param2;
    }
}

class BSource {
    private Id $id;
    private int $param1;
    private int $param2;
    public function __construct(
        Id $id,
        int $param1,
        int $param2
    )
    {
        $this->id = $id;
        $this->param1 = $param1;
        $this->param2 = $param2;
    }
}


Получается так, что классы ASource и BSource ссылаются на класс EventSource, т.е. их может быть множество, а EventSource один, также EventSource по отношению к классу A может быть множетсво, а класс A всего лишь один. (надеюсь удалось донести мысль по связям).

Буду благодарен, если подскажите как правильно смапить такой агрегат и поделитесь опытом, как вы обычно решаете такие задачи.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 13:49
300000 руб./за проект
27 апр. 2024, в 13:30
30000 руб./за проект
27 апр. 2024, в 13:22
600 руб./за проект