如何解析变量到布局

时间:2014-08-10 01:17:53

标签: php fat-free-framework

我正在尝试使用Fat-Free Framework,现在我不知道如何将变量解析为我的布局。 不知怎的,我做了,但不是我想要的方式。我知道你可以通过路由解析变量,然后使用set。 但我有这个布局,我有一些特定的变量需要在我的布局中,这些将永远在那里,如我的标题和其他东西。 但是我需要为每条路线解析这些都没有意义,有没有办法做到这一点。

我确实阅读了他们在fatfreeframework.com上的所有文档,并通过谷歌和本网站进行了搜索,但我找不到具体的内容。

1 个答案:

答案 0 :(得分:1)

看起来当你说"解析"时,你的意思是"定义"。我假设您的问题是:"如何定义变量以便可以从模板访问它们?"。

有多种方法可以实现这一目标。基本方法是使用$f3->set()定义变量,然后显示可以访问已定义变量的模板。例如:

//index.php
$f3->route('GET /example1',function($f3){
  $f3->set('title','my title');
  $f3->set('stuff','my stuff');
  $tpl=\Template::instance();
  echo $tpl->render('index.html');
}};

//index.html
<h1>{{$title}}</h1>
<p>{{$stuff}}</p>

现在,如果您需要变量公共到所有路线,您可以在路线范围之外定义它们:

$f3->set('title','my title');//$title will be accessible from all routes
$f3->set('stuff','my stuff');//$stuff also
$f3->route('GET /example1',...);
$f3->route('GET /example2',...);

如果您有许多常见变量,并且需要在不更改代码的情况下修改它们,则可以configuration file(.ini格式)定义它们:

//index.php
$f3->config('cfg/commons.ini');
$f3->route('GET /example1',...);
$f3->route('GET /example2',...);

//commons.ini
title = my title
stuff = my stuff