phpolar / pure-php
Pure PHP Templates
3.1.4
2025-12-05 00:01 UTC
Requires
- php: >=8.3
Requires (Dev)
- ext-mbstring: *
- phan/phan: ^5.4
- php-coveralls/php-coveralls: ^2.5
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^1.9 || ^2.0
- phpunit/phpunit: ^10.0 || ^11.4 || ^12.0
- squizlabs/php_codesniffer: ^3.7 || ^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Pure PHP
Templating that's just PHP. That's it. Seriously.
Support using pure PHP templates with automatic XSS mitigation.
Table of Contents
Installation
composer require phpolar/pure-php
Usage
$page = new Page(); $safeContext = new HtmlSafeContext($page); $templateEng->render("path/to/template.php", $safeContext); // or... echo $templateEng->apply("path/to/template", $safeContext /* optional */);
Template Basename Only
// or... echo $templateEng->apply("template", $safeContext /* optional */); // or... echo $templateEng->apply("template", $safeContext /* optional */);
The template engine will look for files with .php, .phtml, or .html extensions in
src/templatesdirectory relative to the current working directory.
Example 1
Pure PHP Templates
// template.php or template.phtml <?php (function (Page $view) { ?> <!DOCTYPE html> <html> <head> <style> body { font-family: <?= $view->font ?>; padding: 0; margin: 0; } form th { text-align: right; } form td { text-align: left; } .container { background-color: <?= $view->backgroundColor ?>; padding: 20px 0 90px } </style> </head> <body style="text-align:center"> <h1><?= $view->title ?></h1> <div class="container"> </div> </body> </html> <?php })($this);
// Page.php class Page { public string $title; public string $backgroundColor = "#fff"; public string $font = "Arial"; public function __construct(string $title) { $this->title = $title; } }