Jinja for PHP
Lightweight PHP implementation of the Jinja2 template engine originally developed for Python.
Overview
This library allows you to seamlessly process Jinja templates in PHP applications. It provides a familiar syntax for those coming from Python while offering a native PHP implementation.
Key Features
- Python Compatibility: Process the same Jinja templates in both Python and PHP
- Variable Support: Full support for variables, properties, and nested structures
- Conditional Logic:
if/elsestatements for conditional rendering - Loops: Iterate over arrays and objects with
forloops - Filters: Transform output with built-in filters like
upper,lower,default, etc. - Flexible Loaders: Load templates from strings or the filesystem
- Undefined Variable Handling: Different strategies for handling undefined variables
- Expressions: Support for mathematical operations, comparisons, and concatenation
Usage
use ByJG\JinjaPhp\Template;
use ByJG\JinjaPhp\Undefined\DebugUndefined;
$templateString = <<<EOT
Hello {{ name }}
EOT;
$template = new Template($templateString);
$template->withUndefined(new DebugUndefined()); // Default is StrictUndefined
$variables = [
'name' => 'World'
];
echo $template->render($variables);
Documentation
The detailed documentation is organized as follows:
- Basic Usage
- Template Syntax
- Loaders
- Undefined Variables
- Filters
- Control Structures
- Advanced Topics
- API Reference
- PHP Jinja vs Python Jinja2 Comparison
Installation
composer require byjg/jinja-php