Las primeras plantillas para PHP
verdaderamente seguras e intuitivas

Más del 27% de los sitios web tienen
vulnerabilidades críticas

La vulnerabilidad crítica más común en los sitios web es Cross-Site Scripting (XSS). Permite a un atacante insertar un script malicioso en una página que se ejecuta en el navegador de un usuario desprevenido. Puede modificar la página, obtener información sensible o incluso robar la identidad del usuario.

Los sistemas de plantillas fallan en la defensa contra XSS. Latte es el único sistema con una defensa eficaz, gracias al llamado escapado sensible al contexto.

Quien quiera un sitio web bien seguro, usa Latte.

Cuestionario: ¿Puedes defenderte de la vulnerabilidad XSS?

Fuente de datos: Acunetix Web Vulnerability Report

Ejemplo de escapado automático de la variable $text en varios contextos diferentes (puedes editar la plantilla superior):

{var $text = "O'Neill"}
- en texto: <span>{$text}</span>
- en atributo: <span title={$text}></span>
- en atributo sin comillas: <span title={$text}></span>
- en JavaScript: <script>var = {$text}</script>
- en texto: <span>O'Neill</span>
- en atributo: <span title='O&apos;Neill'></span>
- en atributo sin comillas: <span title="O&apos;Neill"></span>
- en JavaScript: <script>var = "O'Neill"</script>

Un lenguaje que conoces bien

No exageramos. Realmente ya conoces el lenguaje Latte. Ya sabes escribir expresiones en él. Se escriben exactamente igual que en PHP. Así que no tienes que pensar en cómo se escribe algo en Latte. No tienes que buscar en la documentación. No tienes que aprender otro lenguaje. Simplemente escribes como en PHP. Más sobre la sintaxis de Latte

Bucle

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

Condición

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

Expresiones

{$product?->getDiscount()}

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

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

Latte vs Twig

Latte se basa en PHP, mientras que Twig se basa en Python. Un diseñador en Latte no tiene que cambiar constantemente entre dos convenciones diferentes. Por ejemplo, entre for person in people en plantillas y foreach $people as $person en PHP. Tampoco tiene que pensar dónde usar {% %} y dónde {{ }}, porque Latte tiene un delimitador {...}.

Prueba la herramienta para convertir plantillas Twig a 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 modo económico que te entusiasmará

A los usuarios les encanta esta característica. La llamamos n:attributes. Cualquier etiqueta emparejada, como {if} … {/if}, que envuelva un elemento HTML, se puede escribir como su atributo n:if. Esto logra una notación muy económica. Los atributos también pueden tener los prefijos inner- y tag-, entonces el comportamiento se aplica al interior del elemento o a las etiquetas HTML de apertura y cierre respectivamente. Más sobre n-attributes

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

Lo mismo sin ellos:

{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 mima a los desarrolladores

Edición

Latte tiene soporte nativo en NetBeans y un excelente plugin para PhpStorm que sugiere etiquetas, filtros y código PHP.

Depuración

Mantente siempre informado. El plugin para Tracy informa en cada página qué plantillas y qué variables se están renderizando.

Sistema de plantillas de nueva generación

Latte es un sistema de plantillas de nueva generación: entiende el lenguaje HTML. Donde otros sistemas solo ven un montón de caracteres, Latte ve elementos HTML. Por eso tiene dos características asombrosas, como el escapado sensible al contexto y los n:attributes.

Cómo ven la plantilla Blade, Twig y otros sistemas

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

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

Cómo ve la plantilla Latte

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

Los sofisticados mecanismos de reutilización y herencia de plantillas aumentan tu productividad, ya que cada plantilla contiene solo su contenido único y los elementos y estructuras repetidos se reutilizan.

Sandbox

Latte tiene un búnker blindado justo debajo del capó. Se llama modo sandbox y aísla las plantillas de fuentes no confiables, como las editadas por los propios usuarios. Les proporciona acceso limitado a etiquetas, filtros, funciones, métodos, etc. ¿Cómo funciona?

Rápido como el viento

Latte compila las plantillas en tiempo de ejecución a código PHP óptimo. Así que es exactamente tan rápido como si escribieras PHP puro. El código compilado es claro y puedes depurarlo fácilmente. Por supuesto, se recompila cada vez que se cambia la plantilla.

Más de 18 años de desarrollo

Hemos estado desarrollando Latte durante más de 18 años, ¡y la cifra sigue creciendo! Las bibliotecas que proporcionamos son, por lo tanto, muy maduras, estables y ampliamente utilizadas. Confían en ellas numerosas corporaciones globales y potencian muchos sitios web importantes. ¿Quién usa y confía en Latte?

Excelente documentación

Los lectores elogian la documentación por su claridad y exhaustividad. Le deseamos una agradable lectura.

Código abierto

Latte es de código abierto y puedes usarlo completamente gratis.