Представления в MVC в PHP

Давайте теперь добавим нашим действиям представления. По правилам нашего фреймворка представления хранятся в папке /project/views/.

Кроме того, в нашем фреймворке действует соглашение: имя файла с представлением должно совпадать с именем действия и размещаться в папке с таким же названием, как имя контроллера. Например, если у нас есть контроллер PageController, то все его представления следует хранить в папке /project/views/page/. Сам файл представления должен иметь расширение .php. К примеру, если в контроллере PageController будет действие act, то его представление следует размещать в /project/views/page/act.php.

Для того, чтобы задать представление какому-нибудь действию, это действие должно вызвать метод render, передав ему параметром имя представления. Имя представления должно состоять из имени контроллера с маленькой буквы, после которого через / будет записано имя действия.

Метод render не нужно реализовывать в контроллере - он наследуется от родительского класса Core\Controller. Кроме того, для корректной работы результат работы метода следует вернуть через return.

Итак, пусть у нас есть контроллер Page с действием act. Давайте привяжем к этому действию представление:

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    public function act()
    {
      return $this->render('page/act');
    }
  }
?>

Сделаем теперь файл с HTML кодом нашего представления:

/project/views/page/act.php<div>
  это представление
  действия act контроллера page
</div>
Задание 1

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