Το πρώτο πραγματικά ασφαλές και
διαισθητικά πρότυπα για PHP

Πάνω από το 27% των ιστοσελίδων
έχουν κρίσιμα τρωτά σημεία

Η πιο συνηθισμένη κρίσιμη ευπάθεια σε ιστότοπους είναι το Cross-Site Scripting (XSS). Επιτρέπει σε έναν εισβολέα να εισάγει ένα κακόβουλο σενάριο σε μια σελίδα που εκτελείται στο πρόγραμμα περιήγησης ενός ανυποψίαστου χρήστη. Μπορεί να τροποποιήσει τη σελίδα, να αποκτήσει ευαίσθητες πληροφορίες ή ακόμη και να υποκλέψει την ταυτότητα του χρήστη.

Τα συστήματα Templating αποτυγχάνουν να αμυνθούν έναντι του XSS. Το Latte είναι το μόνο σύστημα με αποτελεσματική άμυνα, χάρη στην διαφυγή με ευαισθησία περιβάλλοντος.

Όποιος θέλει έναν καλά ασφαλισμένο ιστότοπο χρησιμοποιεί το Latte.

Κουίζ: Μπορείτε να αμυνθείτε ενάντια στην ευπάθεια XSS;

Πηγή: Latte: Acunetix Web Vulnerability Report

Παράδειγμα αυτόματης διαφυγής της μεταβλητής $text σε διάφορα διαφορετικά πλαίσια (μπορείτε να επεξεργαστείτε το κορυφαίο πρότυπο):

{var $text = "O'Neill"}
- σε κείμενο: <span>{$text}</span>
- σε attribute: <span title={$text}></span>
- σε χαρακτηριστικό χωρίς εισαγωγικά: <span title={$text}></span>
- σε JavaScript: <script>var = {$text}</script>
- στο κείμενο: <span>O'Neill</span>
- σε attribute: <span title='O&apos;Neill'></span>
- σε μη παρατιθέμενο χαρακτηριστικό: <span title="O&apos;Neill"></span>
- c: <script>var = "O'Neill"</script>

Μια γλώσσα που γνωρίζεις καλά

Δεν αστειευόμαστε, γνωρίζετε ήδη τη γλώσσα του Latte. Ξέρετε ήδη πώς να γράφετε εκφράσεις σε αυτήν. Στην πραγματικότητα, γράφονται ακριβώς όπως και στην PHP. Έτσι, δεν χρειάζεται να σκεφτείτε πώς να γράψετε πράγματα στη Latte. Δεν χρειάζεται να ψάξετε στην τεκμηρίωση. Δεν χρειάζεται να μάθετε μια άλλη γλώσσα. Απλά γράφετε όπως στην PHP. Περισσότερα για το συντακτικό της Latte

Loop

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

Συνθήκη

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

Εκφράσεις

{$product?->getDiscount()}

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

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

Latte vs Twig

Το Latte βασίζεται στην PHP, ενώ το Twig βασίζεται στην Python. Ένας σχεδιαστής στο Latte δεν χρειάζεται να εναλλάσσεται συνεχώς μεταξύ δύο διαφορετικών συμβάσεων. Για παράδειγμα, μεταξύ της for person in people στα πρότυπα και της foreach $people as $person στην PHP. Δεν χρειάζεται καν να σκεφτεί πού να χρησιμοποιήσει {% %} και πού να χρησιμοποιήσει {{ }}, επειδή το Latte έχει ένα {...} οριοθέτη.

Δοκιμάστε το εργαλείο Twig to Latte tool.

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

Λειτουργία εξοικονόμησης πληκτρολογίου που σας ενθουσιάζει

Οι χρήστες λατρεύουν αυτή τη λειτουργία. Το ονομάζουμε n:attributes. Οποιεσδήποτε ζευγαρωμένες ετικέτες, όπως {if} ... {/if} {if} ... {/if} που περιβάλλουν ένα στοιχείο HTML μπορεί να γραφτεί ως το χαρακτηριστικό n:if. Αυτό καθιστά πολύ αποδοτική τη σημειογραφία. Τα χαρακτηριστικά μπορούν επίσης να έχουν πρόθεμα inner- και tag-, τότε η συμπεριφορά εφαρμόζεται στο εσωτερικό του στοιχείου αντίστοιχα στις ετικέτες HTML που ανοίγουν και τελειώνουν. Περισσότερα για τα n-attributes

Χρήση των 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>

Και το ίδιο χωρίς αυτά:

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

Επεξεργασία

Το Latte έχει εγγενή υποστήριξη στο NetBeans και ένα εξαιρετικό πρόσθετο για το PhpStorm που προτείνει ετικέτες, φίλτρα και κώδικα PHP.

Αποσφαλμάτωση

Μείνετε σε επαφή. Το plugin for Tracy σας ενημερώνει σε κάθε σελίδα ποια πρότυπα και ποιες μεταβλητές αποδίδονται.

Πρότυπα επόμενης γενιάς

Το Latte είναι ένα σύστημα δημιουργίας προτύπων επόμενης γενιάς – κατανοεί την HTML. Εκεί που τα άλλα συστήματα βλέπουν μόνο μια δέσμη χαρακτήρων, το Latte βλέπει στοιχεία HTML. Αυτός είναι ο λόγος για τον οποίο διαθέτει δύο καταπληκτικά χαρακτηριστικά όπως η context-sensitive escaping και τα n:attributes.

Πώς το Blade, το Twig και άλλα συστήματα βλέπουν το πρότυπο

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

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

Πώς βλέπει το πρότυπο το 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>

Διατάξεις και κληρονομικότητα

Οι εξελιγμένοι μηχανισμοί επαναχρησιμοποίησης και κληρονομικότητας προτύπων αυξάνουν την παραγωγικότητά σας, επειδή κάθε πρότυπο περιέχει μόνο το μοναδικό του περιεχόμενο και επαναλαμβανόμενα στοιχεία και δομές επαναχρησιμοποιούνται.

Sandbox

Το Latte διαθέτει ένα θωρακισμένο καταφύγιο ακριβώς κάτω από το καπό. Ονομάζεται λειτουργία sandbox και απομονώνει τα πρότυπα από μη αξιόπιστες πηγές, όπως αυτές που επεξεργάζονται οι ίδιοι οι χρήστες. Τους δίνει περιορισμένη πρόσβαση σε ετικέτες, φίλτρα, λειτουργίες, μεθόδους κ.λπ. Πώς λειτουργεί.

Είναι πραγματικά γρήγορο

Το Latte μεταγλωττίζει το πρότυπο στο βέλτιστο κώδικα PHP ταυτόχρονα με την εργασία σας. Έτσι, είναι τόσο γρήγορο όσο αν δημιουργούσατε αμιγώς PHP. Ο μεταγλωττισμένος κώδικας PHP είναι σαφής και εύκολος στην αποσφαλμάτωση. Το πρότυπο μεταγλωττίζεται αυτόματα εκ νέου κάθε φορά που αλλάζουμε το αρχείο πηγής.

Πάνω από 15 χρόνια

Αναπτύσσουμε τη Latte για πάνω από 15 χρόνια – και συνεχίζουμε! Οι βιβλιοθήκες που παρέχουμε είναι επομένως ιδιαίτερα ώριμες, σταθερές και ευρέως χρησιμοποιούμενες. Τις εμπιστεύονται πολλές παγκόσμιες εταιρείες και πολλοί σημαντικοί ιστότοποι βασίζονται σε εμάς. Ποιος χρησιμοποιεί και εμπιστεύεται τη Latte.

Μεγάλη τεκμηρίωση

Οι αναγνώστες επαινούν την τεκμηρίωση για τη σαφήνεια και την πληρότητα. Σας ευχόμαστε ευχάριστη ανάγνωση.

Ανοιχτός κώδικας

Το Latte είναι ανοιχτού κώδικα και εντελώς δωρεάν στη χρήση.