media32/slim-view-plates

A custom Slim framework view for the Plates template system.

3.0 2015-01-09 16:32 UTC

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