Blade-Syntax-Erweiterung

    Ich möchte meine kleine Bibliothek mit der Community teilen, die der Syntax der Laravel-Template-Engine Blade Steueranweisungen hinzufügt.

    Sofort ein kleines Beispiel wie es aussieht:

    • {{{ $item }}}

    Nach dem Treffen mit Angular.js schienen vertraute Augenmuster unlogisch und unangenehm. Ich wollte Tags und Attribute verwalten, anstatt HTML wie eine normale Zeichenfolge zu behandeln. Der Vorteil von Blade macht es einfach, die Funktionalität, die ich genommen habe, zu erweitern.

    Installation


    1. Fügen Sie Ihrem composer.json das Paket "sleeping-owl / blade-extended" hinzu.
    2. Fügen Sie den Dienstanbieter zu Ihrem "app / config / app.php" - "SleepingOwl \ BladeExtended \ BladeExtendedServiceProvider" hinzu.
    3. Die erweiterte Syntax steht Ihnen jetzt zur Verfügung.

    Wie funktioniert das?


    Die Bibliothek ist ganz einfach: Sie konvertiert lediglich Attribute in die richtige Blade-Syntax. Also zum Beispiel der Code:

    {{{ $item }}}

    wird besetzt mit:

    @if(test())@endif
    @foreach($items as $item)
    {{{ $item }}}
    @endforeach

    Bei Tag-Attributen sind die Dinge etwas komplizierter - hier wird der Helper verwendet, der das Attribut nur anzeigt, wenn es einen Wert enthält.

    Unterstützte Richtlinien


    bd-foreach , bd-inner-foreach
    Wiederholt das gesamte Tag (bd-foreach) oder den gesamten Inhalt des Tags (bd-inner-foreach) entsprechend den angegebenen Werten.

    bd-if
    Druckt ein Tag oder nicht, abhängig von der Bedingung.

    bd-class
    Fügt einem Element eine oder mehrere Klassen hinzu, Bedingungen können verwendet werden. Wenn für das Tag bereits ein Klassenattribut definiert ist, werden neue Klassen hinzugefügt.


    bd-attr-
    Funktioniert wie die bd-Klasse, unterstützt jedoch nicht mehrere Werte und das Hinzufügen zu einem vorhandenen Attribut.


    bd-yield , bd-include
    Diese Anweisungen fügen dem Tag-Body die entsprechenden Blade-Befehle hinzu.


    bd-section
    Frames das Tag im Blade-Bereich.



    Möchten Sie die Syntax erweitern?


    Die Funktionalität meiner Bibliothek, die die Funktionen von Blade erweitert, kann ebenfalls erweitert werden. Sie können Ihre zu verarbeitenden Attribute registrieren:

    BladeExtended::extend('bd-test', function (BladeExtended $bladeExtended, &$finded)
    {
      $bladeExtended->wrapOuterContent($finded, '@if(myCustomTest())', '@endif');
    });
    


    Quellen auf GitHub | Dokumentation und Beispiele

    Jetzt auch beliebt: