A Plates template engine service provider for the Silex micro-framework

v2.0.0 2017-12-02 20:23 UTC

This package is not auto-updated.

Last update: 2020-01-10 16:47:25 UTC


GitHub release license Build Status Code Coverage Scrutinizer Code Quality Packagist

You are reading the documentation for Silex 2.x. Switch to the documentation for Silex 1.x.


The PlatesServiceProvider provides integration with the Plates template engine.


  • (optional): The default template directory.
  • plates.file_extension (optional): The template file extension.
  • plates.folders (optional): A collection of template folders to add for grouping templates under different namespaces.
  • (optional): A collection of data shared with all templates to add.
  • plates.functions (optional): A collection of template functions to register.
  • plates.extension.asset (optional): The asset extension directory to load that adds the ability to create "cache busted" asset URLs.


  • plates: The Engine instance. The main way of interacting with Plates.
  • plates.engine_factory: Factory for Engine instances.
  • plates.loader: The loader for Plates templates which uses the plates.folders,, and plates.functions options.
  • plates.extension_loader.asset: Create new Asset extension instance that adds the ability to create "cache busted" asset URLs.


$app->register(new \LiquidBox\Silex\Provider\PlatesServiceProvider(), array(
    '' => '/path/to/templates',
    'plates.folders' => array(
        'email' => '/path/to/email/templates',

Add Plates as a dependency:

composer require liquidbox/silex-plates:^2.0


// Add any additional folders
$app['plates']->addFolder('emails', '/path/to/emails');

// Load asset extension

// Create a new template
$template = $app['plates']->make('emails::welcome');

Symfony Components Integration

The PlatesServiceProvider provides additional integration between some Symfony components and Plates. This will provide you with the following additional capabilities.

Routing Support

If you are using the UrlGeneratorServiceProvider, you will have access to the path() and url() functions. You can find more information in the Symfony Routing documentation.

Security Support

If you are using the SecurityServiceProvider, you will have access to the is_granted() function in templates. You can find more information in the Symfony Security documentation.


You can configure the Plates environment before using it when registering the plates service:

$app->register(new \LiquidBox\Silex\Provider\PlatesServiceProvider(), array(
    '' => array(
        'title' => 'Plates - Native PHP Templates',
    'plates.functions' => array(
        'uppercase' => function ($string) {
            return strtoupper($string);

For more information, check out the official Plates documentation.