Всем привет! Продолжаем строить собственное MVC приложение , и сегодня мы начнем заниматься выводом страниц.

Создание движка на MVC. Выводим страницы. Часть 1.

Всем привет! Продолжаем строить собственное MVC приложение, и сегодня мы начнем заниматься выводом страниц.

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

<?php
  class View {
   public function __construct() {
    echo 'Это вид';
   }
  }
?>

Теперь откроем наш главный файл index.php и подключим его.

require 'libs/View.php';

Открыв страницу, мы должны увидеть надпись "Это вид".

Теперь немного изменим наш класс, отвечающий за вид, добавив метод render, который будет заниматься выводом.

<?php
  class View {
   public function __construct() {
    echo 'Это вид';
   }

   public function render($name) {
    require 'views/'.$name.'.php';
   }
  }
?>

Теперь создадим папки index и error в папке views. Они будут отвечать за представление index страницы и страницы ошибок. В папке error создадим новый index.php файл и пропишем следующее

<?php require 'views/header.php'; ?>
Это страница ошибки!

Теперь создадим файл header.php в самой папке views с таким содержанием

<html>
Header
<body>

Перейдем в файл error.php, который находится в папке error и добавим в конструктор вызов метода render.

<?php
  public function __construct() {
   // код
   $this->view->render('error/index');
  }
?>

Теперь на странице мы увидим "Header Это страница ошибки!"

Давайте немного улучшим наш контроллер, добавив к нему перед вызовом метода render следующее:

<?php
  public function __construct() {
   // код
   $this->view->msg = 'Страницы не существует!';
   $this->view->render('error/index');
  }
?>

А теперь в файле index.php, который отвечает за вид ошибки, вместо нашей надписи "Это страница ошибки!" выведим то, что хранится в свойстве msg.

<?php require 'views/header.php'; ?>
<hr>
<?php echo $this->msg; ?>

Теперь нам вывелась наша надпись.

Давайте теперь создадим модель help_model.php в папке models.

<?php
  class Help_Model extends Model {
   public function __construct() {
    echo 'Модель help_model';
   }
  }
?>

Теперь откроем контроллер help.php из папки controllers и добавим вызов нашей модели

<?php
  class Help extends Controller {
   // код

   public function other($arg = false) {
    // код

    require 'models/help_model.php';
    $model = new Help_Model();
   }
  }
?>

Дальше нужно создать базовую модель. Для этого создайте файл model.php в папке libs.

<?php
  class Model {
   public function __construct() {
    // $this->database = new Database();
   }
  }
?>

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

Подключим нашу базовую модель в нашем главном файле index.php.

require 'libs/Bootstrap.php'; require 'libs/Controller.php'; require 'libs/model.php'; require 'libs/View.php';

Итак, на этом сегодня остановимся. Мы уже сделали некоторый вывод на страницу, а в следующих статьях продолжим это улучшать. Спасибо за внимание и удачного кодинга!