# 介紹
這是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