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
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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();