Views (Template-uri)
Leto folosește clasa View pentru randarea template-urilor. Suportă atât fișiere .php clasice, cât și template-uri .twig prin integrarea cu Twig.
Randarea unui view
use Leto\Views\View;
class HelloController
{
public function hello(): string
{
$view = new View('hello', [
'name' => 'World',
'items' => ['unu', 'doi', 'trei'],
]);
return $view->render();
}
}Constructorul primește numele fișierului (fără extensie), un array opțional de variabile, și opțional o listă de directoare în care să caute template-ul. Dacă fișierul nu e găsit, aruncă NotFoundException.
new View($numeFisier, $variabile, $directoare, $obligatoriu);Metode disponibile
| Metodă | Descriere |
|---|---|
render() | Randează template-ul și returnează output-ul |
assign($cheie, $valoare) | Setează o variabilă pentru template |
assigns($array) | Setează mai multe variabile deodată |
vars() | Returnează toate variabilele asignate |
e($string) | Escape HTML — echivalent cu htmlspecialchars() |
include($view, $assigns) | Include alt view din interiorul template-ului curent |
Template-uri Twig
Dacă ai instalat Twig (vine ca dependință a framework-ului), poți folosi fișiere .twig în loc de .php. View-ul detectează automat extensia și alege motorul de randare potrivit:
{# templates/hello.twig #}
<h1>Salut, {{ name }}!</h1>
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>HTML Helpers
Clasa Leto\Views\Html oferă o metodă statică simplă pentru generarea de link-uri:
use Leto\Views\Html;
echo Html::anchor('https://example.com', ['class' => 'btn']);
// Rezultat: <a href="https://example.com" class="btn">https://example.com</a>