All Projects → laurent22 → Kohana-Mustache

laurent22 / Kohana-Mustache

Licence: other
A Mustache module for Kohana.

Programming Languages

PHP
23972 projects - #3 most used programming language

Kohana-Mustache

This is a Mustache module for Kohana. Its particularity is that it works exactly like Kohana regular views, so you don't need to change anything to the way you instantiate views, assign variables to them, etc. You can even mix and match PHP views with Mustache views. If the module doesn't find a mustache view, it will default to a PHP view.

Supported Kohana versions

The module is compatible with Kohana 3.3. For earlier versions, you might have to rename classes/View.php to classes/view.php (lowercase).

Usage

  • Add the module to Kohana. Copy the mustache folder into the modules folder of Kohana.

  • Enable the module in bootstrap.php:

Kohana::modules(array(
	'mustache'  => MODPATH.'mustache',       // Mustache support in Kohana
	// 'auth'       => MODPATH.'auth',       // Basic authentication
	// 'cache'      => MODPATH.'cache',      // Caching with multiple backends
	// ...
	));
  • Create a Mustache view. For example, add this file to application/views/example.mustache:
{{#user}}
	Hello {{name}}
	You have just won ${{value}}!
	{{#in_ca}}
	Well, ${{taxed_value}}, after taxes.
	{{/in_ca}}
{{/user}}
  • Finally, to instantiate the view, simply use the usual Kohana syntax:
$user = array(
	"name" => "Chris",
	"value" => 10000,
	"taxed_value" => 10000 - (10000 * 0.4),
	"in_ca" => true
);

$view = View::factory('example');
$view->user = $user;
echo $view->render();

Which should display:

Hello Chris You have just won $10000! Well, $6000, after taxes.

Mixing PHP and Mustache view

The module transparently supports mixing PHP and Mustache views. If the module finds a view called example.mustache, it's going to use that. However, if this file doesn't exist, it's going to look for example.php and pass it to Kohana for rendering.

License

LGPL3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].