thinkphp5.1 - twig模板-全局变量
我们在定义 ccs 之类的静态文件的时候,经常会使用
<link rel="stylesheet" href="__ROOT__/static/css/bootstrap.css" />
定义个__ROOT__变量,然后全局替换调

1、如果使用默认模板,那直接在
自定义变量要去 config里的template.php 设置 假设你要 __ROOT__,
'tpl_replace_string' => [
'__ROOT__'=>'/static',
]
这样就引到 public/static 目录了

2、但是如果要使用 twig 模板引擎就不行了,那 twig 怎么处理呢
twig本身提供了addGlobal函数处理全局变量,我们看thinkphp的扩展
twig 的Twig.php中有个配置
// 模板引擎参数
protected $config = [
'view_base' => '',
// 模板起始路径
'view_path' => '',
// 模板文件后缀
'view_suffix' => 'twig',
// 模板文件名分隔符
'view_depr' => '/',
'cache_path' => '',
'strict_variables' => true,
'auto_add_function' => false,
'functions' => [],
'filters' => [],
'globals' => [],
'runtime' => []
];

然后看代码发现:
if (!empty($this->config['globals'])) {
foreach ($this->config['globals'] as $name => $global) {
$twig->addGlobal($name, $global);
}
},

所以我们只需要配置这个字段就行了,我们不需要在Twig.php中配置,这里的配置会和
config/template.php目录中的配置合并,而且config/template.php的配置优先,所以我们只需要
在config/template.php中配置,类似于这样
'globals'=>[
'__STATIC__'=>'/static'
]
就可以了。
3、然后我们在模板文件中怎么使用呢?
<link rel="stylesheet" type="text/css" href="{{ __STATIC__ }}/navigation.css" />

thinkphp5.1 - twig模板-全局变量的更多相关文章

  1. twig模板的进一步学习以及在symfony当中的使用

    首先,twig可以理解为用于输出html代码的,虽然用PHP等其他语言也可以输出,但是twig更为简洁高效,同时twig模板被编译成原生的php类缓存起来,所以才会这么快, 其实twig跟php类差不 ...

  2. opencart 引入 TWIG 模板引擎

     1.首先将 twig 包放入 system\library 目录. 2.在 system/startup.php 文件最后添加引入语句. require_once(DIR_SYSTEM . 'lib ...

  3. symfony注册Twig模板中使用自定义PHP方法

    // 注:只是在此做下记录,有兴趣的可以参考,不做实际教程文档// 官方文档,https://symfony.com/doc/2.8/templating/twig_extension.html// ...

  4. 构建自己的PHP框架(Twig模板引擎)

    完整项目地址:https://github.com/Evai/Aier Twig 模板引擎 模版引擎 twig 的模板就是普通的文本文件,也不需要特别的扩展名,.html .htm .twig 都可以 ...

  5. thinkphp5.1 - twig使用

    thinkphp5.1 - twig使用1.安装按照:https://github.com/yunwuxin/think-twigTwig Template For ThinkPHP5 安装 comp ...

  6. SSTI(以Twig模板引擎为例)

    一.模板注入与常见Web注入 就注入类型的漏洞来说,常见 Web 注入有:SQL 注入,XSS 注入,XPATH 注入,XML 注入,代码注入,命令注入等等.注入漏洞的实质是服务端接受了用户的输入,未 ...

  7. 原生twig模板引擎详解(安装使用)

    最近在学习SSTI(服务器模板注入),所以在此总结一下 0x00 Twig的介绍 什么是Twig? Twig是一款灵活.快速.安全的PHP模板引擎. Twig的特点? 快速:Twig将模板编译为纯粹的 ...

  8. symfony2 twig模板引擎

    1.基本语法 Says something:{{    }} Does something:{%  %} Comment something:{#    #} {% extends "App ...

  9. yii2 使用twig 模板引擎

    yii2 默认使用PHP 和html 混合的方式来写视图层,但我个人还是喜欢纯模板语言的方式.而且已经非常习惯使用twig的语法,最近想使用yii2进行开发,所以还是选择使用twig视图引擎. git ...

随机推荐

  1. 汇总Anaconda与ROS冲突解决方法

    汇总一下在网上找到的Anaconda与ROS冲突解决方法,如果还有其他人找到其他方法,欢迎留言. anaconda和ros的安装就不介绍了. 1. 在某视频网站上一个印度小哥提出的方法 安装完成后,在 ...

  2. Elasticsearch(ES) 下载&安装

    欢迎关注笔者的公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site/ ...

  3. WPF实现背景透明磨砂,并通过HandyControl组件实现弹出等待框

    前言:上一个版本的Winform需要改成WPF来做界面,第一次接触WPF,在转换过程中遇到的需求就是一个背景透明模糊,一个是类似于 加载中…… 这样的等待窗口,等后台执行完毕后再关掉.在Winform ...

  4. JQ动态生成节点绑定事件无效问题

    最近做项目的时候遇见了一个问题,通过jq将动态节点绑定到dom节点上,并且为动态节点绑定方法,此方法再次为动态节点添加动态节点,但在刷新之后,动态节点上的方法失效了,过程为:创建动态节点->动态 ...

  5. Eureka自我保护机制源码解析

    默认情况下,当EurekaServer在一定时间内(默认90秒)没有接收到某个客户端实例的心跳,EurekaServer将会注销该实例.但是当网络分区故障发生时,客户端与EurekaServer之间无 ...

  6. 先排序然后union all失效,mysql数据库多个表union all查询并排序的结果为什么错误

    mysql数据库多个表union all查询并排序的结果为什么错误? 群主,我想进行一个表的查询,先把表中某个字段的内容查出,然后其他的再排序,我用union all连接两个表的查询结果排序是错的 比 ...

  7. Linux命令行基本数据库语句

    -- 数据库的操作 -- 链接数据库 mysql -uroot -p mysql -uroot -pmysql -- 退出数据库 exit/quit/ctrl+d -- sql语句最后需要有分号;结尾 ...

  8. Scrum 冲刺第二篇

    我们是这次稳了队,队员分别是温治乾.莫少政.黄思扬.余泽端.江海灵 一.会议 1.1  26号站立式会议照片: 1.2  昨天已完成的事情 团队成员 任务内容 黄思扬 Web 端首页.内容管理页开发. ...

  9. ERP WIP 部分API应用 详解

    工单创建 (create work order) PROCEDURE new_work_order(p_wip_entity_id NUMBER, p_organization_id NUMBER, ...

  10. vlan技术简单了解

    VLAN(虚拟局域网)是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制而根据用户需求进行网络分段.一个VLAN可以在一个交换机或者跨交换机实现.VLAN可以根据网络用户的位 ...