ThinkPHP6.0使用twig作为模板引擎及自定义过滤器

简介: ThinkPHP6.0使用twig作为模板引擎及自定义过滤器

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

相关文章
|
JavaScript 前端开发
前端基础 - JQuery自定义校验器
前端基础 - JQuery自定义校验器
84 0
uniapp自定义过滤器filter.js
uniapp自定义过滤器filter.js
156 0
|
JavaScript 容器
【Vue源码解析】mustache模板引擎
【Vue源码解析】mustache模板引擎
86 0
|
5月前
|
Java C++ Python
django 模板 过滤器
django 模板 过滤器
|
6月前
|
Python
配置模板引擎
【8月更文挑战第6天】配置模板引擎。
59 7
|
6月前
|
缓存 PHP 开发者
Laravel 模板引擎深度解析
【8月更文挑战第31天】
56 0
|
JavaScript 前端开发
vue源码解析之mustache模板引擎
vue源码解析之mustache模板引擎
121 0
|
JavaScript PHP Python
PHP:使用rcrowe/twigbridge在Laravel中使用Twig模板引擎
PHP:使用rcrowe/twigbridge在Laravel中使用Twig模板引擎
103 0
|
JavaScript 前端开发 开发者
过滤器-Vue 中全局过滤器的基本使用|学习笔记
快速学习过滤器-Vue 中全局过滤器的基本使用
124 0
过滤器-Vue 中全局过滤器的基本使用|学习笔记
|
JavaScript 前端开发 开发者
过滤器-Vue中全局过滤器的基本使用|学习笔记
快速学习过滤器-Vue中全局过滤器的基本使用
274 0
过滤器-Vue中全局过滤器的基本使用|学习笔记