Skip to content

activecollab/templateengine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Template Engine

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published