İlk gerçek anlamda güvenli ve
PHP için sezgisel şablonlar

Web Sitelerinin %27 'sinden Fazlası
Kritik Güvenlik Açıkları Var

Web sitelerindeki en yaygın kritik güvenlik açığı Siteler Arası Komut Dosyası Oluşturma'dır (XSS). Bir saldırganın, şüphelenmeyen bir kullanıcının tarayıcısında çalıştırılan bir sayfaya kötü amaçlı bir komut dosyası eklemesine olanak tanır. Sayfayı değiştirebilir, hassas bilgileri elde edebilir ve hatta kullanıcının kimliğini çalabilir.

Şablonlama sistemleri XSS'ye karşı savunmada başarısızdır. Latte, içeriğe duyarlı kaçış sayesinde etkili bir savunmaya sahip tek sistemdir.

İyi güvenlikli bir web sitesi isteyen herkes Latte kullanır.

Test: XSS güvenlik açığına karşı savunma yapabilir misiniz?

Kaynak: Acunetix Web Güvenlik Açığı Raporu

Birkaç farklı bağlamda $text değişkeninin otomatik kaçışına örnek (üst şablonu düzenleyebilirsiniz):

{var $text = "O'Neill"}
- metin içinde: <span>{$text}</span>
- öznitelik içinde: <span title='{$text}'></span>
- tırnak içine alınmamış öznitelikte: <span title={$text}></span>
- içinde JavaScript: <script>var = {$text}</script>
- Metin içinde: <span>O'Neill</span>
- öznitelik içinde: <span title='O&apos;Neill'></span>
- tırnak içine alınmamış öznitelikte: <span title="O&apos;Neill"></span>
- içinde JavaScript: <script>var = "O'Neill"</script>

İyi Bildiğiniz Bir Dil

Şaka yapmıyoruz, Latte dilini zaten biliyorsunuz. İçinde nasıl ifade yazılacağını zaten biliyorsunuz. Aslında, tıpkı PHP'de olduğu gibi yazılırlar. Yani Latte'de bir şeyleri nasıl yazacağınızı düşünmek zorunda değilsiniz. Belgelere bakmak zorunda değilsiniz. Başka bir dil öğrenmek zorunda değilsiniz. Sadece PHP'deki gibi yazarsınız. “Latte sözdizimi hakkında daha fazla bilgi için .[more-about]:/tr/syntax”

Döngü

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

Durum

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

İfadeler

{$product?->getDiscount()}

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

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

Latte vs Twig

Latte PHP tabanlıdır, Twig ise Python tabanlıdır. Latte'deki bir tasarımcı sürekli olarak iki farklı kural arasında geçiş yapmak zorunda değildir. Örneğin, şablonlardaki for person in people ile PHP'deki foreach $people as $person arasında. Nerede {% %} ve nerede {{ }} kullanacağını düşünmesi bile gerekmez, çünkü Latte'de tek bir {.. {...} sınırlayıcısı vardır.

Twig to Latte aracını deneyin.

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

Sizi Heyecanlandıran Klavye Tasarruf Modu

Kullanıcılar bu özelliği çok seviyor. Biz buna n:attributes diyoruz. Herhangi bir eşleştirilmiş etiket, örneğin {if} ... {/if} {if} ... {/if} {if} ... {/if} eşleştirilmiş etiketler n:if özniteliği olarak yazılabilir. Bu çok verimli bir gösterim sağlar. Öznitelikler ayrıca inner- ve tag- öneklerine sahip olabilir, bu durumda davranış, sırasıyla açılış ve bitiş HTML etiketleri olmak üzere öğenin içine uygulanır. “n-attributes hakkında daha fazla bilgi .[more-about]:/tr/syntax#toc-n-atributy”

n:attributes kullanımı:

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

Ve Onlar Olmadan da Aynı:

{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 Geliştiriciler

Düzenleme

Latte'nin NetBeans'te yerel desteği ve etiketler, filtreler ve PHP kodu öneren mükemmel bir PhpStorm eklentisi vardır.

Hata Ayıklama

İletişimde kalın. Tracy için eklenti her sayfada hangi şablonların ve hangi değişkenlerin işlendiğini size bildirir.

Yeni Nesil Şablonlar

Latte yeni nesil bir şablonlama sistemidir – HTML'yi anlar. Diğer sistemler yalnızca bir grup karakteri görürken, Latte HTML öğelerini görür.
Bağlama duyarlı kaçış ve n:attributes gibi iki şaşırtıcı özelliğe sahip olmasının nedeni budur.

Blade, Twig ve diğer sistemler şablonu nasıl görür?

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

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

Latte şablonu nasıl görüyor?

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

Düzenler ve Kalıtım

Gelişmiş şablon yeniden kullanım ve miras mekanizmaları üretkenliğinizi artırır çünkü her şablon yalnızca kendine özgü içeriği içerir ve tekrarlanan öğeler ve yapılar yeniden kullanılır.

Sandbox

Latte'nin kaputunun altında zırhlı bir sığınak var. Buna sandbox modu deniyor ve şablonları, kullanıcıların kendileri tarafından düzenlenenler gibi güvenilmeyen kaynaklardan izole ediyor. Onlara etiketlere, filtrelere, işlevlere, yöntemlere vb. sınırlı erişim sağlar. Nasıl çalışıyor?

Gerçekten Hızlı

Latte, siz çalışırken aynı anda şablonu en uygun PHP koduna kadar derler. Yani tamamen PHP oluşturmuşsunuz gibi hızlıdır. Derlenen PHP kodu açıktır ve hata ayıklaması kolaydır. Kaynak dosyayı her değiştirdiğimizde şablon otomatik olarak yeniden derlenir.

15 Yıldan Fazla

Latte'yi 15 yılı aşkın bir süredir geliştiriyoruz ve geliştirmeye devam ediyoruz! Sağladığımız kütüphaneler bu nedenle son derece olgun, kararlı ve yaygın olarak kullanılmaktadır. Bir dizi küresel şirket tarafından güveniliyorlar ve birçok önemli web sitesi bize güveniyor. Latte'yi kimler kullanıyor ve güveniyor?

Harika belgeler

Okuyucular, belgeleri açıklık ve bütünlük açısından övüyor. Keyifli okumalar dileriz.

Açık Kaynak

Latte açık kaynak kodludur ve kullanımı tamamen ücretsizdir.