Style
1.0.0
由穆罕默德·纳比尔(Mohamed Nabil)(https://github.com/phpmohamednabil/)!
[样式]是轻巧的PHP模板引擎,您可以用于小型项目或教育用途。
使用简单且灵活的用法和少量代码,在代码中感受大型库中的模板引擎的功能。
安装作曲家https://github.com/composer/composer
在您的应用程序文件夹中创建一个composer.json:
composer require php-mohamed-nabil/style
通过将其传递给视图文件所在的文件夹和一个缓存文件夹来创建样式实例。通过调用渲染方法来渲染模板。
use Style Style ;
$ style = new Style ( ' template/ ' , ' template/temp/ ' );
$ style -> render ( ' page_sections ' ,[]);您还可以使用addTempRole()函数添加自定义表达式:
$ style -> addTempRole ( ' test ' , ' ~ob ' , function ( $ capt ){
return $ capt [ 0 ]. ' ppppppppppppppppppoboobobo ' ;
});
$ style -> render ( ' page_sections ' ,[]);这使您可以在模板中使用以下内容:
here the ppppppppp : ~ob
您还可以使用扩展视图并使用@spread(parent_view_name)
@spread('layout')另请使用@sections @AdDsection将数据从孩子发送到父级视图
<!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
@endsection现在,您可以将数据从一个视图发送到另一种视图,因为它将被编译和硬编码示例:
@hardcompile(test[] within h1:title data:"echo mt_rand(1,1000)")结果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 >
您可以这样将数据发送到其他视图:
@hardcompile(test['name'= > $name,$title] before h1:title data:"echo mt_rand(1,1000)")获取查看页面中包含的其他视图
@display('main',['data'= > $data])在tempaltes中
< div class ="" >
@foreach($users as $user)
{$user- > username}
@endforeach
</ div > 您现在可以使用其输入数据创建表单
[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]将输出:
< 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}视图之类的视图您可以使用@backwithfalse,它只是将其转换为返回false,并在无法执行的任何代码或HTML的代码中退出
如果您想显示帖子内容或具有浏览器显示的HTML代码块,则可以在不停止实体的情况下打印html代码逃脱它的主要原因,或者有一个html代码的块,您可以将{@$ post@$ post@}用作explample:
< div class =" blog-post-content " >
{@$posts- > post_content@}
</ div > | 表达 | 描述 |
|---|---|
{$var} | 用于打印变量var,逃脱XSS |
{%$var%} | 打印var或任何逃脱或过滤的字符串 |
{@$var@} | 打印var或任何字符串而无需逃脱或过滤 |
{%var='name'} | 在视图中定义一个变量: $ var ='name' |
{%func echo ucfirst($var)%} | 执行函数或回声,如果要回声,请回声单词是可选的 |
[comment]ww [/comment] | 介于两者之间的任何事情都不会遵守 |
[php] var_dump($arr); [/php] | 写PHP代码 |
{%if $var>0%} | 定义statment |
{%else%},{%elseif%} and {%endif%} | 定义其他或其他陈述,您可以使用Endif Statment结束陈述 |
@addsection($name) | 在布局或父视图中用于实现部分内容,这些内容将在以后在Child View中打印 |
@spread($name) | 在孩子视图中扩展父观点 |
@section($name) | 在儿童视图中启动该部分 |
@endsection($name) | 结束儿童视图中的部分 |
@foeach | 启动每个循环 |
@endforeach | 结束每个循环 |
@for() | 开始循环 |
@endfor | 结束循环 |
@while() | 在陈述时开始 |
@endwhile | 陈述时结束 |
@switch($var) | 开始开关陈述 |
@case($name) | 开关陈述内部的情况条件 |
@break | 打破陈述或循环 |
@continue | 继续陈述或循环 |
@default | 默认条件开关陈述 |
@backwithfalse | 它只是将其转换为返回false,并在未执行任何代码或HTML的代码中退出 |
@hardcompile(view_name[] before|after|within tagname:classname data:"php_code_here") | 硬编译其他view_name和具有类名称名称的其他view_name和注入数据内容,这将在此实验的每一个恶化中将数据发送到其他视图 |
根据MIT许可发布。