Os primeiros modelos verdadeiramente seguros e intuitivos para PHP

Mais de 27% dos Websites
Possuem Vulnerabilidades Críticas

A vulnerabilidade crítica mais comum em websites é o Cross-Site Scripting (XSS). Ele permite que um atacante insira um script malicioso em uma página que executa no navegador de um usuário insuspeito. Ele pode modificar a página, obter informações sensíveis ou mesmo roubar a identidade do usuário.

Os sistemas de gabarito falham na defesa contra o XSS. Latte é o único sistema com uma defesa eficaz, graças a uma fuga sensível ao contexto.

Qualquer pessoa que queira um site bem seguro utiliza o Latte.

Questionário: Você consegue se defender contra a vulnerabilidade XSS?

Fonte: Relatório de Vulnerabilidade Web Acunetix

Exemplo de fuga automática da variável $text em vários contextos diferentes (você pode editar o modelo superior):

{var $text = "O'Neill"}
- em texto: <span>{$texto}</span>
- em atributo: <span title='{$text}'></span>
- em atributo não cotado: <span title={$text}></span>
- em JavaScript: <script>var = {$text}</script>
- em texto: <span>O'Neill</span>
- em atributo: <span title='O&apos;Neill'></span>
- em atributo não cotado: <span title="O&apos;Neill"></span>
- em JavaScript: <script>var = "O'Neill"</script>

Um idioma que você conhece bem

Não estamos brincando, você já conhece a língua latte. Você já sabe como escrever expressões nela. Na verdade, elas são escritas exatamente como em PHP. Portanto, você não precisa pensar em como escrever as coisas em Latte. Você não tem que procurar na documentação. Você não tem que aprender outra língua. Você só escreve como em PHP. “Mais sobre a sintaxe do Latte .[more-about]:/pt/syntax”.

Loop

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

Condição

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

Expressões

{$product?->getDiscount()}

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

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

Latte vs Twig

Latte é baseado em PHP, enquanto Twig é baseado em Python. Um designer em Latte não tem que alternar constantemente entre duas convenções diferentes. Por exemplo, entre for person in people em templates e foreach $people as $person pessoa em PHP. Ele nem precisa pensar em onde usar {% %} e onde usar {{ }}, porque Latte tem um delimitador {...}.

Experimente a ferramenta Twig to 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>

Modo de salvar o teclado que o deixa excitado

Os usuários adoram este recurso. Nós o chamamos de n:atributos. Qualquer tag emparelhada, como {if} ... {/if}.. {if} ... {/if} que envolve um elemento HTML pode ser escrito como seu atributo n:if. Isto faz com que a notação seja muito eficiente. Os atributos também podem ter prefixos inner- e tag-, então o comportamento se aplica ao interior do elemento respectivamente a abertura e a terminação das tags HTML. Mais sobre n-atributos.:/pt/syntax#toc-n-atributy

Usando n:atributos:

<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 o mesmo sem eles:

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

Desenvolvedores de Latte Pampers

Editando

Latte tem suporte nativo no NetBeans e um excelente plugin para PhpStorm que sugere tags, filtros e código PHP.

Depuração

Mantenha-se em contato. O plugin para Tracy informa em cada página quais os modelos e quais as variáveis que estão sendo renderizadas.

Modelos da próxima geração

O Latte é um sistema de templates de próxima geração – ele entende de HTML. Onde outros sistemas vêem apenas um monte de caracteres, o Latte vê elementos HTML. Esta é a razão pela qual ele tem duas características surpreendentes como escape sensível ao contexto e n:attributes.

Como Blade, Twig e outros sistemas vêem o modelo

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

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

Como Latte vê o modelo

<!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 e Herança

Mecanismos sofisticados de reutilização e herança de modelos aumentam sua produtividade porque cada modelo contém apenas seu conteúdo único, e elementos e estruturas repetidas são reutilizadas.

Sandbox

O Latte tem um bunker blindado bem embaixo do capô. É chamado de modo sandbox, e isola modelos de fontes não confiáveis, tais como os editados pelos próprios usuários. Ele lhes dá acesso limitado a tags, filtros, funções, métodos, etc. Como funciona?

É Realmente Rápido

O Latte compila o modelo até o código PHP ideal ao mesmo tempo em que você trabalha. Portanto, é tão rápido como se você criasse puramente PHP. O código PHP compilado é claro e fácil de ser depurado. O modelo é recompilado automaticamente cada vez que alteramos o arquivo fonte.

Mais de 15 anos

Temos desenvolvido o Latte há mais de 15 anos – e contando! As bibliotecas que fornecemos são, portanto, altamente maduras, estáveis e amplamente utilizadas. Elas contam com a confiança de uma série de corporações globais e muitos websites significativos confiam em nós. Quem usa e confia no Latte?

Ótima documentação

Os leitores elogiam a documentação por sua clareza e completude. Desejamos a você uma leitura agradável.

Código Aberto

O Latte é de código aberto e totalmente livre para uso.