Die ersten wirklich sicheren und
intuitive Vorlagen für PHP

Über 27% der Websites
haben kritische Schwachstellen

Die häufigste kritische Sicherheitslücke in Websites ist Cross-Site Scripting (XSS). Es ermöglicht einem Angreifer, ein bösartiges Skript in eine Seite einzufügen, das im Browser eines ahnungslosen Benutzers ausgeführt wird. Es kann die Seite verändern, vertrauliche Informationen erhalten oder sogar die Identität des Benutzers stehlen.

Templating-Systeme bieten keinen Schutz vor XSS. Latte ist das einzige System, das dank kontextsensitivem Escaping einen wirksamen Schutz bietet.

Jeder, der eine gut gesicherte Website will, verwendet Latte.

Quiz: Können Sie eine XSS-Schwachstelle abwehren?

Quelle: Acunetix Web Vulnerability Report

Beispiel für das automatische Escaping der $text in verschiedenen Kontexten (Sie können die obere Vorlage bearbeiten):

{var $text = "O'Neill"}
- im Text: <span>{$text}</span>
- im Attribut: <span title={$text}></span>
- in unquotiertem Attribut: <span title={$text}></span>
- in JavaScript: <script>var = {$text}</script>
- im Text: <span>O'Neill</span>
- im Attribut: <span title='O&apos;Neill'></span>
- in unquotiertem Attribut: <span title="O&apos;Neill"></span>
- in JavaScript: <script>var = "O'Neill"</script>

Eine Sprache, die Sie gut kennen

Wir machen keine Witze, du kennst die Lattensprache bereits. Sie wissen bereits, wie man Ausdrücke in ihr schreibt. Sie sind sogar genau so geschrieben wie in PHP. Sie müssen also nicht darüber nachdenken, wie Sie etwas in Latte schreiben. Sie müssen nicht in der Dokumentation nachsehen. Sie müssen keine weitere Sprache lernen. Sie schreiben einfach wie in PHP. Mehr über die Latte-Syntax

Schleife

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

Bedingung

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

Ausdrücke

{$product?->getDiscount()}

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

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

Latte vs. Zweig

Latte basiert auf PHP, während Twig auf Python basiert. Ein Designer in Latte muss nicht ständig zwischen zwei verschiedenen Konventionen wechseln. Zum Beispiel zwischen for person in people in Templates und foreach $people as $person in PHP. Er muss nicht einmal darüber nachdenken, wo er {% %} und wo er {{ }} verwenden soll, denn Latte hat nur ein {...}.

Probieren Sie das Twig to Latte tool aus.

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

Tastatursparmodus, der Sie begeistern wird

Die Benutzer lieben diese Funktion. Wir nennen sie n:attributes. Alle gepaarten Tags, wie z.B. {if} ... {/if}.. {if} ... {/if} die ein HTML-Element umschließen, können als dessen n:if geschrieben werden. Dies sorgt für eine sehr effiziente Notation. Attribute können auch inner- und tag- Präfixe haben, dann gilt das Verhalten für das Innere des Elements bzw. die öffnenden und schließenden HTML-Tags. Mehr über n-Attribute

Verwendung von n:Attributen:

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

Und das Gleiche ohne sie:

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

Bearbeitung von

Latte bietet native Unterstützung in NetBeans und ein hervorragendes Plugin für PhpStorm, das Tags, Filter und PHP-Code vorschlägt.

Fehlersuche

Bleiben Sie auf dem Laufenden. Das Plugin für Tracy informiert Sie auf jeder Seite darüber, welche Vorlagen und welche Variablen gerendert werden.

Vorlagen der nächsten Generation

Latte ist ein Templating-System der nächsten Generation – es versteht HTML. Wo andere Systeme nur einen Haufen von Zeichen sehen, sieht Latte HTML-Elemente. Das ist der Grund, warum es zwei erstaunliche Funktionen wie kontextsensitives Escaping und n:attributes hat.

Wie Blade, Twig und andere Systeme die Vorlage sehen

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

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

Wie Latte die Vorlage sieht

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

Ausgefeilte Mechanismen zur Wiederverwendung und Vererbung von Vorlagen erhöhen Ihre Produktivität, da jede Vorlage nur ihren eigenen Inhalt enthält und wiederkehrende Elemente und Strukturen wiederverwendet werden.

Sandbox

Die Latte hat einen gepanzerten Bunker unter der Haube. Er nennt sich Sandbox-Modus und isoliert Vorlagen von nicht vertrauenswürdigen Quellen, wie z. B. solchen, die von Benutzern selbst bearbeitet werden. Er gibt ihnen begrenzten Zugriff auf Tags, Filter, Funktionen, Methoden usw. Wie funktioniert das?

Es ist wirklich schnell

Latte kompiliert die Vorlage in den optimalen PHP-Code, während Sie arbeiten. Es ist also so schnell, als ob Sie reinen PHP-Code erstellen würden. Der kompilierte PHP-Code ist übersichtlich und leicht zu debuggen. Die Vorlage wird automatisch neu kompiliert, wenn wir die Quelldatei ändern.

Über 15 Jahre

Wir entwickeln Latte schon seit über 15 Jahren – und es werden immer mehr! Die von uns bereitgestellten Bibliotheken sind daher sehr ausgereift, stabil und weit verbreitet. Zahlreiche globale Unternehmen vertrauen auf sie, und viele bedeutende Websites verlassen sich auf uns. Wer nutzt und vertraut Latte?

Großartige Dokumentation

Die Leser loben die Dokumentation für ihre Klarheit und Vollständigkeit. Wir wünschen Ihnen eine angenehme Lektüre.

Offener Quellcode

Latte ist quelloffen und völlig kostenlos zu verwenden.