2c3984a604c91fd9cac22afa415161fc6330eb13
Partials now receive a flattened version of the parent context, including a cloned Mustache instance (if the root context is a Mustache instance). There may be issues with cloning, for example: if a pragma is enabled in the parent template, partials might also inherit the pragma. Added (basic) test case for partials.
Merge branch 'feature/test-coverage' of github.com:bobthecow/mustache.php into feature/test-coverage
Mustache.php
A Mustache implementation in PHP.
Usage
A quick example:
<?php
include('Mustache.php');
$m = new Mustache;
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}}!
{{#in_ca}}
Well, ${{taxed_value}}, after taxes.
{{/in_ca}}
Along with the associated Mustache class:
<?php
class Chris extends Mustache {
public $name = "Chris";
public $value = 10000;
public function taxed_value() {
return $this->value - ($this->value * 0.4);
}
public $in_ca = true;
}
Render it like so:
<?php
$c = new Chris;
echo $chris->render($template);
?>
Here's the same thing, a different way:
Create a view 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
$chris = new Chris;
$m = new Mustache;
echo $m->render($template, $chris);
?>
Known Issues
- Pragmas don't un-apply... Instead of applying only to a specific template, pragmas are applied to all subsequent templates and partials rendered by this Mustache instance.
- Sections don't respect delimiter changes --
delimitersexample currently fails with an "unclosed section" exception. - Test coverage is incomplete.
See Also
- Readme for the Ruby Mustache implementation.
- mustache(1) and mustache(5) man pages.
Languages
PHP
100%