class Product
{
public function getAll(){
$data = [];
$i = 0;
foreach($this->db->getAll(...)->fetch() as $v){
$data[$i]['id'] = $v['id'];
$data[$i]['name'] = EntityText($v['name']);
$data[$i]['price'] = Price($v['price']);
$data[$i]['decription'] = EntityText($v['decription']);
$data[$i]['discount_date '] = MyDate($v['discount_date']);
$i++;
}
return $data;
}
}
Про ключи легко забыть, а про свойства объекта - нет.
можешь посмотреть
это правильно и это ты правильно понял, абстрагировав слой БД от слоя модели. Советую почитать книгу Фаулера "Архитектуру корп. пр. приложений" и особенно главу "Источники данных". Без этой концепции ты дальше своей подделки не уедешь в знаниях.
public function getById(int $id){
$query = "SELECT `id`, `name` FROM `cars` WHERE `id` = ?";
$stmt = $this->db->prepare($query);
$stmt->execute(array($id));
return $stmt->fetchAll();
}
Я же не знаю о существовании Классов EntityText, Price, MyDate, или их просто нет.
То есть модель возвращает "чистые" свойства, как id.
Где мне заменять свойства на объекты в дальнейшем?