fignon / fignon-view-engine
The Fignon View Engine package is a simple abstract class you can extends to include easily any php template engine into Fignon.
0.0.1
2024-02-16 12:39 UTC
Requires
- php: >=8.0.0
README
This is an interface to ease any php template engine integration to use within the Fignon Framework.
See some concrete implementation using
NB:
-
You don't need this package, if you don't need to write an integration of a templates which don't be listed above.
-
If you have just to use Twig or something listed above, just grab it with composer and start building using Fignon Framework.
If you really need it:
composer require dahkenangnon/fignon-view-engine
Then, use it like this:
namespace App\ViewsEngine; // This namespace is up to you use Fignon\Extra\ViewEngine; // Use the Fignon View Engine integration interface /** * View Engine, */ class MyViewEngine implements ViewEngine { public function init(string $templatePath = null, string $templateCachedPath = null, array $options = []): ViewEngine { // Init you view engine and return $this; } public function render(string $viewPath = '', $locals = [], array $options = []): ?string { // Return the rendered string from your view engine } }
You can then use your new view engine integration like this:
//app.php (or index.php) depending of how you call you entry point declare(strict_types=1); include_once __DIR__ . "/../vendor/autoload.php"; use Fignon\Tunnel; use App\Features\Features; use App\ViewsEngine\MyViewEngine; $app = new Tunnel(); $app->set('env', 'development'); // ... other middlewares // View engine initialization $app->set('views', dirname(__DIR__) . '/templates'); $app->set('views cache', dirname(__DIR__) . '/var/cache'); $app->set('view engine options', []); // Add options to the view engine $app->engine('my-view-engine-name', new MyViewEngine()); $app->set('case sensitive routing', true); // ... other middlewares (new Features($app))->bootstrap(); $app->listen();