🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 使用Twig [Twig](http://twig.sensiolabs.org/)是一个灵活,快速,安全的PHP模板语言。它将模板编译成经过优化的原始PHP代码。Twig拥有一个Sandbox模型来检测不可信的模板代码。Twig由一个灵活的词法分析器和语法分析器组成,可以让开发人员定义自己的标签,过滤器并创建自己的DSL。出于很多大型框架(比如symfony)都默认的包含了twig模板引擎,我这儿也简单的介绍下,怎么在Idea framework中使用twig。 1.Composer安装twig ~~~ composer require twig/twig:~1.24.1 //当前最新版 ~~~ 2.公共控制器加载twig ~~~ <?php /** * 前台公共控制器 */ namespace app\home\controller; /** * Class Common * @package app\home\controller */ class Common { /** * 模板文件加载 * @param [type] $file 模板文件 * @return [type] [description] */ public function display($file) { \Twig_Autoloader::register(); $loader = new \Twig_Loader_Filesystem(APP_PATH . MODULE . '/view'); $twig = new \Twig_Environment($loader, array( 'cache' => APP_PATH . '/cache', )); $template=$twig->loadTemplate($file); $template->display($this->assign?$this->assign:''); } /** * 变量参数绑定 * @param [type] $var 变量 * @param [type] $value 值 * @return [type] [description] */ public function assign($var,$value=null) { if(is_array($var)) { foreach($var as $key => $val) { $this->assign[$key] = $val; } } else { $this->assign[$var] = $value; } } } ~~~ 3.子控制器使用twig ~~~ <?php /** * 首页控制器,继承公共控制器类 */ namespace app\home\controller; class Index extends Common { public function say(){ $info='PHPer'; $this->assign('info',$info); $this->display('default/index/index.html'); } } ~~~ 4.模板文件 路径:`application/home/view/default/index/index.html` ~~~ <!DOCTYPE html> <html> <head> <title>twig</title> </head> <body> 你好,{{ info }} </body> </html> ~~~