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

Les premiers templates vraiment sûrs et
intuitifs pour PHP

Plus de 27% des sites web ont
des vulnérabilités critiques

La vulnérabilité critique la plus courante des sites web est Cross-Site Scripting (XSS). Elle permet à un attaquant d'insérer un script malveillant dans une page tierce, qui s'exécute dans le navigateur d'un utilisateur peu méfiant. Il peut modifier la page, obtenir des informations sensibles ou même voler l'identité de l'utilisateur.

Les systèmes de templates échouent à se défendre contre XSS. Latte est le seul système doté d'une défense efficace, grâce à l'échappement contextuel.

Quiconque souhaite un site web bien sécurisé utilise Latte.

Quiz : pouvez-vous vous défendre contre la vulnérabilité XSS ?

Source des données : Acunetix Web Vulnerability Report

Exemple d'échappement automatique de la variable $text dans plusieurs contextes différents (vous pouvez modifier le template supérieur) :

{var $text = "O'Neill"}
- en texte: <span>{$text}</span>
- dans l'attribut: <span title={$text}></span>
- dans l'attribut sans guillemets: <span title={$text}></span>
- en JavaScript: <script>var = {$text}</script>
- en texte: <span>O'Neill</span>
- dans l'attribut: <span title='O&apos;Neill'></span>
- dans l'attribut sans guillemets: <span title="O&apos;Neill"></span>
- en JavaScript: <script>var = "O'Neill"</script>

Un langage que vous connaissez bien

Nous n'exagérons pas. Vous connaissez déjà vraiment le langage Latte. Vous savez déjà écrire des expressions dedans. Elles s'écrivent exactement comme en PHP. Vous n'avez donc pas à réfléchir à la manière d'écrire les choses en Latte. Vous n'avez pas besoin de chercher dans la documentation. Vous n'avez pas besoin d'apprendre un autre langage. Vous écrivez simplement comme en PHP. En savoir plus sur la syntaxe Latte

Boucle

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

Condition

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

Expressions

{$product?->getDiscount()}

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

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

Latte vs Twig

Latte est basé sur PHP, tandis que Twig est basé sur Python. Un designer en Latte n'a pas besoin de basculer constamment entre deux conventions différentes. Par exemple, entre for person in people dans les templates et foreach $people as $person en PHP. Il n'a même pas besoin de penser où utiliser {% %} et où utiliser {{ }}, car Latte a un seul délimiteur {...}.

Essayez l'outil de conversion des templates Twig vers 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>

Un mode économique qui vous ravira

Les utilisateurs adorent cette fonctionnalité. Nous l'appelons n:attributs. Chaque balise paire, telle que {if} ... {/if}, encapsulant un élément HTML, peut être écrite comme son attribut n:if. Vous obtenez ainsi une notation très économique. Les attributs peuvent également avoir les préfixes inner- et tag-, le comportement s'applique alors à l'intérieur de l'élément ou aux balises HTML ouvrante et fermante respectivement. En savoir plus sur les n:attributs

En utilisant les n:attributs :

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

Et la même chose sans eux :

{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 prend soin des développeurs

Édition

Latte a un support natif dans NetBeans et un excellent plugin pour PhpStorm qui suggère les balises, les filtres et le code PHP.

Débogage

Restez informé. Le plugin pour Tracy informe sur chaque page quels templates et quelles variables sont rendus.

Système de templates de nouvelle génération

Latte est un système de templates de nouvelle génération – il comprend le langage HTML. Là où d'autres systèmes ne voient qu'un tas de caractères, Latte voit des éléments HTML. C'est pourquoi il possède deux fonctionnalités étonnantes comme l'échappement contextuel et les n:attributs.

Comment Blade, Twig et d'autres systèmes voient le template

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

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

Comment Latte voit le 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>

Layouts et héritage

Des mécanismes sophistiqués de réutilisation et d'héritage des templates augmentent votre productivité, car chaque template ne contient que son contenu unique, et les éléments et structures répétés sont réutilisés.

Sandbox

Latte a un bunker blindé directement sous le capot. Il s'appelle le mode sandbox et isole les templates provenant de sources non fiables, comme ceux édités par les utilisateurs eux-mêmes. Il leur donne un accès limité aux balises, filtres, fonctions, méthodes, etc. Comment ça marche ?

Rapide comme le vent

Latte compile les templates en code PHP optimal à la volée. Il est donc tout aussi rapide que si vous écriviez du PHP pur. Le code compilé est clair et vous pouvez facilement le déboguer. Bien sûr, il est recompilé à chaque modification du template.

Plus de 18 ans de développement

Nous développons Latte depuis plus de 18 ans – et ce chiffre continue de croître ! Les bibliothèques que nous fournissons sont donc très matures, stables et largement utilisées. De nombreuses entreprises mondiales leur font confiance et de nombreux sites web importants dépendent de nous. Qui utilise et fait confiance à Latte ?

Excellente documentation

Latte dispose d'une documentation complète et claire. Les lecteurs la louent pour sa clarté et son actualité. Nous vous souhaitons une agréable lecture.

Open source

Latte est open source et vous pouvez l'utiliser entièrement gratuitement.