adbario / slim-twig-view

Slim Framework view layer add-on built on top of Twig

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Slim Framework Twig View add-on

This is an extension for Slim Framework Twig View with the following extra functions:

  • adds file extension to template names automatically
  • uses dot notation for template file paths

Installation

composer require adbario/slim-twig-view

Usage

Default extension for the template files is 'twig', this can be changed with the optional setting while registering Twig view on Slim container.

// Create Slim app
$app = new \Slim\App();

// Fetch DI Container
$container = $app->getContainer();

// Register Twig View helper
$container['view'] = function ($c) {
    $view = new \Adbar\Slim\Views\Twig('path/to/templates', [
        'cache' => 'path/to/cache',
        // Optional template file extension, defaults to 'twig'
        'file_extension' => 'html'
    ]);

    // Instantiate and add Slim specific extension
    $basePath = rtrim(str_ireplace('index.php', '', $c['request']->getUri()->getBasePath()), '/');
    $view->addExtension(new Slim\Views\TwigExtension($c['router'], $basePath));

    return $view;
};

// Define named route
$app->get('/hello/{name}', function ($request, $response, $args) {
    // Render template file from path 'path/to/templates/user/profile.html'
    return $this->view->render($response, 'user.profile', [
        'name' => $args['name']
    ]);
})->setName('profile');

// Run app
$app->run();

Custom template functions

Read more from Slim Framework Twig View

License

MIT license

About

Slim Framework view layer add-on built on top of Twig

License:MIT License


Languages

Language:PHP 100.0%