Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der benutzerdefinierten Vorlagendirektiven im Laravel-Framework

Zusammenfassung der benutzerdefinierten Vorlagendirektiven im Laravel-Framework

jacklove
jackloveOriginal
2018-07-05 17:54:191493Durchsuche

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;
});

Verwendung in der Ansichtsdemo

<p>@hello(&#39;World&#39;)</p>

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(&#39;hello&#39;, function ($expression) {
   return "<?php echo &#39;Hello &#39; . {$expression}; ?>";
  });
 }
 /**
  * Register bindings in the container.
  *
  * @return void
  */
 public function register()
 {
  //
 }
}

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(&#39;Hi&#39;, &#39;Hammad&#39;)</p>
\Blade::directive(&#39;hello&#39;, function ($expression) {
 list($greet, $name) = explode(&#39;, &#39;, $expression);

 return "<?php echo {$greet} . &#39; &#39; . {$name}; ?>";
});

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(&#39;hello&#39;, function ($expression) {
 return "<?php echo &#39;Hello &#39; . e({$expression}); ?>";
});

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

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(&#39;admin&#39;, function () {
  return auth()->check() && auth()->user()->isAdmin();
 });
}

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn