statix / petals
A PHP templating engine based on Laravel Blade
Fund package maintenance!
statix-php
Requires
- php: ^8.1
Requires (Dev)
- laravel/pint: ^1.2
- pestphp/pest: ^1.20
- symfony/var-dumper: ^6.2
This package is auto-updated.
Last update: 2024-12-09 16:12:41 UTC
README
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.
Installation
You can install the package via composer:
composer require statix-php/petals
Usage
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();
Testing
composer test
Formatting
composer format
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.