@dev400

Базовая модель в MVC (php). Что именно она делает?

Что именно делает базовая модель в правильно написанном MVC приложении на php?

вот модель новостей
<?php
namespace App\Models;

use App\Core\Model;
use App\Core\Connection;

class News extends Model {

    public function allNews() {
        $stmt = Connection::con()->query("SELECT * FROM news");
        $stmt->setFetchMode(\PDO::FETCH_ASSOC);
        $data = $stmt->fetch();
        return $data;
    }

}


Как видите, юзается только класс с подключением к бд, и этого достаточно для данной выборки. Как можно грамотно применить базовую модель?
  • Вопрос задан
  • 620 просмотров
Решения вопроса 1
dmitriylanets
@dmitriylanets
веб-разработчик
что значит грамотно? раз вы наследуетесь от Model то явно часть функционала реализована там, как правило CRUD методы, и далее уже как вам нравится реализуйте функционал например так:
abstract class Model{
	
	protected $table;
	
	protected $key;
			
	function findAll(){
		return $this->fetch("SELECT * FROM `{$this->table}`");
	}
	
	function findById($id){
		return $this->fetch("SELECT * FROM `{$this->table}` WHERE {$this->key} = {$id}");
	}


	protected function fetch($query)
	{
		$stmt = Connection::con()->query($query);
        $stmt->setFetchMode(\PDO::FETCH_ASSOC);
        $data = $stmt->fetch();
        return $data;		
	}
	
}

class News extends Model {

	protected $table = 'news';
	
	protected $key = 'id';

	public function allNews() {
        if(!$rows = $this->findAll()){
		throw new \Exception('not find news');
		}
		return $rows;
    }

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы