Por Mohamed Nabil (https://github.com/phpmohamednabil/)!
[Estilo] é leve um pequeno mecanismo de modelo PHP que você pode usar para pequenos projetos ou fins educacionais.
Sinta o poder dos mecanismos de modelo de grandes bibliotecas em seu código com uso simples e flexível e pequeno código.
Instale o compositor https://github.com/composer/composer
Crie um composer.json dentro da pasta do aplicativo:
composer require php-mohamed-nabil/style
Crie uma instância de estilo passando a pasta onde seus arquivos de exibição estão localizados e uma pasta de cache. Renderizar um modelo chamando o método renderizado.
use Style Style ;
$ style = new Style ( ' template/ ' , ' template/temp/ ' );
$ style -> render ( ' page_sections ' ,[]); Você também pode adicionar expressões personalizadas usando a função addTempRole() :
$ style -> addTempRole ( ' test ' , ' ~ob ' , function ( $ capt ){
return $ capt [ 0 ]. ' ppppppppppppppppppoboobobo ' ;
});
$ style -> render ( ' page_sections ' ,[]);Que permite que você use o seguinte em seu modelo:
here the ppppppppp : ~ob
Você também pode usar as visualizações Extend e usando @spread (parent_view_name)
@spread('layout')Usando também @Sections @Addsection para enviar dados de visualização filho para pai
<!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
@endsectionAgora você pode enviar dados de uma visualização para outra, pois serão compilados e com codificação.
@hardcompile(test[] within h1:title data:"echo mt_rand(1,1000)")Resultados em 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 >
Você pode enviar dados para outra visão assim:
@hardcompile(test['name'= > $name,$title] before h1:title data:"echo mt_rand(1,1000)")Obtenha outra visualização incluída na página de exibição
@display('main',['data'= > $data])em Tempaltes
< div class ="" >
@foreach($users as $user)
{$user- > username}
@endforeach
</ div > Agora você pode criar formulário com seus dados de entrada
[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]será lançado:
< 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 visualização como die você pode usar @backwithfalse, ele é apenas convertido para retornar false e sair do código de qualquer código ou html depois que não será executado
Sem interromper as entidades, você pode imprimir o código HTML com escapar do motivo principal, se quiser mostrar um conteúdo de postagem ou tiver um bloco de código HTML a ser aparecendo e efetuado pelo navegador que você pode usar {@$ post@} como um expple:
< div class =" blog-post-content " >
{@$posts- > post_content@}
</ div > | Expressão | Descrição |
|---|---|
{$var} | Para imprimir a variável var de escapar contra o XSS |
{%$var%} | imprimir var ou qualquer string escapando ou filtrando -a |
{@$var@} | imprimir var ou qualquer string sem escapar ou filtrá -la |
{%var='name'} | Defina uma variável dentro da exibição: $ var = 'nome' |
{%func echo ucfirst($var)%} | executar a função ou ecoar ecoar a palavra é opcional se você quiser ecoar a função |
[comment]ww [/comment] | qualquer coisa no meio não será compilada |
[php] var_dump($arr); [/php] | Escreva o código PHP |
{%if $var>0%} | Defina se declaração |
{%else%},{%elseif%} and {%endif%} | Definir mais ou menos, e você pode usar a declaração endif para encerrar a declaração |
@addsection($name) | Usado no layout ou visualização dos pais para implementar o conteúdo da seção que será impresso posteriormente na visualização da criança |
@spread($name) | estender a visão dos pais na visualização da criança |
@section($name) | Inicie a seção em vista da criança |
@endsection($name) | encerrar a seção em vista da criança |
@foeach | Inicie o para cada loop |
@endforeach | termine o para cada loop |
@for() | Inicie o loop for |
@endfor | termine o loop for |
@while() | Comece enquanto declarava |
@endwhile | fim enquanto declaração |
@switch($var) | Inicie a declaração de switch |
@case($name) | Condição do caso Inside Switch Statment |
@break | quebrar a declaração ou o loop |
@continue | Continue a declaração ou o loop |
@default | Condição padrão Inside Switch Statment |
@backwithfalse | é apenas convertido para retornar false e sair do código de qualquer código ou html depois que não será executado |
@hardcompile(view_name[] before|after|within tagname:classname data:"php_code_here") | Hard compilar outros view_name e injetar conteúdo de dados antes ou depois ou dentro ou dentro do nome da tag que tem um nome de classe que enviará dados para outra visualização em todos os exacutos desta experiência |
publicado sob a licença do MIT.