thinkphp5.1 - twig模板-全局變量

thinkphp5.1 - twig模板-全局變量
咱們在定義 ccs 之類的靜態文件的時候,常常會使用
<link rel="stylesheet" href="__ROOT__/static/css/bootstrap.css" />
定義個__ROOT__變量,而後全局替換調php

一、若是使用默認模板,那直接在
自定義變量要去 config裏的template.php 設置 假設你要 __ROOT__,
'tpl_replace_string' => [
'__ROOT__'=>'/static',
]
這樣就引到 public/static 目錄了css

二、可是若是要使用 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' => []
];thinkphp

而後看代碼發現:
if (!empty($this->config['globals'])) {
foreach ($this->config['globals'] as $name => $global) {
$twig->addGlobal($name, $global);
}
},bootstrap

因此咱們只須要配置這個字段就好了,咱們不須要在Twig.php中配置,這裏的配置會和
config/template.php目錄中的配置合併,並且config/template.php的配置優先,因此咱們只須要
在config/template.php中配置,相似於這樣
'globals'=>[
'__STATIC__'=>'/static'
]
就能夠了。
三、而後咱們在模板文件中怎麼使用呢?
<link rel="stylesheet" type="text/css" href="{{ __STATIC__ }}/navigation.css" />函數

相關文章
相關標籤/搜索