Petals is a zero dependency PHP templating engine based on Laravel Blade. This was built as a fun experiment to play with ChatGPT and GitHub Co-pilot, between the two AI tools they wrote ~60% of the code.
You can install the package via composer:
composer require statix-php/petals
use Statix\Petals\TemplatingEngine;
// require the composer autoloader
require __DIR__.'/vendor/autoload.php';
$engine = new TemplatingEngine(
templates: __DIR__.'/templates',
cachePath: __DIR__.'/cache',
);
$engine = new TemplatingEngine(
templates: [
__DIR__ . '/templates-one',
__DIR__ . '/templates-two',
],
cachePath: __DIR__.'/cache',
);
// Render the templates/app.blade.php template
$content = $engine->render('app', [
'message' => 'Hello world!',
]);
// Render the given string
$content = $engine->renderString('Hello {{ $name }}! The unix timestamp is {{ $time }}', [
'name' => 'world',
'time' => time(),
]);
// Compile the template to the cache directory, the compiled template will be used to render the template when render is called
$engine->compile('app');
// Compile the given string to the cache directory, if render is called on the same string, it will be rendered from the compiled cache template
$engine->compileString('Hello {{ $name }}! The unix timestamp is {{ $time }}');
// Clear the compiled templates
$engine->clearCache();
composer test
composer format
Please see CHANGELOG for more information on what has changed recently.
The MIT License (MIT). Please see License File for more information.