Mit Blade können Sie Befehle anpassen. Sie können die Direktivenmethode verwenden, um Befehle zu registrieren. Der folgende Artikel fasst hauptsächlich relevante Informationen zu benutzerdefinierten Vorlagenanweisungen im Laravel-Framework zusammen. Der Artikel stellt sie ausführlich anhand von Beispielcode vor. Schauen wir uns das gemeinsam an
🎜>Einführung
Ich lerne kürzlich Laravel. Eine Möglichkeit, Vorlagen im Laravel-Framework zu verwenden, ist das Controller-Layout. Normalerweise schreiben wir es in der Ansichtsvorlage Complex Die Logik sieht chaotisch aus, daher kann die Verwendung benutzerdefinierter Vorlagenanweisungen Ihre Ansichtslogik vereinfachen und eleganteren Code schreiben. Laravel Blade ist eine Vorlagen-Engine, die ihre spezielle Syntax in PHP und HTML kompiliert. Aufgrund ihrer speziellen Syntax sind Direktiven beschönigte Funktionen, hinter denen sich chaotischer Code verbirgt. Vorlagen enthalten eine große Anzahl integrierter Anweisungen, wie z. B. @foreach/@if/@section/@extends usw. Die integrierten Anweisungen reichen aus, um ein einfaches Projekt zu erstellen, wenn Sie jedoch wiederholt komplexe Funktionen in den Code schreiben , und passen Sie dann die Vorlage an. Direktiven können Ihnen dabei helfen, Ihre Ansichtsstruktur zu optimieren.
Im Folgenden gibt es nicht viel zu sagen, werfen wir einen Blick auf die ausführliche Einführung.
Passen Sie eine einfache Vorlagenanweisung an
Der $expression-Parameter ist optional
\Blade::directive('directive_name', function ($expression) {
return $expression;
});
Nach dem Login kopieren
Verwendung in der Ansichtsdemo
<p>@hello('World')</p>
Nach dem Login kopieren
Der Ort, an dem benutzerdefinierte Vorlagenanweisungen deklariert werden, AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
Blade::directive('hello', function ($expression) {
return "<?php echo 'Hello ' . {$expression}; ?>";
});
}
/**
* Register bindings in the container.
*
* @return void
*/
public function register()
{
//
}
}
Nach dem Login kopieren
Auf diese Weise definierte Anweisungen werden erfolgreich geladen und können in jeder Vorlage verwendet werden
Notizen
Der erste Punkt
Sie können nicht direkt auf mehrere in der benutzerdefinierten Anweisung übergebene Parameter zugreifen und müssen diese durchlaufen
<p>@greet('Hi', 'Hammad')</p>
\Blade::directive('hello', function ($expression) {
list($greet, $name) = explode(', ', $expression);
return "<?php echo {$greet} . ' ' . {$name}; ?>";
});
Nach dem Login kopieren
Wie array() list() ist dies keine Funktion, sondern eine Sprachstruktur
Zweiter Punkt
Denken Sie immer daran, die Ausgabe zu filtern, wenn Sie {{}} verwenden. Um zu verhindern, dass böswillige Benutzer JS-Code in die Site einfügen, müssen Sie HTML umgehen , Sie können Laravels eigene Funktion e() verwenden, die auch htmlentities() entspricht
\Blade::directive('hello', function ($expression) {
return "<?php echo 'Hello ' . e({$expression}); ?>";
});
Nach dem Login kopieren
Der dritte Punkt
Jedes Mal, wenn Sie eine benutzerdefinierte Vorlagenanweisung hinzufügen oder ändern, müssen Sie zuerst die zwischengespeicherte Ansichtsvorlage löschen. Sie können Clear Artisan verwenden
php artisan view:clear
Nach dem Login kopieren
Neue Funktionen von Laravel 5.5
Bei der Verwendung benutzerdefinierter Vorlagendirektiven handelt es sich bei den meisten nur um Bedingungen, die von uns die Registrierung von drei unabhängigen erfordern Anweisungen, if/else/endif. Laravel 5.5 unterstützt derzeit vereinfachte bedingte Anweisungen. Im folgenden Beispiel kann die Vorlage beispielsweise admin/else/endadmin
public function boot()
{
\Blade::if('admin', function () {
return auth()->check() && auth()->user()->isAdmin();
});
}
Nach dem Login kopieren
Zusammenfassung
Artikel, die Sie interessieren könnten:
Rekursive PHP-Implementierung der schnellen Sortierung Erklärung von Methodenbeispielen
Detaillierte Erläuterung des Methoden-Tutorials für die Git-Bereitstellung in PHP
Erklärung des von implementierten binären Suchalgorithmus PHP
Das obige ist der detaillierte Inhalt vonZusammenfassung der benutzerdefinierten Vorlagendirektiven im Laravel-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!