I primi modelli veramente sicuri e
intuitivi per PHP

Oltre il 27% dei siti web
ha vulnerabilità critiche

La vulnerabilità critica più comune nei siti web è il Cross-Site Scripting (XSS). Consente a un aggressore di inserire uno script dannoso in una pagina che viene eseguito nel browser di un utente ignaro. Può modificare la pagina, ottenere informazioni sensibili o addirittura rubare l'identità dell'utente.

I sistemi di template non riescono a difendersi dagli XSS. Latte è l'unico sistema con una difesa efficace, grazie all'escape sensibile al contesto.

Chiunque voglia un sito web ben protetto usa Latte.

Quiz: Sapete difendervi dalle vulnerabilità XSS?

Fonte: Rapporto sulle vulnerabilità del web di Acunetix

Esempio di escape automatico della variabile $text in diversi contesti (è possibile modificare il modello superiore):

{var $text = "O'Neill"}
- nel testo: <span>{$testo}</span>
- in attributo: <span title={$text}></span>
- in attributo non quotato: <span title={$text}></span>
- in JavaScript: <script>var = {$text}</script>
- nel testo: <span>O'Neill</span>
- nell'attributo: <span title='O&apos;Neill'></span>
- in attributo non quotato: <span title="O&apos;Neill"></span>
- in JavaScript: <script>var = "O'Neill"</script>

Una lingua che si conosce bene

Non stiamo scherzando, conoscete già la lingua del latte. Sapete già come scrivere le espressioni in esso. Infatti, sono scritte esattamente come in PHP. Quindi non dovete pensare a come scrivere le cose in Latte. Non dovete cercare nella documentazione. Non dovete imparare un altro linguaggio. Basta scrivere come in PHP. “Per saperne di più sulla sintassi di Latte .[more-about]:/it/syntax”

Anello

<ul>
    {foreach $users as $user}
        <li>{$user->name}</li>
    {/foreach}
</ul>

Condizione

{if $post->status === Status::Published}
    Read post
{elseif count($posts) > 0}
    See other posts
{/if}

Espressioni

{$product?->getDiscount()}

{$foo[0] + strlen($bar[Bar::Const])}

{array_filter($nums, fn($n) => $n < 100)}

Latte vs Twig

Latte è basato su PHP, mentre Twig è basato su Python. Un progettista in Latte non deve passare continuamente da una convenzione all'altra. Ad esempio, tra for person in people nei template e foreach $people as $person in PHP. Non deve nemmeno pensare a dove usare {% %} e dove usare {{ }}, perché Latte ha un delimitatore {...}.

Provare lo strumento Twig to Latte.

<ul>
    {foreach $foo->items as $item}
        <li>{$item->name}</li>
    {/foreach}
</ul>
<ul>
    {% for item in foo.items %}
        <li>{{ item.name }}</li>
    {% endfor %}
</ul>

La modalità di risparmio della tastiera che ti fa emozionare

Gli utenti amano questa funzione. La chiamiamo n:attributi. Qualsiasi tag accoppiato, come {if} ... {/if} {if} ... {/if} avvolge un elemento HTML può essere scritto come il suo attributo n:if. Questo rende la notazione molto efficiente. Gli attributi possono anche avere i prefissi inner- e tag-, quindi il comportamento si applica all'interno dell'elemento, rispettivamente ai tag HTML di apertura e di chiusura. “Per saperne di più sugli n-attributi .[more-about]:/it/syntax#toc-n-atributy”

Utilizzo di n:attributi:

<ul n:if="count($menu) > 1" class="menu">
    <li n:foreach="$menu as $item">
        <a n:tag-if="$item->href" href={$item->href}>
            {$item->caption}
        </a>
    </li>
</ul>

E lo stesso senza:

{if count($menu) > 1}
    <ul class="menu">
        {foreach $menu as $item}
            <li>
                {if $item->href}<a href={$item->href}>{/if}
                    {$item->caption}
                {if $item->href}</a>{/if}
            </li>
        {/foreach}
    </ul>
{/if}

Latte Pampers Sviluppatori

Modifica

Latte ha un supporto nativo in NetBeans e un eccellente plugin per PhpStorm che suggerisce tag, filtri e codice PHP.

Debug

Rimanere in contatto. Il plugin per Tracy informa su ogni pagina quali modelli e quali variabili vengono resi.

Modelli di nuova generazione

Latte è un sistema di template di nuova generazione: capisce l'HTML. Laddove gli altri sistemi vedono solo un mucchio di caratteri, Latte vede gli elementi HTML. Questo è il motivo per cui ha due caratteristiche sorprendenti come l 'escape sensibile al contesto e gli n:attributi.

Come Blade, Twig e altri sistemi vedono il template

░░░░░░░░░░░░░░░
░░░░░░
    ░░░░░░
        ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
        ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░@yield ('description')░
    ░░░░░░░
    ░░░░░░
        ░░░░░░░░░░░░░░░░░░░░░░░
            @foreach ($navigation as $item)
                ░░░░░░░░░░░░{{$item->link}}░{{$item->title}}░░░░░░░
            @endforeach
        ░░░░░

        ░░░░░░░░
            ░░░░░░░░░░░░{{ $appName }}░
        ░░░░░░░░░
    ░░░░░░░
░░░░░░░

Come Latte vede il template

<!DOCTYPE html>
<html>
    <head>
        <title>It's all about context</title>
        <meta name="description" content={include description}>
    </head>
    <body>
        <ul class="navigation">
            {foreach  $navigation as $item}
                <li><a href={$item->link}>{$item->title}</a></li>
            {/foreach}
        </ul>

        <script>
            var appName = {$appName};
        </script>
    </body>
</html>

Layout ed ereditarietà

I sofisticati meccanismi di riutilizzo ed ereditarietà dei modelli aumentano la produttività, perché ogni modello contiene solo il suo contenuto unico, mentre gli elementi e le strutture ripetute vengono riutilizzati.

Sandbox

Latte ha un bunker blindato sotto il cofano. Si chiama modalità Sandbox e isola i template da fonti non attendibili, come quelle modificate dagli utenti stessi. Dà loro un accesso limitato a tag, filtri, funzioni, metodi e così via. Come funziona?

È molto veloce

Latte compila il template fino al codice PHP ottimale nello stesso momento in cui lavorate. Quindi è veloce come se si creasse solo PHP. Il codice PHP compilato è chiaro e facile da debuggare. Il template viene ricompilato automaticamente ogni volta che si modifica il file sorgente.

Oltre 15 anni

Sviluppiamo Latte da oltre 15 anni, e non è finita qui! Le librerie che forniamo sono quindi altamente mature, stabili e ampiamente utilizzate. Sono fidate da numerose aziende globali e molti siti web importanti si affidano a noi. "Chi usa e si fida di Latte?:https://builtwith.nette.org

Ottima documentazione

I lettori lodano la documentazione per la sua chiarezza e completezza. Vi auguriamo una piacevole lettura.

Fonte aperta

Latte è open source e completamente gratuito.