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

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

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

Откроем файл paths.txt и определим там нужные нам константы

<?php
  define('URL', 'http://engine.local/');
?>

Теперь изменим наш вид. Перейдем в файл header.php

//...
<link rel="stylesheet" href="<?php echo URL; ?>/public/css/default.css">
//...

И проделайте то же самое с подключением скриптов.

Теперь, если вы перейдете по ссылке

http://engine.local/help/other/

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

Откроем контроллер help.php

<?php
  public function __construct() {
   parent::__construct();
  }

  public function index() {
   $this->view->render('help/index');
  }
?>

Т.е. что мы сделали: мы скопировали абсолютно все, кроме вызова родительского конструктора из конструктора и вставили в новый метод - index. Сделайте то же самое со всеми другими контроллерами.

Теперь откроем файл bootstrap.php и там, после вызова контроллера Index, вставим вызов метода index.

// ... $controller = new Index(); $controller->index(); // ... Теперь здесь же изменим проверки // ...
$controller = new $url[0];

if(isset($url[2])) {
  if(method_exists($controller, $url[1])) {
   $controller->{$url[1]}($url[2]);
  } else {
   echo 'Error!';
  }
} else {
  if(isset($url[1])) {
   $controller->{$url[1]}();
  } else {
   $controller->index();
  }
}
// ...

Откроем контроллер index.php

public function index() {
  echo 'INSIDE INDEX INDEX';
}

public function details() {
  $this->view->render('index/index');
}

Но у нас теперь возникла опять же проблема с путями при переходе по ссылкам. Добавьте перед ссылкой на страницу вывод константы URL.

<a href="<?php echo URL; ?>index"></a>

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