2012-07-13 74 views
0

我剛開始使用小鬍子模板引擎。我目前正在使用它的PHP實現(https://github.com/bobthecow/mustache.php/wiki)。我使用助手來操縱數據呈現的方式。如何動態更改小鬍子模板數據

 
$data = array("name" => "abhilash"); 
$template = "Hello {{name}}, {{#bold}}Welcome{{/bold}}"; 

$m = new Mustache_Engine(array(
    "helpers" => array(
    "bold" => function($content) { 
     return "<b>$content</b>"; 
    }))); 
$html = $m->render($template, $data); 

在此幫助下,我可以使用粗體顯示「歡迎」字樣。我想知道是否有可能操縱幫助功能幫助$data。例如,如果模板如下所示,並且我有一個註冊爲幫助函數dataSource,我想用它從datasource_func_name()收集一些數據(如鍵值對),並將其附加到$data

 
{{#dataSource}}datasource_func_name{{/dataSource}} 
Hi {{name}} 

回答

1

這通常不會如何使用助手。然而,小鬍子基本上預計數據源,所以爲什麼不直接注入它?

$html = $m->render($template, $dataSource); 
+0

嗨,Laurent,據我所知,它並不意味着提供數據源。其實我正在嘗試構建一個框架(鬍鬚負責渲染數據)。其中我想添加對模板的支持以指示數據源模塊名稱,並且框架將負責從此數據源收集數據並將其反饋回模板。我認爲助手將是一個更好的方式來做到這一點,而無需修改鬍鬚代碼。 – Goje87 2012-07-13 14:46:47

+2

他告訴你如何做到這一點:)小鬍子不應該獲取數據。數據應該被提取並提供給鬍子。 – bobthecow 2012-07-31 17:45:33