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);
}
}
}
Информационный эксперт: каждый класс выполняет только свою работу и не нарушает инкапсуляцию.
Низкая связанность: компоненты имеют между собой минимальное количество связей.

Я видел SOLID в разных проявлениях. Но чтоб настолько наплевать на SRP даже в этом куске кода…
Вы меня удивили.
Sign up to leave a comment.
Создание архитектуры собственной API обертки с учетом паттернов GRASP и принципов SOLID