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

PHP için ilk gerçekten güvenli ve
sezgisel şablonlar

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

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

Şablon sistemleri XSS'e karşı savunmada başarısız olur. Latte, bağlama duyarlı kaçış sayesinde etkili bir savunmaya sahip tek sistemdir.

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

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

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

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

{var $text = "O'Neill"}
- metin içinde: <span>{$text}</span>
- nitelik içinde: <span title={$text}></span>
- tırnaksız nitelik içinde: <span title={$text}></span>
- JavaScript içinde: <script>var = {$text}</script>
- metin içinde: <span>O'Neill</span>
- nitelik içinde: <span title='O&apos;Neill'></span>
- tırnaksız nitelik içinde: <span title="O&apos;Neill"></span>
- JavaScript içinde: <script>var = "O'Neill"</script>

İyi Bildiğiniz Bir Dil

Abartmıyoruz, Latte dilini zaten biliyorsunuz. İçinde ifadeler yazmayı zaten biliyorsunuz. Aslında, tam olarak PHP'deki gibi yazılırlar. Yani Latte'de bir şeylerin nasıl yazılacağını düşünmenize gerek yok. Dokümantasyona bakmanıza gerek yok. Başka bir dil öğrenmenize gerek yok. Sadece PHP'deki gibi yazarsınız. Latte sözdizimi hakkında daha fazla bilgi

Döngü

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

Koşul

{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'ye dayanırken, Twig Python'a dayanır. Latte'deki bir tasarımcı sürekli olarak iki farklı kural arasında geçiş yapmak zorunda kalmaz. Örneğin, şablonlardaki for person in people ile PHP'deki foreach $people as $person arasında. Latte'nin tek bir {...} sınırlayıcısı olduğu için {% %} ve {{ }} kullanım yerlerini bile düşünmek zorunda kalmaz.

Twig'den Latte'ye şablon dönüştürme 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ıracak Klavye Tasarrufu Modu

Kullanıcılar bu özelliği seviyor. Biz ona n:nitelikler diyoruz. Bir HTML öğesini saran {if} ... {/if} gibi herhangi bir eşleştirilmiş etiket, onun n:if niteliği olarak yazılabilir. Bu çok verimli bir gösterim sağlar. Nitelikler ayrıca inner- ve tag- öneklerine sahip olabilir, bu durumda davranış sırasıyla öğenin içine veya açılış ve kapanış HTML etiketlerine uygulanır. n-nitelikleri hakkında daha fazla bilgi

n:nitelikleri kullanarak:

<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 Onlarsız Aynısı:

{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 Geliştiricileri Şımartıyor

Düzenleme

Latte'nin NetBeans'te yerel desteği ve etiketleri, filtreleri ve PHP kodunu öneren PhpStorm için mükemmel bir eklentisi vardır.

Hata Ayıklama

İletişimde kalın. Tracy eklentisi, her sayfada hangi şablonların ve hangi değişkenlerin oluşturulduğunu size bildirir.

Yeni Nesil Şablonlar

Latte yeni nesil bir şablon sistemidir – HTML'yi anlar. Diğer sistemlerin yalnızca bir karakter yığını gördüğü yerde, Latte HTML öğelerini görür. Bu nedenle, bağlama duyarlı kaçış ve n:nitelikleri gibi iki harika özelliği vardır.

Blade, Twig ve diğer sistemlerin şablonu nasıl gördüğü

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

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

Latte'nin şablonu nasıl gördüğü

<!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 kalıtım mekanizmaları, her şablon yalnızca benzersiz içeriğini içerdiğinden ve tekrarlanan öğeler ve yapılar yeniden kullanıldığından üretkenliğinizi artırır.

Sandbox

Latte'nin kaputunun hemen altında zırhlı bir sığınağı vardır. Buna sandbox modu denir ve kullanıcıların kendilerinin düzenlediği gibi güvenilmeyen kaynaklardan gelen şablonları yalıtır. Onlara etiketlere, filtrelere, işlevlere, yöntemlere vb. sınırlı erişim sağlar. Nasıl çalışır?

Gerçekten Hızlı

Latte, siz çalışırken şablonu aynı anda en uygun PHP koduna derler. Yani saf PHP yazmışsınız gibi hızlıdır. Derlenen PHP kodu nettir ve kolayca hata ayıklanabilir. Şablon, kaynak dosyayı her değiştirdiğimizde otomatik olarak yeniden derlenir.

18 Yılı Aşkın Süredir

Latte'yi 18 yılı aşkın süredir geliştiriyoruz – ve hala devam ediyor! 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üvenilmektedirler ve birçok önemli web sitesi bize güvenmektedir. Latte'yi kim kullanıyor ve güveniyor?

Harika belgeler

Okuyucular belgeleri netliği ve eksiksizliği nedeniyle övüyorlar. Keyifli okumalar dileriz.

Açık Kaynak

Latte açık kaynaktır ve kullanımı tamamen ücretsizdir.