Всем здравия! Продолжаем создавать наш движок на MVC и выводить страницы.

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

Всем здравия! Продолжаем создавать наш движок на MVC и выводить страницы.

В прошлом выпуске мы создали меню. Однако, у нас не работает логин. Все правильно, его же ещё нет) Давайте создадим его контроллер в папке controllers.

login.php

<?php
  class Login extends Controller {
   public function __construct() {
    parent::__construct();
    $this->view->render('login/index');
   }
  }
?>

Создадим в папке views папку login, а внутри index.php. Это его вид будет.

<?php require 'views/header.php'; ?>
  Страница логина...
<?php require 'views/footer.php'; ?>

Теперь разберемся с help.

Создадим папку help, а внутри index.php в папке views.

<?php require 'views/header.php'; ?>
Это help.
<?php require 'views/footer.php'; ?>

Теперь в контроллере help, в конструкторе, напишем следующее:

<?php
  // ...
  parent::__construct();
  $this->view->render('help/index');
  // ...
?>

Теперь и help выводится в том же стиле, что и другие страницы.

Однако, если вы сейчас введете

domain.local/help/other

То увидите, что стили не применились. Это связано с тем, что в таком случае у нас будут неверные пути до файлов стилей.

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

Во-первых, в виде мы все время везде подключаем шапку и футер сайта. Давайте от этого избавимся. В папках error, help, index, login в index.php удалите подключением шапки и футера сайта, оставьте только контент.

Теперь перейдем в файл View.php в папке libs и изменим немного метод render.

<?php
  public function render($name, $noInclude = false) {
   if($noInclude == true) {
    require 'views/'.$name.'.php';
   } else {
    require 'views/header.php';
    require 'views/'.$name.'.php';
    require 'views/footer.php';
   }
  }
?>

Мы добавили второй параметр, который отвечает за подключение файлов header.php и footer.php. Если он будет равен true, то они не будут подключаться, если же он будет равен false(по-умолчанию), то файлы шапки и футера будут подключены.

Теперь создадим в корне сайта папку config, а внутри файлы database.php и paths.php.

Пока что они будут пустыми.

В нашем главном файле index.php также подключите их.

// ...
require 'config/paths.php';
require 'config/database.php';
// ...

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