phpolar/php-templating

This package is abandoned and no longer maintained. The author suggests using the phpolar/pure-php package instead.

Pure PHP Templates

3.0.0 2024-12-01 20:25 UTC

README

Phpolar Logo

Pure PHP

Templating that's just PHP. That's it. Seriously.

Support using pure PHP templates with automatic XSS mitigation.

Coverage Status Version PHP Version Require Total Downloads PHPMD PHP Build Latest and Nightly

Table of Contents

  1. Installation
  2. Usage
  3. Example
  4. API Documentation

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/templates directory relative to the current working directory.

Example 1

Pure PHP Templates

// template.php

<!DOCTYPE html>
<?php
/**
 * @var Page $view
 */
$view = $this;
?>
<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>
// Page.php

class Page
{
    public string $title;

    public string $backgroundColor = "#fff";

    public string $font = "Arial";

    public function __construct(string $title)
    {
        $this->title = $title;
    }
}

API Documentation

Back to top