All streams
Search
Write a publication
Pull to refresh

Comments 3

class Basic implements BasicInterface {
...
protected function _setEntityProperties(Entity\BasicInterface $entity, array $data): void {
        foreach ($data as $propertyName => $value) {
            if ($value === null) {
                continue;
            }
            $propertyConfiguration = $entity->propertyConfiguration($propertyName);
            if ($propertyConfiguration === null) {
                $entity->$propertyName = $value;
            } elseif ($propertyConfiguration->isEnumerable()) {
                $entity->$propertyName = $this->buildEntities($propertyConfiguration->class(), $value);
            } else {
                $entity->$propertyName = $this->buildEntity($propertyConfiguration->class(), $value);
            }
        }
    }

Информационный эксперт: каждый класс выполняет только свою работу и не нарушает инкапсуляцию.

Низкая связанность: компоненты имеют между собой минимальное количество связей.


image
Честно говоря не понимаю в чем тут проблема…
Билдер — предназначен для создания сущности, а сущность хранит в себе правила её инициализации. На основе этих правил — создаются конкретные объекты.

Буду благодарен если объясните в чем моя ошибка.

Я видел SOLID в разных проявлениях. Но чтоб настолько наплевать на SRP даже в этом куске кода…
Вы меня удивили.

Sign up to leave a comment.

Articles