PearCMS Docs v2.4
Документация / Шаблоны / View-движок и хелперы

View-движок и хелперы

View-движок PearCMS — это плоский PHP с маленьким препроцессором над ним. Никаких отдельных DSL для шаблонов: пишете обычный PHP, плюс сахарок для локализации и настроек.

Актуально для v2.4 Обновлено 1 июля 2026

View::render и поиск файлов #

Главная точка рендера — статический метод App\View\View::render($name, $data):

modules/Banner/Controllers/BannerListController.phpphp
return $this->layout(
    View::render('admin/banner/list', [
        'items' => $service->listAll(),
        'csrf'  => CSRF::generate(),
    ])
);

Путь до файла резолвится в зависимости от префикса:

  • admin/...templates/admin/...php
  • Без префикса → активная тема в templates/{theme}/
  • В каждом случае, если файла нет — фолбэк на default

Базовые хелперы #

Все они объявлены в app/helpers.php и доступны в любом шаблоне:

ХелперЧто делает
e($s)HTML-эскейп (ENT_QUOTES, UTF-8)
__('key.path', 'fallback')Перевод из lang/{locale}/{file}.php
module_can($mod, $action)Проверка флага через FlagsPanel модуля
module_require($mod, $action, $redirect)То же, но возвращает Response::redirect если нет прав
module($name)Включён ли модуль
notify($title, $body, $url, $type, $icon)Положить запись в notifications
logAction($action, $description)Записать действие в logs__actions

Шорткоды {lang, …} и {settings, …} #

Препроцессор View превращает короткие макросы в PHP-код перед компиляцией шаблона:

templates/Aurora/page.phpphp
<h1>{lang, 'pages.welcome'}</h1>
<p>{settings, 'site_description'}</p>

// разворачивается в:
<h1><?= e(__('pages.welcome')) ?></h1>
<p><?= e(setting('site_description')) ?></p>

Это сокращение для часто встречающихся вещей. Полный набор macros доступен и в обычном PHP — препроцессор просто экономит писанину.

Кеширование #

View считает SHA1-хеш от {шаблон + данные + локаль + тема + роль} и кладёт готовый HTML в storage/cache/views/<hash>.html. При следующем вызове, если ничего не поменялось — отдаёт из кеша без запуска PHP.

Скомпилированные шаблоны (после препроцессора) хранятся в storage/cache/views_compiled/.

Очистка кешаВ админке: Настройки → Очистить кеш (или endpoint /s-panel/settings/clear-cache). Также чистится при смене темы и выпуске обновления.