Привет всем! Продолжаем создавать наш движок, и сегодня мы начнем работу с базой данных. Поехали.

Создание движка на MVC. Начинаем работу с базой данных.

Привет всем! Продолжаем создавать наш движок, и сегодня мы начнем работу с базой данных. Поехали.

Создадим файл Database.php в папке libs.

<?php
  class Database extends PDO {
   public function __construct() {
    parent::__construct('mysql:host=localhost;dbname=mvc', 'root', '');
   }
  }
?>

Здесь все понятно тем, кто знает ООП и PDO. Если же у вас есть с этим проблемы, прочитайте статьи про них на этом сайте.

В файле Model.php измените строчки

$this->db = new Database();

Создадим файл login_model.php в папке models.

<?php
  class Login_Model extends Model {
   public function test() {

   }
  }
?>

Перейдем в папку controllers, в файл login.php.

<?php
  function index() {
   require 'models/login_model.php';
   $model = new Login_Model();

   $this->view->render('login/index');
  }
?>

А в главном index.php подключим базу.

// ...
  require 'libs/View.php';
  require 'libs/Database.php';
  require 'config/paths.php';
// ...

Перейдем в phpmyadmin и создадим базу данных с именем mvc.

Пока оставим базу и перейдем в файл Controller.php

После создания объекта View пропишем следующее

<?php
  public function loadModel($name) {
   $path = 'models/'.$name.'_model.php';
   if(file_exists($path)) {
    require 'models/'.$name.'_model.php';
    $modelName = $name.'_Model';
    $this->model = new $modelName();
   }
  } ?>

Теперь откроем файл Bootstrap.php, найдем там строчку с созданием объекта контроллера и пропишем следующее

<?php // ...   $controller = new $url[0];   $controller->loadModel($url[0]); ?>

Сейчас у нас выскакивает ошибка из-за login_model.

Зайдите в файл контроллера login.php и удалите из метода index его подключение и создание объекта, чтобы избавиться от ошибки.

Перейдем в файл login_model.php и создадим конструктор. Метод test можно удалить, так как он нам больше не нужен.

<?php
  public function __construct() {
   echo 111;
  }
?>

Если вы теперь обновите страницу, то увидите, что все работает, и наши единички выводятся. Великолепно!

На этом мы заканчиваем, а в следующей статье мы продолжим работу над нашим движком.

Спасибо за внимание!