Как разработчик PHP, большинство моих проектов основаны на базе данных. Я большой любитель ООП, и хотя я новичок в мире объектов, я стараюсь следовать лучшим практикам, чтобы улучшить свои способности.
мой животрепещущий вопрос
Если у меня есть объект, которому требуется информация из моей базы данных, как этот объект слабо связан, поскольку он сильно зависит от результатов, возвращаемых базой данных?
Пример кода:
<?php
class Test {
protected $repository;
public function __construct(Repository $repository)
{
$this->repository = $repository;
}
public function process()
{
$results = $this->repository->where('id', 1)->get();
( ! empty($results) ) ?: ''; // do something bad.
foreach ($results as $result) {
// This is my problem, my class now knows it needs an array key of name to be available.
// Is this bad?
echo $result['name'];
}
}
}
Здесь мой класс ожидает ключ имени массива. Это просто кажется мне неправильным, потому что теперь мой класс тесно связан с набором результатов...
Слои
Я много читал о прикладных уровнях, таких как уровень предметной области, сервисный уровень, сценарии транзакций, прикладной уровень и т. д.
Даже обладая этим знанием, я не вижу решения своей проблемы.
Завершить
Было бы здорово услышать ваши мысли о том, не схожу ли я с ума без всякой причины.
Также было бы здорово увидеть некоторые примеры кода или дополнительные материалы для чтения, книги и т. д. ссылки.