🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 介绍 这是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(); ~~~