Par Mohamed Nabil (https://github.com/phpmohamednabil/)!
[Style] est léger un minuscule moteur de modèle PHP que vous pouvez utiliser pour de petits projets ou des fins éducatives.
Sentez la puissance des moteurs de modèle des grandes bibliothèques dans votre code avec une utilisation simple et flexible et un petit code.
Installez le compositeur https://github.com/composer/composer
Créez un composer.json dans votre dossier d'application:
composer require php-mohamed-nabil/style
Créez une instance de style en le faisant passer le dossier où se trouvent vos fichiers de vue et un dossier de cache. Rendez un modèle en appelant la méthode de rendu.
use Style Style ;
$ style = new Style ( ' template/ ' , ' template/temp/ ' );
$ style -> render ( ' page_sections ' ,[]); Vous pouvez également ajouter des expressions personnalisées à l'aide de la fonction addTempRole() :
$ style -> addTempRole ( ' test ' , ' ~ob ' , function ( $ capt ){
return $ capt [ 0 ]. ' ppppppppppppppppppoboobobo ' ;
});
$ style -> render ( ' page_sections ' ,[]);Ce qui vous permet d'utiliser ce qui suit dans votre modèle:
here the ppppppppp : ~ob
Vous pouvez également utiliser des vues Extende et utiliser @spread (parent_view_name)
@spread('layout')en utilisant aussi @Sections @Adddsection pour envoyer des données de l'enfant à la vue parent
<!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
@endsectionVous pouvez désormais envoyer des données d'une vue à une autre car elle sera compilée et codé en dur:
@hardcompile(test[] within h1:title data:"echo mt_rand(1,1000)")résultats dans 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 >
Vous pouvez envoyer des données à une autre vue comme celle-ci:
@hardcompile(test['name'= > $name,$title] before h1:title data:"echo mt_rand(1,1000)")Obtenez une autre vue incluse dans la page Affichage
@display('main',['data'= > $data])dans les tempaltes
< div class ="" >
@foreach($users as $user)
{$user- > username}
@endforeach
</ div > Vous pouvez maintenant créer une forme avec ses données d'entrée
[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]sortira:
< 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}de la vue comme Die, vous pouvez utiliser @backwithfalse Il est juste converti pour retourner false et sortir de code n'importe quel code ou HTML après qu'il ne sera pas exécuté
Sans arrêter les entités, vous pouvez imprimer le code HTML avec lui en échappant la raison principale si vous souhaitez afficher un contenu de publication ou dispose d'un bloc de code HTML à apparaître et à effectuer par le navigateur, vous pouvez utiliser {@ $ post @} en tant qu'expance:
< div class =" blog-post-content " >
{@$posts- > post_content@}
</ div > | Expression | Description |
|---|---|
{$var} | pour imprimer le VAR variable en échappant contre XSS |
{%$var%} | Impression var ou toute chaîne qui s'échappe ou filtrant |
{@$var@} | Impression var ou aucune chaîne sans l'échapper ni la filtrer |
{%var='name'} | Définissez une variable à l'intérieur de la vue: $ var = 'name' |
{%func echo ucfirst($var)%} | Exécuter la fonction ou écho, il écho au mot est facultatif si vous souhaitez faire écho à la fonction |
[comment]ww [/comment] | toute chose entre les deux ne sera pas compilée |
[php] var_dump($arr); [/php] | Écrire du code PHP |
{%if $var>0%} | Définir si la déclaration |
{%else%},{%elseif%} and {%endif%} | Définir Else Ol Elseif Statement et vous pouvez utiliser des déclarations enIF pour mettre fin à la déclaration |
@addsection($name) | Utilisé dans la mise en page ou la vue parent pour implémenter le contenu de la section qui sera imprimé plus tard dans la vue d'enfant |
@spread($name) | étendre la vue parent dans la vue de l'enfant |
@section($name) | Démarrez la section en vue de l'enfant |
@endsection($name) | terminer la section en vue de l'enfant |
@foeach | Démarrez la boucle pour chaque |
@endforeach | terminer la boucle pour chaque boucle |
@for() | Démarrez la boucle pour |
@endfor | terminer la boucle pour |
@while() | Commencez pendant la déclaration |
@endwhile | terminer pendant la déclaration |
@switch($var) | Démarrer la déclaration de commutateur |
@case($name) | État du boîtier à l'intérieur de l'interrupteur |
@break | briser la déclaration ou la boucle |
@continue | continuer la déclaration ou la boucle |
@default | État par défaut à l'intérieur de l'interruption de commutation |
@backwithfalse | Il est juste converti pour retourner false et sortir du code n'importe quel code ou HTML après qu'il ne sera pas exécuté |
@hardcompile(view_name[] before|after|within tagname:classname data:"php_code_here") | Compilation dure autre vue View_name et injecter du contenu de données avant ou après ou à l'intérieur de Tagname qui a un nom de classe, cela enverra des données à une autre vue sur chaque exact de cette expérience |
publié sous la licence MIT.