Von Mohamed Nabil (https://github.com/phpmohamednabil/)!
[Stil] ist leicht eine winzige PHP -Template -Engine, die Sie für kleine Projekte oder Bildungszwecke verwenden können.
Spüren Sie die Kraft der Vorlagenmotoren großer Bibliotheken in Ihrem Code mit einfacher und flexibler Verwendung und wenig Code.
Installieren Sie den Komponisten https://github.com/composer/composer
Erstellen Sie in Ihrem Anwendungsordner einen Composer.json:
composer require php-mohamed-nabil/style
Erstellen Sie eine Stilinstanz, indem Sie ihn den Ordner übergeben, in dem sich Ihre Ansichtsdateien befinden, und einen Cache -Ordner. Rendern Sie eine Vorlage, indem Sie die Render -Methode aufrufen.
use Style Style ;
$ style = new Style ( ' template/ ' , ' template/temp/ ' );
$ style -> render ( ' page_sections ' ,[]); Sie können auch benutzerdefinierte Ausdrücke mit der Funktion addTempRole() hinzufügen:
$ style -> addTempRole ( ' test ' , ' ~ob ' , function ( $ capt ){
return $ capt [ 0 ]. ' ppppppppppppppppppoboobobo ' ;
});
$ style -> render ( ' page_sections ' ,[]);Auf diese Weise können Sie Folgendes in Ihrer Vorlage verwenden:
here the ppppppppp : ~ob
Sie können auch Extend -Ansichten und @Spread (Eltern_View_Name) verwenden und).
@spread('layout')Verwenden Sie auch @Sections @Addsection, um Daten von Child an übergeordnete Ansicht zu senden
<!DOCTYPE html >
< html >
< head >
< meta charset =" utf-8 " >
< meta name =" viewport " content =" width=device-width, initial-scale=1 " >
< title > layout page </ title >
</ head >
< body >
< p class =" yield " >
<!-- this will yield data and print it here form child view -->
@addsection('content')
</ p >
</ html > @spread('layout')
<!-- add data to the main view and render show it -->
@section('content')
My first paragraph in parent view
@endsectionSie können jetzt Daten von einer Ansicht an eine andere senden, da sie zusammengestellt werden und ein hartnäckiges Beispiel werden:
@hardcompile(test[] within h1:title data:"echo mt_rand(1,1000)")Ergebnisse in test.stl.php
<!DOCTYPE html >
< html >
< head >
< meta charset =" utf-8 " >
< meta name =" viewport " content =" width=device-width, initial-scale=1 " >
< title > Test </ title >
</ head >
< body >
< h1 class =" title " >
681 <!-- this a random number hardcoded by main view -->
</ h1 >
Sie können Daten an eine andere Ansicht wie folgt senden:
@hardcompile(test['name'= > $name,$title] before h1:title data:"echo mt_rand(1,1000)")Holen Sie sich eine andere Ansicht in der Anzeige -Seite enthalten
@display('main',['data'= > $data])In Tempaltes
< div class ="" >
@foreach($users as $user)
{$user- > username}
@endforeach
</ div > Sie können jetzt ein Formular mit den Eingabedaten erstellen
[php]
print Style Style:: form ( ' / ' ,[
' method ' => ' post ' ,
' enctype ' => ' multipart/form-data ' ,
' id ' => ' first-form '
])-> formInput ( ' username ' ,[ ' class ' => ' form-control ' , ' type ' => ' text ' ])-> formInput ( ' password ' ,[ ' class ' => ' form-control ' , ' type ' => ' password ' ])-> formInput ( ' file ' ,[ ' class ' => ' form-input-file ' , ' type ' => ' file ' ])-> renderForm ();
[/php]wird ausgeben:
< form action =" / " method =" post " enctype =" multipart/form-data " id =" first-form " >
< input name =" username " class =" form-control " type =" text " >
< input name =" password " class =" form-control " type =" password " >
< input name =" file " class =" form-input-file " type =" file " >
</ form >{$var_name}Aus der Ansicht wie Die können Sie @backwithFalse verwenden. Es wird nur konvertiert, um False zurückzugeben und aus dem Code einen Code oder HTML zu beenden, nachdem er nicht ausgeführt wird
Ohne Einheiten zu stoppen, können Sie den HTML -Code ausdrucken, der ihm den Hauptgrund dafür entgeht, wenn Sie einen Post -Inhalt anzeigen möchten oder einen Block von HTML -Code haben, der von Browser angezeigt und bewirkt wird.
< div class =" blog-post-content " >
{@$posts- > post_content@}
</ div > | Ausdruck | Beschreibung |
|---|---|
{$var} | zum Drucken der variablen VAR mit Flucht gegen XSS |
{%$var%} | Drucken von VAR oder einer String, die es entkommt oder filtert |
{@$var@} | Drucken var oder eine Zeichenfolge, ohne ihm zu entkommen oder zu filtern |
{%var='name'} | Definieren Sie eine Variable in der Ansicht: $ var = 'Name' ' |
{%func echo ucfirst($var)%} | Führen Sie die Funktion aus oder echo es . Das Echo -Wort ist optional, wenn Sie die Funktion wiederholen möchten |
[comment]ww [/comment] | irgendetwas dazwischen wird nicht zusammengesetzt |
[php] var_dump($arr); [/php] | Schreiben Sie PHP -Code |
{%if $var>0%} | Definieren Sie, ob Aussagen |
{%else%},{%elseif%} and {%endif%} | Definieren Sie unter anderem oder sonstige Aussagen und Sie können die Aussage von Endif verwenden, um die Aussage zu beenden |
@addsection($name) | Wird in Layout- oder übergeordneter Ansicht verwendet, um Abschnittsinhalte zu implementieren, die später in der untergeordneten Ansicht gedruckt werden |
@spread($name) | Erweitern Sie die Elternansicht in der Kinderansicht |
@section($name) | Beginnen Sie den Abschnitt in der Kinderansicht |
@endsection($name) | Beenden Sie den Abschnitt in der Kinderansicht |
@foeach | Starten Sie die für jede Schleife |
@endforeach | beenden Sie die für jede Schleife |
@for() | Starten Sie die für die Schleife |
@endfor | beenden Sie die für Schleife |
@while() | Beginnen Sie während der Aussage |
@endwhile | Ende während der Aussage |
@switch($var) | Starten Sie die Switch -Statement |
@case($name) | Fallbedingung innerhalb von Switch -Statement |
@break | Brechen Sie die Aussage oder die Schleife durch |
@continue | Setzen Sie die Aussage oder die Schleife fort |
@default | Standardbedingung innerhalb der Switch -Statement |
@backwithfalse | Es wird nur konvertiert, um False zurückzugeben und aus dem Code aus einen Code oder HTML zu beenden, nachdem er nicht ausgeführt wird |
@hardcompile(view_name[] before|after|within tagname:classname data:"php_code_here") | Harte Kompilien anderer Ansicht_Name und injizieren Sie Dateninhalte vor oder nach oder innerhalb von Tagname mit einem Klassennamen. Dadurch wird Daten zu einer anderen Ansicht zu jedem Exacute dieser Expertion gesendet |
Veröffentlicht unter der MIT -Lizenz.