Создание движка на 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 файлами, которые будут отвечать за конфигурацию. Но этим мы будем заниматься уже в следующей статье. Спасибо за внимание и удачи!
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.