Primul sistem cu adevărat sigur și
intuitive pentru PHP

Peste 27% din site-urile web
au vulnerabilități critice

Cea mai frecventă vulnerabilitate critică a site-urilor web este Cross-Site Scripting (XSS). Aceasta permite unui atacator să insereze un script malițios într-o pagină care se execută în browserul unui utilizator neștiutor. Acesta poate modifica pagina, poate obține informații sensibile sau chiar poate fura identitatea utilizatorului.

Sistemele de creare de șabloane nu reușesc să se apere împotriva XSS. Latte este singurul sistem cu o apărare eficientă, datorită scăpării sensibile la context.

Oricine dorește un site web bine securizat folosește Latte.

Quiz: Vă puteți apăra împotriva vulnerabilității XSS?

Sursă: Raportul Acunetix Web Vulnerability Report

Exemplu de scăpare automată a variabilei $text în mai multe contexte diferite (puteți edita șablonul de sus):

{var $text = "O'Neill"}
- în text: <span>{$text}</span>
- în atribut: <span title={$text}></span>
- în atributul necotat: <span title={$text}></span>
- în JavaScript: <script>var = {$text}</script>
- în text: <span>O'Neill</span>
- în atribut: <span title='O&apos;Neill'></span>
- în atributul necotat: <span title="O&apos;Neill"></span>
- în JavaScript: <script>var = "O'Neill"</script>

O limbă pe care o cunoști bine

Nu glumim, cunoști deja limba Latte. Știți deja cum să scrieți expresii în ea. De fapt, acestea sunt scrise exact ca în PHP. Așa că nu trebuie să vă gândiți cum să scrieți lucruri în Latte. Nu trebuie să căutați în documentație. Nu trebuie să învățați un alt limbaj. Pur și simplu scrieți ca în PHP. Mai multe despre sintaxa Latte

Bucla

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

Condiție

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

Expresii

{$product?->getDiscount()}

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

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

Latte vs Twig

Latte se bazează pe PHP, în timp ce Twig se bazează pe Python. Un proiectant din Latte nu trebuie să treacă în mod constant între două convenții diferite. De exemplu, între for person in people în șabloane și foreach $people as $person în PHP. El nici măcar nu trebuie să se gândească unde să folosească {% %} și unde să folosească {{ }}, deoarece Latte are un singur delimitator {...}.

Încercați Twig to Latte tool.

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

Modul de economisire a tastaturii care te entuziasmează

Utilizatorii adoră această funcție. Noi o numim n:attributes. Orice etichete împerecheate, cum ar fi {if} ... {/if}. {if} ... {/if} care înfășoară un element HTML poate fi scris ca atribut n:if al acestuia. Acest lucru face ca notația să fie foarte eficientă. Atributele pot avea, de asemenea, prefixele inner- și tag-, atunci comportamentul se aplică în interiorul elementului, respectiv în tag-urile HTML de deschidere și de încheiere. Mai multe despre n-attributes

Utilizarea 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>

Și la fel fără ele:

{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 Dezvoltatori

Editare

Latte are suport nativ în NetBeans și un excelent plugin pentru PhpStorm care sugerează etichete, filtre și cod PHP.

Depanare

Rămâneți în contact. Plugin pentru Tracy vă informează pe fiecare pagină ce șabloane și ce variabile sunt redate.

Șabloane de generație următoare

Latte este un sistem de șabloane de generație următoare – înțelege HTML. În timp ce alte sisteme văd doar o grămadă de caractere, Latte vede elementele HTML. Acesta este motivul pentru care dispune de două caracteristici uimitoare, cum ar fi " context-sensitive escaping":/ro/safety-first#toc-context-aware-escaping și n:attributes.

Cum văd Blade, Twig și alte sisteme șablonul

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

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

Cum vede Latte șablonul

<!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>

Amenajări și moștenire

Mecanismele sofisticate de reutilizare și moștenire a șabloanelor vă sporesc productivitatea, deoarece fiecare șablon conține doar conținutul său unic, iar elementele și structurile repetate sunt reutilizate.

Sandbox

Latte are un buncăr blindat chiar sub capotă. Se numește modul sandbox și izolează șabloanele de sursele nesigure, cum ar fi cele editate chiar de către utilizatori. Le oferă acestora acces limitat la etichete, filtre, funcții, metode etc. Cum funcționează?

Este foarte rapid

Latte compilează șablonul în codul PHP optim în același timp cu munca dumneavoastră. Astfel, este la fel de rapid ca și cum ați fi creat pur PHP. Codul PHP compilat este clar și ușor de depanat. Șablonul este recompilat automat de fiecare dată când modificăm fișierul sursă.

Peste 15 ani

Dezvoltăm Latte de peste 15 ani – și încă mai mult! Prin urmare, bibliotecile pe care le furnizăm sunt foarte mature, stabile și utilizate pe scară largă. Ele sunt de încredere pentru o serie de corporații globale și multe site-uri web importante se bazează pe noi. Cine folosește și are încredere în Latte?

Documentație excelentă

Cititorii laudă documentația pentru claritate și exhaustivitate. Vă dorim o lectură plăcută.

Sursă deschisă

Latte este open source și este complet liber de utilizat.