Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

I primi template per PHP davvero sicuri e
intuitivi

Oltre il 27% dei siti web
presenta vulnerabilità critiche

La vulnerabilità critica più comune nei siti web è il Cross-Site Scripting (XSS). Permette 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 persino rubare l'identità dell'utente.

I sistemi di template falliscono nella difesa contro XSS. Latte è l'unico sistema con una difesa efficace, grazie all'escaping sensibile al contesto.

Chiunque voglia un sito web ben protetto usa Latte.

Quiz: puoi difenderti dalla vulnerabilità XSS?

Fonte dati: Acunetix Web Vulnerability Report

Esempio di escaping automatico della variabile $text in diversi contesti (puoi modificare il template sopra):

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

Un linguaggio che conosci bene

Non stiamo scherzando. Conosci già il linguaggio Latte. Sai già come scrivere espressioni al suo interno. Infatti, si scrivono esattamente come in PHP. Quindi non devi pensare a come scrivere le cose in Latte. Non devi cercare nella documentazione. Non devi imparare un altro linguaggio. Scrivi semplicemente come in PHP. Maggiori informazioni sulla sintassi di Latte

Ciclo

<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 si basa su PHP, mentre Twig si basa su Python. Un designer in Latte non deve passare costantemente tra due convenzioni diverse. 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 solo delimitatore {...}.

Prova lo strumento per convertire i template Twig in 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>

Modalità di risparmio che ti entusiasmerà

Gli utenti adorano questa funzionalità. La chiamiamo n:attributes. Qualsiasi tag accoppiato, come {if} ... {/if}, che racchiude un elemento HTML può essere scritto come suo attributo n:if. Questo si traduce in una notazione molto efficiente. Gli attributi possono anche avere prefissi inner- e tag-, quindi il comportamento si applica rispettivamente all'interno dell'elemento o ai tag HTML di apertura e chiusura. Maggiori informazioni sugli n:attributes

Utilizzando gli n:attributes:

<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 di essi:

{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 coccola gli sviluppatori

Modifica

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

Debugging

Rimani sempre aggiornato. Il plugin per Tracy ti informa su ogni pagina quali template e quali variabili vengono resi.

Sistema di template di nuova generazione

Latte è un sistema di template di nuova generazione – comprende l'HTML. Dove altri sistemi vedono solo un mucchio di caratteri, Latte vede elementi HTML. Ecco perché ha due fantastiche funzionalità come l'escaping sensibile al contesto e gli n:attributes.

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à

Meccanismi sofisticati per il riutilizzo e l'ereditarietà dei template aumentano la tua produttività, poiché ogni template contiene solo il suo contenuto unico e gli elementi e le strutture ripetute vengono riutilizzati.

Sandbox

Latte ha un bunker corazzato proprio sotto il cofano. Si chiama modalità sandbox e isola i template da fonti non attendibili, come quelli modificati dagli utenti stessi. Fornisce loro un accesso limitato a tag, filtri, funzioni, metodi, ecc. Come funziona?

Veloce come il vento

Latte compila i template in codice PHP ottimale al volo. Quindi è veloce come se avessi scritto puro PHP. Il codice compilato è chiaro e facile da debuggare. Ovviamente, il template viene ricompilato automaticamente ogni volta che il file sorgente viene modificato.

Oltre 18 anni di sviluppo

Sviluppiamo Latte da oltre 18 anni – e continuiamo! Le librerie che forniamo sono quindi molto mature, stabili e ampiamente utilizzate. Sono affidabili per diverse aziende globali e alimentano molti siti web significativi. Chi usa e si fida di Latte?

Ottima documentazione

Latte è un sistema di template ben documentato. I lettori elogiano la documentazione per chiarezza e completezza. Vi auguriamo una piacevole lettura.

Open Source

Latte è open source e completamente gratuito da usare.