Heim > Artikel > Backend-Entwicklung > Erstellen Sie ein PHP-Framework und eine Template-Engine
Tatsächlich gibt es im Internet viele Debatten darüber, ob PHP Template-Engines verwenden sollte. Hier sind einige Vorteile der Verwendung von Template-Engines.
Sicher, z. B. Standard-Escape-Ausgabe
Gute Lesbarkeit
Weitere Informationen zu verwandten Inhalten finden Sie in Zhihus Diskussion
Wie aussagekräftig ist die PHP-Template-Engine? ?
Warum macht ThinkPHP etwas Ähnliches wie eine Template-Engine in PHP? Auch Smarty? Wofür werden diese verwendet?
Bestimmen wir zunächst die Idee, welche Schreibmethode in der Vorlage verwendet werden soll, und definieren wir die folgenden einfachen Schreibmethoden.
Variablenwert ausgeben
{{ }} Der Rückgabewert des Ausdrucks wird automatisch an die PHP-Funktion „htmlentities“ zur Verarbeitung übergeben, um XSS-Angriffe zu verhindern.
Hello, {{ $name }}!
Gibt den Variablenwert ohne Escapezeichen aus
Hello, {!! $name !!}!
If-Ausdruck
If kann mit den Anweisungen @if, @elseif, @else und @endif erstellt werden .
@if (count($records) === 1) I have one record!@elseif (count($records) > 1) I have multiple records!@else I don't have any records!@endif
Schleife
@for ($i = 0; $i < 10; $i++) The current value is {{ $i }}@endfor@foreach ($users as $user) <p>This is user {{ $user->id }}</p>@endforeach@while (true) <p>I'm looping forever.</p>@endwhile
Andere Ansichten vorstellen
@include('view.name', ['some' => 'data'])
Im Moment reicht es im Grunde aus, so viele zu definieren. Wenn Sie besondere Bedürfnisse haben, können Sie diese selbst hinzufügen. Die Prinzipien sind im Grunde die gleichen. Wenn Sie einen schreiben können, können Sie auch die anderen schreiben.
Dann überlegen Sie, wie Sie damit umgehen sollen. Wir haben eine Schreibweise definiert, die PHP nicht erkennen kann. Wir müssen sie in etwas umwandeln, das PHP erkennen kann.
Wenn wir im einfachsten Beispiel einen Inhalt wie {{ $name }} erhalten, müssen wir ihn nur in umwandeln, damit wir ihn identifizieren und den entsprechenden Variablenwert ausgeben können.