설명 없음

Justin Hileman 06ea054219 Merge branch 'master' of github.com:bobthecow/mustache.php into dev 15 년 전
examples 1ede993bb3 Added double section, escaped output, utf8 escaped and utf8 unescaped examples. 15 년 전
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 년 전
LICENSE 36bd2d87dc MIT License 15 년 전
Mustache.php 4baf602eab Updated default character escaping for UTF-8 compatibility. For other character sets, or to disable UTF-8 support entirely, change the 'charset' property or renderEscaped method on subclasses. 15 년 전
README.markdown fa8c81dcfd Update README to reflect preferred mustache class implementation. Rendering arbitrary generic view class/array and template is secondary. 15 년 전
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 년 전

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

  • Sections don't respect delimiter changes -- delimiters example currently fails with an "unclosed section" exception.
  • Since complex example emulates some fancy swizzling available in Ruby, it fails. Need to convert example to PHPisms (In PHP, Mustache class doesn't maintain current context stack -- available context is passed to methods via params).
  • Test coverage is incomplete.

See Also