Auto-gegenereerd via Reflection — blijft altijd in sync met src/.
TemplateNotFoundException
Framework\View\TemplateNotFoundException__construct(string $message = '', int $code = 0, ?Throwable $previous = NULL)View
Framework\View\ViewMinimale PHP-template-renderer. Vervangt het `ob_start() + require + ob_get_clean()`-
patroon met expliciete variabele-passing — geen "vergeten variabele = stille
Undefined-warning"-bugs meer.
$view = new View('/app/pages');
echo $view->render('admin/login', [
'error' => $error,
'csrfField' => $csrf->field(),
]);
Templates zijn gewone .php-bestanden onder de geconfigureerde basispath.
`'admin/login'` → `<basisPath>/admin/login.php`. Submappen mogen, maar de
resolved path moet binnen basisPath blijven (anti-traversal).
In het template zijn de keys uit `$data` beschikbaar als variabelen via
`extract()`. `$this` is **niet** beschikbaar — de template draait in een
gebonden-aan-null closure zodat 'ie niet bij de View-instance kan.
Geen layout-inheritance, geen sections, geen template-engine. Voor layouts:
compose expliciet door je template als variable mee te geven aan een
outer-template:
$page = $view->render('admin/login', ['error' => $error]);
$output = $view->render('admin/layout', ['title' => 'Login', 'content' => $page]);
__construct(string $basePath)2 public methods
exists(string $template): boolTest of een template-bestand bestaat.
render(string $template, object|array $data = array (
)): stringRender een template met de meegegeven data en geef de output terug.
`$data` kan een associative array zijn óf een (readonly) view-model-object —
publieke properties van het object worden als variabelen in de template
geëxporteerd.
ViewException
Framework\View\ViewException__construct(string $message = '', int $code = 0, ?Throwable $previous = NULL)