Aucune description

Justin Hileman cd6bfaefd3 Merge branch 'hotfix/1.1.0' il y a 13 ans
bin 236ba060ca Code style updates. il y a 14 ans
examples 9693695d2b Fix E_STRICT failure in i18n example. il y a 13 ans
test fab64b14bf Add a `throws_exceptions` constructor option. il y a 13 ans
.gitmodules 4de7f2d23b Switch submodule to use git:// repo url. il y a 13 ans
LICENSE 36bd2d87dc MIT License il y a 15 ans
Mustache.php 417b139d86 Version bump (v1.1.0) il y a 13 ans
MustacheLoader.php 2aaa820965 Add a 'MustacheLoader' filesystem loader. il y a 14 ans
README.markdown 53630208b6 push some whitespace around a bit. il y a 14 ans

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

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
$chris = 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

  • As of Mustache spec v1.1.2, there are a couple of whitespace bugs around section tags... Despite these failing tests, this version is actually closer to correct than previous releases.

See Also