Представления в 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>
Проделайте описанные манипуляции, а затем обратитесь к нашему действию через адресную строку. Убедитесь, что в браузере появится текст из созданного вами представления.