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();