瀏覽代碼

Custom delimiters tweaks.

* Add basic test for custom delimiters
* Keep default delims backwards compatible
Justin Hileman 8 年之前
父節點
當前提交
b9f04e5d26
共有 2 個文件被更改,包括 19 次插入2 次删除
  1. 2 2
      src/Mustache/Engine.php
  2. 17 0
      test/Mustache/Test/EngineTest.php

+ 2 - 2
src/Mustache/Engine.php

@@ -54,7 +54,7 @@ class Mustache_Engine
     private $logger;
     private $strictCallables = false;
     private $pragmas = array();
-    private $delimiters = '{{ }}';
+    private $delimiters;
 
     // Services
     private $tokenizer;
@@ -621,7 +621,7 @@ class Mustache_Engine
         // Keep this list in alphabetical order :)
         $chunks = array(
             'charset'         => $this->charset,
-            'delimiters'      => $this->delimiters,
+            'delimiters'      => $this->delimiters ? $this->delimiters : '{{ }}',
             'entityFlags'     => $this->entityFlags,
             'escape'          => isset($this->escape) ? 'custom' : 'default',
             'key'             => ($source instanceof Mustache_Source) ? $source->getKey() : 'source',

+ 17 - 0
test/Mustache/Test/EngineTest.php

@@ -349,6 +349,23 @@ class Mustache_Test_EngineTest extends Mustache_Test_FunctionalTestCase
 
         return array($name, $mustache);
     }
+
+    public function testCustomDelimiters()
+    {
+        $mustache = new Mustache_Engine(array(
+            'delimiters' => '[[ ]]',
+            'partials'   => array(
+                'one' => '[[> two ]]',
+                'two' => '[[ a ]]',
+            ),
+        ));
+
+        $tpl = $mustache->loadTemplate('[[# a ]][[ b ]][[/a ]]');
+        $this->assertEquals('c', $tpl->render(array('a' => true, 'b' => 'c')));
+
+        $tpl = $mustache->loadTemplate('[[> one ]]');
+        $this->assertEquals('b', $tpl->render(array('a' => 'b')));
+    }
 }
 
 class MustacheStub extends Mustache_Engine