ganti / php-template-blocks
此包的最新版本(dev-master)没有可用的许可证信息。
简单的模板引擎,例如编译电子邮件
dev-master
2019-10-16 21:01 UTC
Requires
- php: >=5.5.0
- html2text/html2text: ^4.2
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-17 07:16:54 UTC
README
简单的模板类,例如用于电子邮件模板
功能
- 变量的替换/替换
- 使用条件 OR 或 AND 显示/隐藏内容块
- 使用一个模板文件输出文本为 HTML 或文本
用法
安装
composer require ganti/php-template-blocks
示例
<p> Hallo {{name}}</p> {{block:block1}} <p>This is block1, shown in HTML and text</p> {{endblock:block1}} {{block:block1_html}} <p>This is block1, shown only in HTML</p> {{endblock:block1_html}} {{block:block1_text}} <p>This is block1_text, shown only in text</p> {{endblock:block1_text}} {{block:and,block1,block2,block3}} <p>This is Block1,2and3, shown only if block1, block2 and block3 are true</p> {{endblock:and,block1,block2,block3}} {{block:and,block2_text,block3}} <p>This is Block2or3_text, shown only in text if block2 and block3 are true</p> {{endblock:or,block2_text,block3}}
$file = __DIR__.'/example.html'; $vars = array( 'name' => 'Hal', 'var2' => 'Foo', 'var3' => 'Foobar' ); $blocks = array('block1' => True, 'block2' => False, 'block3' => True ); $t = new phpTemplateBlocks($file = $file, $vars = $vars, $blocks = $blocks); $output = $t->getOutput(); echo $output;
输出为 HTML 或文本
$t->getOutput(); //Output as HTML $t->getOutput('html'); //Output as HTML $t->getOutputHTML(); //Output as HTML $t->getOutput('text'); //Output as text $t->getOutputText(); //Output as text
在创建实例后添加变量和块
$mt = new phpTemplateBlocks($file = $file); $mt->vars['var1'] = 'var1xxx'; $mt->blocks['block1'] = True;
变量替换
模板: This is a {{animal}}.
$t = new phpTemplateBlocks($file = $file); $t->vars['animal'] = 'dog';
输出
This is a dog.
显示/隐藏块
模板
{{block:block1}}
<p>This is block1</p>
{{endblock:block1}}
$t = new phpTemplateBlocks($file = $file); $t->blocks['block1'] = True;
输出
<p>This is block1</p>
组合块
组合块允许在任一键为 true 时显示一个块
模板
{{block:block2,block3}}
<p>This is Block2or3</p>
{{endblock:block2,block3}}
$mt = new mailTemplate($file = $file); $mt->blocks['block2'] = False; $mt->blocks['block3'] = True;
输出
<p>This is Block2or3</p>
条件 OR(默认)
{{block:or,block2,block3}}
<p>This is Block2or3, shown only in text if block2 or block3 are true</p>
{{endblock:or,block2,block3}}
条件 AND
{{block:and,block2_text,block3}}
<p>This is Block2and3_text, shown only in text if block2 and block3 are true</p>
{{endblock:and,block2_text,block3}}