В прошлых видеоуроках мы рассмотрели основы модулей и маршрутизации. Однако наш первый контроллер возвращал только чистую строку. Давайте рассмотрим рендеринг представлений (view).
Рендеринг представления из действия контроллера
Для передачи параметров в рендерер представления, действие (action) контроллера возвращает PHP массив. Зарезервированный ключ $view содержит параметры для рендерера представления, например имя файла представления для рендеринга.
public function indexAction()
{
    return [ 
    '$view' => [
            'title' => 'TODO management',
            'name' => 'todo:views/admin/index.php'
        ],
        'message' => 'Hello how's it going?'
    ];
}
Отображенное представление может быть простым PHP шаблоном. Простые параметры (например, message) доступны как переменные PHP (например, $message).
<h3><?php echo $message; ?></h3>
Сокращение пути ресурсов
Вместо того чтобы ссылаться на полный путь файла, мы можем использовать сокращённый синтаксис. packages/pagekit/todo/views/admin/index.php превращается в todo:views/admin/index.php. Это быстрее печатать и проще читать.
Вы можете зарегистрировать сокращения с помощью целевого пути в вашем index.php. В нашем примере мы хотим указать todo: на текущий путь index.php.
'resources' => [
    'todo:' => ''
],
Конфигурация модуля
У модуля может быть конфигурационный массив, который содержит любые типы настроек. Мы можем использовать это как простое хранилище наших TODO элементов:
'config' => [
    'entries' => [
        ['message' => 'Buy milk.', 'done' => false], // ...
    ]
],
Из контроллера мы можем получить доступ к этому конфигу в качестве свойства объекта модуля:
src/Controller/TodoController.php:
use Pagekit\Application
// ...
$module = App::module('todo');
$config = $module->config;
// ...
Мы можем сохранять изменения конфига модуля в базу данных. Изменения из дефолтного конфига модуля сливаются с сохранёнными изменениями, так что мы всегда имеем валидную конфигурацию в контроллере.
// Изменяем конфиг модуля
App::config('todo')->set('entries', $entries);
			
						