phpsoftbox / view
Simple PHP view renderer for the PhpSoftBox framework
dev-master
2026-03-05 11:42 UTC
Requires
- php: ^8.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2026-03-05 11:42:27 UTC
README
Простой PHP‑рендерер шаблонов. Используется как универсальный viewer для страниц ошибок и для Inertia (через адаптер).
Оглавление
About
PhpSoftBox\View\PhpViewRenderer рендерит PHP‑шаблоны с данными, поддерживает базовый путь и общий набор данных, который добавляется в каждый шаблон.
Quick Start
use PhpSoftBox\View\PhpViewRenderer;
$renderer = new PhpViewRenderer(
basePath: __DIR__ . '/resources/views',
sharedData: [
'appName' => 'AppName',
],
);
echo $renderer->render('error.php', [
'status' => 500,
'message' => 'Ошибка сервера',
]);
Шаблоны
Шаблон — это обычный PHP/PHTML‑файл. Данные передаются как переменные.
/** @var string $message */
/** @var int $status */
?>
<h1><?= $status ?></h1>
<p><?= html($message) ?></p>
DTO-шаблоны
Можно передавать в render() не только массив, но и объект DTO. Тогда внутри шаблона $this — сам DTO:
final readonly class EmailConfirmView
{
public function __construct(
public int $status,
public string $message,
) {
}
}
$dto = new EmailConfirmView(200, 'Email подтвержден');
echo $renderer->render('email-confirm.phtml', $dto);
Шаблон:
<?php
/** @var EmailConfirmView $this */
?>
<h1><?= $this->status ?></h1>
<p><?= html($this->message) ?></p>
Helpers
В шаблонах доступны глобальные helper-функции:
html(mixed $value): string— экранирование вывода.raw(mixed $value): string— явный неэкранированный вывод для доверенного HTML.
Общие данные
Общие данные добавляются ко всем шаблонам и переопределяются локальными:
$renderer = new PhpViewRenderer(
basePath: __DIR__ . '/resources/views',
sharedData: [
'vite' => $vite,
],
);
echo $renderer->render('app.php', [
'page' => $page,
'rootId' => 'app',
]);