Mustache templating for Yii, high-performance PHP framework.
PHP
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
lib
test
var
.editorconfig
.gitattributes
.gitignore
.travis.yml
AUTHORS.txt
CHANGELOG.md
LICENSE.md
README.md
build.xml
composer.json
mkdocs.yml
phpdoc.xml
phpunit.xml

README.md

Mustache for Yii

PHP Yii Framework Release License Downloads Coverage Build

Mustache templating for Yii, high-performance PHP framework.

This package provides a view renderer, the yii\mustache\ViewRenderer class. This renderer allows to use Mustache syntax in view templates.

Configuring application

In order to start using Mustache you need to configure the view application component, like the following:

use yii\mustache\{ViewRenderer};
use yii\web\{View};

return [
  'components' => [
    'view' => [
      'class' => View::class,
      'renderers' => [
        'mustache' => ViewRenderer::class
      ]
    ]
  ]
];

After it's done you can create templates in files that have the .mustache extension (or use another file extension but configure the component accordingly). Unlike standard view files, when using Mustache you must include the extension in your $this->render() controller call:

return $this->render('template.mustache', [ 'model' => 'The view model' ]);

Template Syntax

The best resource to learn Mustache basics is its official documentation you can find at mustache.github.io. Additionally there are Yii-specific syntax extensions described below.

Variables

Within Mustache templates the following variables are always defined:

  • app: the Yii::$app instance.
  • this: the current View object.
  • yii.debug: the YII_DEBUG constant.
  • yii.devEnv: the YII_ENV_DEV constant.
  • yii.prodEnv: the YII_ENV_PROD constant.
  • yii.testEnv: the YII_ENV_TEST constant.

Lambdas

  • format: provides a set of commonly used data formatting methods.
  • html: provides a set of methods for generating commonly used HTML tags.
  • i18n: provides features related with internationalization (I18N) and localization (L10N).
  • url: provides a set of methods for managing URLs.

Partials

There are two ways of referencing partials:

{{> post }}
{{> @app/views/layouts/2columns }}

In the first case the view will be searched relatively to the current view path. For post.mustache that means these will be searched in the same directory as the currently rendered template.

In the second case we're using path aliases. All the Yii aliases such as @app are available by default.

Resources

License

Mustache for Yii is distributed under the MIT License.