Представления в MVC в PHP
Давайте теперь добавим нашим действиям представления.
По правилам нашего фреймворка представления
хранятся в папке /project/views/
.
Кроме того, в нашем фреймворке действует
соглашение: имя файла с представлением должно
совпадать с именем действия и размещаться
в папке с таким же названием, как имя контроллера.
Например, если у нас есть контроллер PageController
,
то все его представления следует хранить
в папке /project/views/page/
. Сам
файл представления должен иметь расширение
.php
. К примеру, если в контроллере
PageController
будет действие act
,
то его представление следует размещать в
/project/views/page/act.php
.
Для того, чтобы задать представление какому-нибудь
действию, это действие должно вызвать метод
render
, передав ему параметром имя
представления. Имя представления должно состоять
из имени контроллера с маленькой буквы, после
которого через /
будет записано имя
действия.
Метод render
не нужно реализовывать
в контроллере - он наследуется от родительского
класса Core\Controller
. Кроме того,
для корректной работы результат работы метода
следует вернуть через return
.
Итак, пусть у нас есть контроллер Page
с действием act
. Давайте привяжем
к этому действию представление:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act()
{
return $this->render('page/act');
}
}
?>
Сделаем теперь файл с HTML кодом нашего представления:
<div>
это представление
действия act контроллера page
</div>
Проделайте описанные манипуляции, а затем обратитесь к нашему действию через адресную строку. Убедитесь, что в браузере появится текст из созданного вами представления.