Ray / Ray / View / Mustache.php


namespace Ray\View;

use Ray;

class Mustache implements Ray\View{
    private $options = array(
        'ext' => '.mustache',
        'layout' => 'default',
        'actionDir' => 'action',
        'action' => 'error404',
        'params' => array()
    private $config;
    private $instance;
    public function __construct(array $response, $config){
        $this->instance = new Ray\View\Mustache\Compiler();
        $this->options = array_merge($this->options, $response);
        $this->config = $config;
    public function render(){
        $layout = $this->config['templates'] . DS . $this->options['layout'] . $this->options['ext'];
        $action = $this->config['templates'] . DS . $this->options['actionDir'] . DS . $this->options['action'] . $this->options['ext'];
            $template = file_get_contents($layout);
            $params = is_array($this->options['params']) ? $this->options['params'] : array();
                $partial = array(
                    'action' => file_get_contents($action)
                return $this->instance->render($template, $params, $partial);
                throw new Ray\Exception\View\Mustache('Action template file not found. Path: '. $action);
            throw new Ray\Exception\Mustache('Template file not found. Path: ' . $layout);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.