2013-12-10 44 views
1

我剛剛開始使用Mustache.php,我正在尋找一種方法來爲我的Mustache.php加載器添加一個像Joomla中使用的替代功能。如何用鬍鬚覆蓋偏好

我從目錄「視圖」中加載partials,我想告訴小鬍子首先讀取存儲在「覆蓋」中的部分,然後,如果在該文件夾中找不到部分,則查找它在「views」文件夾中。

目前我使用此代碼加載我的諧音:

// Mustache templates path 
$mustache_tpls = $_SERVER['BASE_DIR'] . '/views'; 

// Mustache options 
$mustache_opts = array('extension' => '.tpl'); 

// Mustache cache path 
$mustache_cache = $_SERVER['BASE_DIR'] . '/tmp/cache/views'; 

// Init Mustache engine 
$m = new Mustache_Engine(
    array(
     'cache' => $mustache_cache, 
     'loader' => new Mustache_Loader_FilesystemLoader(
      $mustache_tpls, 
      $mustache_opts 
     ) 
    ) 
); 

我怎麼能這樣做?

回答

1

您正在尋找the CascadingLoader

// Mustache templates paths 
$mustache_tpls   = $_SERVER['BASE_DIR'] . '/views'; 
$mustache_override_tpls = $_SERVER['BASE_DIR'] . '/overrides'; 

// Mustache options 
$mustache_opts = array('extension' => '.tpl'); 

// Mustache cache path 
$mustache_cache = $_SERVER['BASE_DIR'] . '/tmp/cache/views'; 

// Cascading template loader 
$mustache_loader = new Mustache_Loader_CascadingLoader(array(
    new Mustache_Loader_FilesystemLoader($mustache_override_tpls, $mustache_opts), 
    new Mustache_Loader_FilesystemLoader($mustache_tpls, $mustache_opts), 
)); 

// Init Mustache engine 
$m = new Mustache_Engine(
    array(
     'cache' => $mustache_cache, 
     'loader' => $mustache_loader 
    ) 
);