Salt la conținut

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>