Skip to content

Latest commit

 

History

History
86 lines (63 loc) · 4.4 KB

README.md

File metadata and controls

86 lines (63 loc) · 4.4 KB

GitHub release license Build Status Code Coverage Scrutinizer Code Quality Packagist

You are reading the documentation for Silex 1.x.

Plates

The PlatesServiceProvider provides integration with the Plates template engine.

Parameters

  • plates.directory (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.
  • plates.data (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.

The unlisted parameter plates.path is an alias of plates.directory and only exists to offer drop-in support of package rych/silex-plates-provider. Its use is discouraged and will be removed in the next major update.

Services

  • 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, plates.data, and plates.functions options.
  • plates.extension_loader.asset: Create new Asset extension instance that adds the ability to create "cache busted" asset URLs.

Registering

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

Add Plates as a dependency:

composer require liquidbox/silex-plates:^1.0

Symfony Components Integration

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

  • UrlGeneratorServiceProvider: 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.
  • SecurityServiceProvider: 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.

Usage

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

// Load asset extension
$app['plates.extension_loader.asset']('/path/to/public');

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

Customization

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

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

For more information, check out the official Plates documentation.