Mustache.php是一個模板引擎,類似于Smarty、Twig等,它可以幫助我們將數據與模板結合起來,生成我們需要的html頁面。不同于其他模板引擎,Mustache php比較簡潔,沒有很多語法規則。下面我們來看看如何使用它。
首先,我們需要通過Composer安裝Mustache.php。在終端中輸入以下命令:
composer require mustache/mustache
安裝完成后,我們就可以在php代碼中使用Mustache。下面是代碼示例:
require_once 'vendor/autoload.php'; $mustache = new Mustache_Engine; $data = [ 'name' =>'Mustache PHP', 'url' =>'http://mustache.github.io/', 'description' =>'A Mustache template compiler written in PHP.', ]; echo $mustache->render('This is {{name}} template engine. Link: {{url}} Description: {{description}}', $data);
以上代碼會輸出以下結果:
This is Mustache PHP template engine. Link: http://mustache.github.io/ Description: A Mustache template compiler written in PHP.
可以看出,{{}}符號包圍的是變量名,而模板中其它部分則是原樣輸出。
除了簡單的變量輸出,Mustache也支持條件判斷,循環等功能。例如:
$data = [ 'show_data' =>true, 'data' =>[ 'name' =>'Mustache PHP', 'url' =>'http://mustache.github.io/', 'description' =>'A Mustache template compiler written in PHP.', ], ]; $template =<<<'TEMPLATE' {{#show_data}}{{data.name}}
{{data.description}}{{/show_data}} {{^show_data}}No data to show
{{/show_data}} TEMPLATE; echo $mustache->render($template, $data);
根據show_data的值,輸出不同的內容。如果為true,則輸出頭部和鏈接。否則,輸出一個文本提示。
另外,Mustache支持自定義標簽直接對應php函數。下面是一個例子:
$data = [ 'name' =>'John', 'age' =>30, ]; $template =<<<'TEMPLATE' {{#has_reached_age_limit age}} John has reached the age limit. {{/has_reached_age_limit}} TEMPLATE; $mustache->addHelper('has_reached_age_limit', function($age, $options) { if($age >= 30) { return $options['fn'](); } }); echo $mustache->render($template, $data);
以上代碼會輸出以下結果:
John has reached the age limit.
我們定義了一個名為has_reached_age_limit的helper。它根據變量age的值,判斷是否輸出文本。然后我們在模板中使用{{#has_reached_age_limit}}標簽,直接調用helper。helper的執行結果則是標簽中間的文本。
以上就是關于Mustache.php的介紹和幾個示例。它簡潔、易用,建議在需要模板時使用。