gajus / brick
快速、易用且易于扩展的PHP模板系统。
Requires
- php: >=5.4
Requires (Dev)
- psr/log: 1.0.0
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-09-14 14:36:31 UTC
README
快速、易用且易于扩展的PHP模板系统。
- 纯PHP,无需学习新语法。
- 框架无关,可与任何项目一起使用。
关于Brick
Brick不是一个将模板作为字符串解析/解析的模板引擎(想想Twig)。
有些人可能还记得Chad Minick的文章 "Simple PHP Template Engine" (2009年;这已经过去那么久了?)。我已经使用了基于Chad文章中概述的原则的抽象变体很长时间。Brick是这个系列中的最后一款。我对API、继承规则、作用域定义感到满意;它是完美的!
我在几个自由职业项目中使用了Brick,并将其对其他人开放。我正在寻找那些对PHP中模板处理应该是什么样的人。欢迎贡献者和批评。
– http://www.reddit.com/r/PHP/comments/2nduuc/brick/
特性
- 处理找不到的模板文件
- 防止 目录遍历攻击(在模板包含级别上)
- 隔离模板执行作用域
以下示例以及包含的 单元测试 将让您开始。如果您觉得有需要澄清的部分,请 提出问题。
概述
系统
System
类负责模板解析和作用域管理。
公共方法
- setDirectory
- getDirectory
- setGlobals
- getGlobals
- setTemplateExtension
- getTemplateExtension
- view
- template
子系统
Subsystem
类负责模板解析和作用域管理。
使用 System
实例构建的视图将使用 Subsystem
生成内部视图。这限制了模板对控制全局和其他敏感变量的访问。
公共方法
模板
Template
类负责隔离模板执行作用域、提取作用域变量和捕获输出缓冲区。
公共方法
入门指南
生成视图
// Set the absolute path to the folder containing templates. $system = new \Gajus\Brick\System(__DIR__ . '/templates'); // Refer to the template using a path relative to the template folder. echo $system->view('foo');
模板文件必须有 ".php" 扩展名。在引用模板时,不要包含文件扩展名。您可以更改扩展名的名称
$system->setTemplateExtension('.tpl.php');
视图作用域
$system
是Subsystem
的一个实例。$globals
是由同一个System
实例产生的所有视图之间共享的变量。- 在生成视图时分配给视图的变量。
分配变量
作用域变量被提取到模板的执行上下文中,即模板可以将其作为常规变量访问。
// template_that_is_using_foo_variable.php $foo;
作用域变量在生成视图时分配。
$system->view('template_that_is_using_foo_variable', ['foo' => 'bar']); // 'bar'
全局变量
使用同一个 System
实例生成的视图可以访问 $globals
变量。
$system->getGlobals(['foo' => 'bar']); $system->view('template_that_is_using_foo_variable'); // 'bar'