media32 / slim-view-plates
A custom Slim framework view for the Plates template system.
Requires
- league/plates: 3.*
- slim/slim: 2.*
This package is not auto-updated.
Last update: 2024-12-21 18:53:39 UTC
README
This library provides a custom view for the Slim Framework to support the Plates template engine.
Usage
Add the provider to your composer.json
file:
{ "require": { "media32/slim-view-plates": "3.*" } }
Enable it in your application
<?php $view = new \Media32\Slim\View\Plates(); $app = new \Slim\Slim(array( 'view' => $view ));
Configuration
Template File Extension
Set $view->fileExtension
to the file extension used for all templates.
By default Plates expects the extension to be .php
.
Templates Path
Set $view->templatesPath
to the location of the templates.
By default Slim-View-Plates will use the Slim templates.path configuration value. This setting allows you to override that value for only the Plates templates.
Templates Folder
Add to the $view->templatesFolders
array, where the key is the name of the
folder and the value is the path.
Extension
You can access Slim's URL functions inside templates by hooking up the view extension:
$view->parserExtensions = array( new \Media32\Slim\View\PlatesExtension() );
URL
Inside your Plates template you would write:
<?= $this->slim()->urlFor('hello', array('name' => 'Josh', 'age' => '19')); ?>
You can easily pass variables that are objects or arrays by doing:
<a href="<?= $this->slim()->urlFor('hello', array('name' => $person->name, 'age' => $person->age)) ?>">Hello <?= $name; ?></a>
If you need to specify the appname for the getInstance method in the urlFor functions, set it as the third parameter of the function in your template:
<a href="<?= $this->slim()->urlFor('hello', array('name' => $person->name, 'age' => $person->age), 'admin') ?>">Hello <?= $name; ?></a>
Site URL
Inside your Plates template you would write:
<?= $this->slim()->siteUrl('/about/me'); ?>
Base URL
Inside your Plates template you would write:
<?= $this->slim()->baseUrl(); ?>
Slim Instance
Inside your plates template you would write:
<? $this->slim()->getInstance('appname'); ?>
Advanced Usage
To access the Plates engine object for further customization, including loading
extensions, call $view->getInstance()
.