twig: Eine beliebte PHP -Template -Engine
Twig ist eine beliebte PHP -Template -Engine, die von Senssio Labs entwickelt wurde. Twig wirkt sowohl auf Frontend als auch auf das Backend des Projekts und kann aus zwei Perspektiven angesehen werden: Twig für Vorlagendesigner und Zweig für Entwickler. Twig verwendet ein Kernobjekt mit dem Namen Environment
, um Konfigurationen, Erweiterungen und Ladevorlagen aus einem Dateisystem oder anderswo zu laden. Twig unterstützt Nested Templates (Blöcke), vermeidet die Duplikation von Elementen in Vorlagen und kann kompilierte Vorlagen mit kompilierten Vorlagen durchführen, um nachfolgende Anforderungen zu beschleunigen. Twig unterstützt bedingte Aussagen, Schleifen und Filter, um die Anzeige von Informationen in Vorlagen zu steuern, und bietet Debugging -Funktionen, um alle Informationen zu Variablen für Vorlagen abzugeben.
Dieser Artikel wurde von Wern Ancheta überprüft. Vielen Dank an alle Peer -Rezensenten von SitePoint, um SitePoint -Inhalte in den Besten zu bringen!
Twig ist die Template -Engine von PHP. Aber ist PHP selbst nicht eine Template -Engine? Ja, nicht! Obwohl PHP ursprünglich als Template -Engine verwendet wurde, entwickelte es sich nicht, und obwohl wir sie immer noch als Vorlagenmotor verwenden können, welche Version von "Hello World" bevorzugen Sie:
<?php echo "<p> Hello " . $name . "</p>"; ?>
oder
<p>Hello {{ name }}</p>
PHP ist eine ausführliche Sprache, die beim Versuch, HTML -Inhalt auszugeben, verstärkt wird. Moderne Vorlagensysteme beseitigen die Teilwiedergabe und verleihen ihm einiges an Funktionen. Funktionen wie Sicherheits- und Debugging -Funktionen sind das Rückgrat moderner Vorlagenmotoren. Heute werden wir uns auf den Zweig konzentrieren.
twig ist eine Template -Engine, die von Senssio Labs (der Entwicklungsfirma von Blackfire und Symfony) erstellt wurde. Schauen wir uns die Hauptvorteile an und wie Sie es in Ihrem Projekt verwenden.
Installation
Es gibt zwei Möglichkeiten, Twig zu installieren. Wir können die auf ihrer Website verfügbaren TAR -Pakete oder Komponisten wie wir verwenden.
composer require twig/twig
Wir gehen davon aus, dass Sie eine Umgebung ausführen, in der PHP eingerichtet ist und der Komponist global installiert wird. Der beste Weg ist, Homestead verbessert zu verwenden. Sie können es in 5 Minuten auf der gleichen Maschine, die wir verwenden, beginnen, damit wir auf derselben Seite sein können. Wenn Sie mehr über die PHP -Umgebung erfahren möchten, haben wir hier ein hervorragendes bezahltes Buch zum Kauf.
Wir müssen etwas klären, bevor wir weitermachen können. Als Template -Engine wirkt Twig sowohl auf Frontend als auch im Backend des Projekts. So können wir den Zweig aus zwei verschiedenen Perspektiven betrachten: Zweig für Vorlagendesigner und Zweig für Entwickler. Einerseits bereiten wir alle Daten vor, die wir brauchen.
Grundnutzung
Um die grundlegende Verwendung von Zweig zu veranschaulichen, erstellen wir ein einfaches Projekt. Zunächst müssen wir den Zweig starten. Erstellen wir eine bootstrap.php
Datei mit dem folgenden Inhalt:
<?php echo "<p> Hello " . $name . "</p>"; ?>
twig verwendet ein Kernobjekt namens Environment
. Instanzen dieses Typs werden zum Speichern von Konfigurationen, Erweiterungen und Ladevorlagen von Dateisystemen oder anderen Standorten verwendet. Nach unseren Twig -Instanzstiefeln können wir eine index.php
-Datei erstellen, in der einige Daten geladen und an die Twig -Vorlage übergeben werden.
<p>Hello {{ name }}</p>
Dies ist ein einfaches Beispiel; Anschließend verwenden wir die render()
-Methode, die den Vorlagennamen (dies ist eine Datei im Vorlagenordner, die wir zuvor definiert haben) und die Daten, die wir an die Vorlage übergeben möchten, akzeptiert. Um unser Beispiel zu vervollständigen, gehen wir zu unserem /templates
-Fordner und erstellen Sie eine index.html
-Datei. Schauen wir uns zunächst die Vorlage selbst an.
composer require twig/twig
Öffnen Sie index.php
in Ihrem Browser (besuchen Sie localhost oder homestead.app, je nachdem, wie Sie den Host und den Server einrichten), sollte jetzt den folgenden Bildschirm anzeigen:
Aber gehen wir zurück und schauen uns unseren Vorlagencode genauer an. Es gibt zwei Arten von Separatoren: {{ ... }}
wird verwendet, um die Ergebnisse eines Ausdrucks oder einer Operation zu drucken, während {% ... %}
zum Ausführen von Anweisungen wie bedingten Anweisungen und Schleifen verwendet wird. Diese Grenzwerte sind die Hauptsprachstruktur des Zweigs, mit der Twig die Vorlage "informiert", die das Zweigelement rendern muss.
(Der folgende Inhalt ähnelt dem Originaltext, aber einige Anweisungen und Absätze wurden vorgenommen, und die Bildposition bleibt unverändert)
Layout
Um die duplizierenden Elemente (wie Header und Fußzeilen) in Vorlagen zu vermeiden, ermöglicht der Zweig uns, Vorlagen in Vorlagen zu nisten, die als Blöcke bezeichnet werden. Um dies zu veranschaulichen, trennen wir den tatsächlichen Inhalt von der HTML -Definition im Beispiel. Erstellen wir eine neue HTML -Datei und nennen Sie sie layout.html
:
<?php // 加载我们的自动加载器 require_once __DIR__.'/vendor/autoload.php'; // 指定我们的Twig模板位置 $loader = new Twig_Loader_Filesystem(__DIR__.'/templates'); // 实例化我们的Twig $twig = new Twig_Environment($loader);
Wir haben einen Block namens content
erstellt. Wir meinen, dass jede Vorlage, die sich von layout.html
erstreckt, einen content
-Block implementieren kann, der an diesem Ort angezeigt wird. Auf diese Weise können wir das Layout mehrmals wiederverwenden, ohne es neu zu schreiben. In diesem Fall sieht die Datei index.html
jetzt so aus:
<?php require_once __DIR__.'/bootstrap.php'; // 创建产品列表 $products = [ [ 'name' => 'Notebook', 'description' => 'Core i7', 'value' => 800.00, 'date_register' => '2017-06-22', ], [ 'name' => 'Mouse', 'description' => 'Razer', 'value' => 125.00, 'date_register' => '2017-10-25', ], [ 'name' => 'Keyboard', 'description' => 'Mechanical Keyboard', 'value' => 250.00, 'date_register' => '2017-06-23', ], ]; // 渲染我们的视图 echo $twig->render('index.html', ['products' => $products] );
Zweig ermöglicht es uns auch, nur einzelne Blöcke zu rendern. Dazu müssen wir zuerst die Vorlage laden und dann den Block rendern.
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <title>Twig Example</title> </head> <body> <table> border="1" style="width: 80%;"> <thead> <tr> <td>Product</td> <td>Description</td> <td>Value</td> <td>Date</td> </tr> </thead> <tbody> {% for product in products %} <tr> <td>{{ product.name }}</td> <td>{{ product.description }}</td> <td>{{ product.value }}</td> <td>{{ product.date_register|date("m/d/Y") }}</td> </tr> {% endfor %} </tbody> </table> </body> </html>
Zu diesem Zeitpunkt haben wir immer noch die gleiche Seite, aber wir reduzieren ihre Komplexität, indem wir die Kontextblöcke entkoppeln.
cache
Environment
Objekte können nicht nur zum Laden von Vorlagen verwendet werden. Wenn wir mit der Option cache
des zugehörigen Verzeichnisses bestehen, kann der Twig die kompilierte Vorlage zwischengespeichert und so vermeiden, dass die Vorlage in nachfolgenden Anforderungen analysiert wird. Die kompilierte Vorlage wird in dem von uns angegebenen Verzeichnis gespeichert. Beachten Sie, dass dies der Cache für die kompilierten Vorlagen ist, nicht der Cache für die ausgewerteten Vorlagen. Dies bedeutet, dass Twig die Vorlagendatei analysiert, kompiliert und speichert. Alle nachfolgenden Anfragen erfordern noch Bewertungsvorlagen, aber der erste Schritt ist bereits für Sie durchgeführt. Lassen Sie uns die Vorlage im Beispiel zwischenspeichern, indem wir die Datei bootstrap.php
bearbeiten:
<?php echo "<p> Hello " . $name . "</p>"; ?>
(Der folgende Inhalt ähnelt dem Originaltext, aber einige Anweisungen und Absätze wurden vorgenommen, und die Bildposition bleibt unverändert)
Zyklus
In unserem Beispiel haben wir gesehen, wie man mit Zweig schaufelt. Grundsätzlich verwenden wir das for
-Tag und weisen jedem Element im angegebenen Array einen Alias zu. In diesem Fall weisen wir dem products
-Array einen Alias zu. Danach können wir den product
-Operator verwenden, um auf alle Eigenschaften in jedem Array -Element zuzugreifen. Wir verwenden das .
-Tag, um das Ende der Schleife anzuzeigen. Wir können auch Nummern oder Buchstaben mit dem endfor
-Operator durchlaufen. Wie unten gezeigt: ..
<p>Hello {{ name }}</p>oder Brief:
composer require twig/twigDieser Operator ist nur der Syntaxzucker der
-Funktion und funktioniert genauso wie die native PHP range
-Funktion. Eine ebenso nützliche Option besteht darin, der Schleife Bedingungen hinzuzufügen. Mit Bedingungen können wir die Elemente zum ITERATE filtern. Angenommen, wir wollen alle Produkte mit einem Wert von weniger als 250 iterieren: range
<?php // 加载我们的自动加载器 require_once __DIR__.'/vendor/autoload.php'; // 指定我们的Twig模板位置 $loader = new Twig_Loader_Filesystem(__DIR__.'/templates'); // 实例化我们的Twig $twig = new Twig_Environment($loader);
bedingte Anweisung
twig liefert auch bedingte Aussagen in Form von, if
, elseif
und if not
-Tags. Genau wie in jeder Programmiersprache können wir diese Tags verwenden, um Bedingungen in Vorlagen zu filtern. Nehmen wir in unserem Beispiel an, wir möchten nur Produkte mit einem Wert über 500 anzeigen: else
<?php require_once __DIR__.'/bootstrap.php'; // 创建产品列表 $products = [ [ 'name' => 'Notebook', 'description' => 'Core i7', 'value' => 800.00, 'date_register' => '2017-06-22', ], [ 'name' => 'Mouse', 'description' => 'Razer', 'value' => 125.00, 'date_register' => '2017-10-25', ], [ 'name' => 'Keyboard', 'description' => 'Mechanical Keyboard', 'value' => 250.00, 'date_register' => '2017-06-23', ], ]; // 渲染我们的视图 echo $twig->render('index.html', ['products' => $products] );
filter
Filter ermöglichen es uns, die an die Vorlage übergebenen Informationen und das Format der angezeigten Informationen zu filtern. Schauen wir uns einige der am häufigsten verwendeten und wichtigen Filter an. Eine vollständige Liste der Zweigfilter finden Sie hier.Datum und
date_modify
filteren Format das Datum zum angegebenen Format. Wie wir im Beispiel sehen: date
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <title>Twig Example</title> </head> <body> <table> border="1" style="width: 80%;"> <thead> <tr> <td>Product</td> <td>Description</td> <td>Value</td> <td>Date</td> </tr> </thead> <tbody> {% for product in products %} <tr> <td>{{ product.name }}</td> <td>{{ product.description }}</td> <td>{{ product.value }}</td> <td>{{ product.date_register|date("m/d/Y") }}</td> </tr> {% endfor %} </tbody> </table> </body> </html>Wir zeigen Termine im Format von Monat/Tag/Jahr an. Zusätzlich zum
-Filter können wir den date
-Filter verwenden, um das Datum mit dem date_modify
-Filter zu ändern. Wenn wir beispielsweise einen Tag zu einem Datum hinzufügen möchten, können wir Folgendes verwenden:
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <title>Tutorial Example</title> </head> <body> {% block content %} {% endblock %} </body> </html>
format
formatieren Sie die angegebene Zeichenfolge, indem Sie alle Platzhalter ersetzen. Zum Beispiel:
{% extends "layout.html" %} {% block content %} <table> border="1" style="width: 80%;"> <thead> <tr> <td>Product</td> <td>Description</td> <td>Value</td> <td>Date</td> </tr> </thead> <tbody> {% for product in products %} <tr> <td>{{ product.name }}</td> <td>{{ product.description }}</td> <td>{{ product.value }}</td> <td>{{ product.date_register|date("m/d/Y") }}</td> </tr> {% endfor %} </tbody> </table> {% endblock %}
striptags
striptags
Der Filter entfernt SGML/XML -Tags und ersetzt benachbarte Räume durch Leerzeichen:
<?php echo "<p> Hello " . $name . "</p>"; ?>
escape
escape
ist einer der wichtigsten Filter. Es filtert die Zeichenfolge, die sicher in die endgültige Ausgabe einfügt. Standardmäßig verwendet es die HTML -Escape -Richtlinie, also
<p>Hello {{ name }}</p>
äquivalent zu
composer require twig/twig
js
, css
, url
, html_attr
und
debugg
dump()
Schauen wir uns schließlich einen Blick auf das Debuggen an. Manchmal müssen wir auf alle Informationen der Vorlagenvariablen zugreifen. Dazu hat Twig eine Twig_Extension_Debug
-Funktion. Diese Funktion ist standardmäßig nicht verfügbar. Beim Erstellen einer Twig -Umgebung müssen wir die Erweiterung
<?php // 加载我们的自动加载器 require_once __DIR__.'/vendor/autoload.php'; // 指定我们的Twig模板位置 $loader = new Twig_Loader_Filesystem(__DIR__.'/templates'); // 实例化我们的Twig $twig = new Twig_Environment($loader);
dump()
Dieser Schritt ist notwendig, damit wir nicht versehentlich Debug -Informationen auf den Produktionsserver auslaufen. Sobald die Konfiguration abgeschlossen ist, verwenden wir einfach die Funktion
<?php require_once __DIR__.'/bootstrap.php'; // 创建产品列表 $products = [ [ 'name' => 'Notebook', 'description' => 'Core i7', 'value' => 800.00, 'date_register' => '2017-06-22', ], [ 'name' => 'Mouse', 'description' => 'Razer', 'value' => 125.00, 'date_register' => '2017-10-25', ], [ 'name' => 'Keyboard', 'description' => 'Mechanical Keyboard', 'value' => 250.00, 'date_register' => '2017-06-23', ], ]; // 渲染我们的视图 echo $twig->render('index.html', ['products' => $products] );
Schlussfolgerung
Ich hoffe, dieser Artikel bietet Ihnen eine solide Grundlage für Twig -Grundlagen und startet Ihr Projekt sofort! Wenn Sie einen tieferen Blick auf den Twig sehen möchten, bietet die offizielle Website eine sehr gute Dokumentation und Referenzen, die Sie überprüfen können. Verwenden Sie die Template Engine? Was denkst du über Zweig? Würden Sie es mit beliebten Alternativen wie Blade oder Smarty vergleichen?
(Der folgende Inhalt ist FAQ, der ursprüngliche Text wurde hier enthalten, hier weggelassen)
Das obige ist der detaillierte Inhalt vonZweig - die beliebteste eigenständige PHP -Template -Engine. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

PHP erleichtert es einfach, interaktive Webinhalte zu erstellen. 1) Generieren Sie Inhalte dynamisch, indem Sie HTML einbetten und in Echtzeit basierend auf Benutzereingaben oder Datenbankdaten anzeigen. 2) Verarbeitungsformularübermittlung und dynamische Ausgabe erzeugen, um sicherzustellen, dass HTMLSpecialChars zur Vorbeugung von XSS verwendet wird. 3) Verwenden Sie MySQL, um ein Benutzerregistrierungssystem zu erstellen und Anweisungen von Password_hash und Preprocessing vorzubereiten, um die Sicherheit zu verbessern. Durch die Beherrschung dieser Techniken wird die Effizienz der Webentwicklung verbessert.

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)