activecollab/templateengine

Component that abstracts template engines and offers easy to use PHP template engine

1.0.1 2016-05-22 11:42 UTC

README

Build Status

This package offers a single interface for interaction with multiple template engines. It ships with simple PHP template engine built in:

$template_engine = new PhpTemplateEngine('/path/to/templates/dir');

// Set attributes that will be passed to all templates. Method chaining is supported.
$template_engine->setAttributes([
    'app_name' => 'My Awesome App',
    'app_version' => '1.0.0',
])->addAttribute('app_env', 'staging');

// Render template to output buffer
$template_engine->display('/mail/hello.php', ['first_name' => 'John'])

// Render template and return output as a string
$output = $template_engine->fetch('/mail/hello.php', ['first_name' => 'John'])

Template Sandboxing

Templates are sandboxed, and can be placed only in templates directory that is specified when engine is constructed. If you try to use a template that is not in this directory, template engine will throw a \RuntimeException:

$template_engine->fetch('/example/../../../../etc/passwd'); // Will throw an exception