No Description

Justin Hileman b8d4321e4a Added TraversableMustache, a Mustache subclass that allows traversal of variables via dots... they approximately map to ->, as in ->bar->baz means the same thing as {{foo.bar.baz}} 15 years ago
HandlebarMustache.php e0b9b6c522 Added HandlebarMustache, an extended Mustache class which contains file handling for templates and partials. This will most likely be merged in with the main Mustache class once it's a little more solid. 15 years ago
LICENSE 36bd2d87dc MIT License 15 years ago
Mustache.php b2666da4bb Wrap the render() function in a __toString method for implicit string conversion. 15 years ago
README.markdown 0e73e66a34 Updating readme to link to pretty Mustache homepage rather than github page. 15 years ago
TraversableMustache.php b8d4321e4a Added TraversableMustache, a Mustache subclass that allows traversal of variables via dots... they approximately map to ->, as in ->bar->baz means the same thing as {{foo.bar.baz}} 15 years ago

README.markdown

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}}

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);
?>

See Also