ThinkPHP自带的模板引擎用起来很不顺手,好在找到了一个和Jinja2很类似的一个一个模板引擎Twig,可以集成到ThinkPHP中。
文档:
https://github.com/yunwuxin/think-twig
https://twig.symfony.com/doc/3.x/
安装
composer require yunwuxin/think-twig
修改配置config/view.php
<?php return [ // 模板引擎类型使用Think // 'type' => 'Think', 'type' => 'Twig', // 模板后缀(可以不修改,建议修改,IDE中有语法高亮提示) // 'view_suffix' => 'html', 'view_suffix' => 'twig', // 自定义过滤器 'filters' => config('twig_filters') // 其他配置项省略 ];
自定义过滤器
config/twig_filters.php
<?php // +---------------------------------------------------------------------- // | 自定义twig模板过滤器 // +---------------------------------------------------------------------- return [ // 处理静态文件url "make_static_url" => function ($url) { // 静态文件路径,处理开发、生产环境 $static_url = config('app.static_url'); // 应用版本配置, 处理静态文件缓存问题 $app_version = config('version.app_version'); return "$static_url$url?t=$app_version"; } ];
模板中使用自定义过滤器
<link href="{{ '/css/index.css' | make_static_url }}" rel="stylesheet