bbb43caa1a619ddb8da943146c3e24d543e09335
The mustache spec has a test case that _should_ have caught this: https://github.com/mustache/spec/blob/master/specs/delimiters.yml#L154-L158 ... But that test case only tests that an engine recognizes it as a delimiter change tag, not that it ends up changing to the correct delimiters. In our case, we were incorrectly changing to `@` and ` `. The only "invalid" case I can think of is missing delimiters, which is how that spec test was (incorrectly) parsed. Now it'll enforce that it's always called with *something* that can be used as a delimiter.
Mustache.php
A Mustache implementation in PHP.
Usage
A quick example:
<?php
$m = new Mustache_Engine;
echo $m->render('Hello {{planet}}', array('planet' => 'World!')); // "Hello World!"
And a more in-depth example -- this is the canonical Mustache template:
Hello {{name}}
You have just won {{value}} dollars!
{{#in_ca}}
Well, {{taxed_value}} dollars, after taxes.
{{/in_ca}}
Create a view "context" object -- which could also be an associative array, but those don't do functions quite as well:
<?php
class Chris {
public $name = "Chris";
public $value = 10000;
public function taxed_value() {
return $this->value - ($this->value * 0.4);
}
public $in_ca = true;
}
And render it:
<?php
$m = new Mustache_Engine;
$chris = new Chris;
echo $m->render($template, $chris);
And That's Not All!
Read the Mustache.php documentation for more information.
See Also
Languages
PHP
100%