activecollab / templateengine
Component that abstracts template engines and offers easy to use PHP template engine
Installs: 13 535
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-11-23 16:00:45 UTC
README
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