# 介绍
这是Twig模板引擎的文档。Twig是一款灵活、快速、安全的PHP模板引擎。
如果你接触过其他基于文本的模板语言,比如 Smarty、Django、或者Jinja,你便能轻松掌握Twig。它坚持PHP的原则,并为模板环境添加了有用的功能,使其同时保持对设计师和开发者友好。
Twig拥有以下关键特性:
-
快速:Twig将模板编译为纯粹的,最优化的PHP代码。它的开销与常规的PHP代码相比,已经降到了极低。
-
安全:Twig拥有沙盒模式,用于评估未受信任的模板代码。这使得Twig可以用于允许用户自行修改模板设计的应用程序中。
-
灵活:Twig由一个灵活的词法分析器和解析器驱动。这使得开发者可以自定义标签和过滤器,并创建自己的DSL。
Twig已被用于许多开源项目,比如Symfony, Drupal8, eZPublish,phpBB, Piwik, OroCRM;并且许多框架也支持它,例如Slim, Yii, Laravel, Codeigniter and Kohana — 就举这几个例子好了,有点多。
### 先决条件
Twig只要需要**PHP 5.2.7**才能运行。
### 安装
建议通过Composer来安装Twig:
~~~
composer require "twig/twig:~1.0"
~~~
> 要想了解更多其他安装方法,请阅读安装文档,它还解释了如何安装Twig C扩展。
### 基础的API用法
本节为你简要介绍Twig的PHP API。
~~~
require_once '/path/to/vendor/autoload.php';
$loader = new Twig_Loader_Array(array(
'index' => 'Hello {{ name }}!',
));
$twig = new Twig_Environment($loader);
echo $twig->render('index', array('name' => 'Fabien'));
~~~
Twig使用一个加载器loader(`Twig_Loader_Array`)来定位模板,以及一个环境变量environment(`Twig_Environment`)来存储配置信息。
其中, `render()` 方法通过其第一个参数载入模板,并通过第二个参数中的变量来渲染模板。
由于模板通常是存放在文件系统中的,Twig还有一个文件系统加载器:
~~~
$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
'cache' => '/path/to/compilation_cache',
));
echo $twig->render('index.html', array('name' => 'Fabien'));
~~~
注意:
> 如果你没有使用Composer,像下面这样使用Twig的内置自动加载器:
~~~
require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();
~~~
- 首页
- 目录
- 介绍
- 安装
- 面向模板设计师
- 面向开发者
- 扩展 Twig
- Twig的内部构建
- 弃用的特性
- 使用技巧
- 代码规范
- 标签 tags
- autoescape
- block
- do
- embed
- extends
- filter
- flush
- for
- from
- if
- import
- include
- macro
- sandbox
- set
- spaceless
- use
- verbatim
- 过滤器
- abs
- batch
- capitalize
- convert_encoding
- date
- date_modify
- default
- escape
- first
- format
- join
- json_encode
- keys
- last
- length
- lower
- merge
- nl2br
- number_format
- raw
- replace
- reverse
- round
- slice
- sort
- split
- striptags
- title
- trim
- upper
- url_encode
- 函数
- attribute
- block
- constant
- cycle
- date
- dump
- include
- max
- min
- parent
- random
- range
- source
- template_from_string
- 测试
- constant
- defined
- divisibleby
- empty
- even
- iterable
- null
- odd
- sameas