public/lib/mustache/README.md
A Mustache implementation in PHP.
composer require mustache/mustache
A quick example:
<?php
$m = new \Mustache\Engine(['entity_flags' => ENT_QUOTES]);
echo $m->render('Hello {{planet}}', ['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(['entity_flags' => ENT_QUOTES]);
$chris = new \Chris;
echo $m->render($template, $chris);
Note: we recommend using ENT_QUOTES as a default of entity_flags to decrease the chance of Cross-site scripting vulnerability.
Read the Mustache.php documentation for more information.
Mustache.php v3.x drops support for PHP 5.2–5.5, but is otherwise backwards compatible with v2.x.
To ease the transition, previous behavior can be preserved via configuration:
strict_callables config option now defaults to true. Lambda sections should use closures or callable objects. To continue supporting array-style callables for lambda sections (e.g. [$this, 'foo']), set strict_callables to false.buggy_property_shadowing config option.double_render_lambdas to true. This is not recommended.In order to maintain a wide PHP version support range, there are minor changes to a few interfaces, which you might need to handle if you extend Mustache (see c0453be).