2013-12-12 36 views
1

我正在学习Twig和Smarty,并且我没有为他们两人找到针对我的问题的答案。问题是:是否有一些内置的方法来从单独的JSON文件中读取变量的值?我将使用Twig作为我的例子。 OK,这是常规的嫩枝变量定义:Twig&Smarty:来自JSON文件的对象

{% set vars = {"foo" : "bar"} %} 

现在让我们假设我们在/var/www/html/website.com/vars.json包含JSON文件:

{ 
    "foo" : "bar" 
} 

,现在我想用这个对象初始化我vars,但从文件,而不是定义模板读它,这样的事情:

{% set vars = *some_magic* "/var/www/html/website.com/vars.json" %} 

或者,更好的例子,使用对象从文件包括parame之三:

{% include "menu.html" with *some_magic* "/var/www/html/website.com/menu.json" only %} 

所以,有一些内置的方式,或者,至少,什么是执行它作为一个extenstion的最佳方式?

回答

2

您可以编写自己的自定义小枝功能,例如loadFromJsonFile(文件名),并使用它像{%组数据= loadFromJsonFile( '/无功/网络/ HTML/website.com/menu.json')%}

这里是

+0

什么是最好的方法,函数或过滤器?即像这样:{%set data ='/var/www/html/website.com/menu.json'| json%} –

+1

恕我直言,你应该使用过滤器来修改数据,但在你的情况下你加载数据。所以枝条功能是首选 – ishenkoyv

+0

好吧,看起来像一个解决方案已被发现:) –