raindrop/twigloader-bundle

Symfony Raindrop TwigLoaderBundle

v0.9.1 2013-03-17 17:35 UTC

This package is not auto-updated.

Last update: 2024-11-09 15:42:27 UTC


README

Build Status

This bundle adds database support for twig templates. It substitutes Twig_Loader_FileSystem with Twig_Loader_Chain and appends Database and FileSystem loader. To load from database, use database: syntax into render method.

INSTALLATION:

First add the dependency to your composer.json` file:

"require": {
    ...
    "raindrop/twigloader-bundle": "dev-master"
},

Then install the bundle with the command:

php composer.phar update

Enable the bundle in your application kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Raindrop\TwigLoaderBundle\RaindropTwigLoaderBundle(),
    );
}

Now the bundle is enabled.

There is also a TwigTemplateAdmin class activated only if SonataAdmin bundle is enabled in your AppKernel.php.

CONFIGURATION:

This the default configuration and can be overridden in app/config/config.yml:

doctrine:
  dbal:
    types:
      json: Sonata\Doctrine\Types\JsonType

and

raindrop_twig_loader:
    chain:
        replace_twig_loader: true
        loaders_by_id:
            raindrop_twig.loader.filesystem: 10
            raindrop_twig.loader.database: 20

This configures twig chain loader and append those specified above.

USAGE:

Load template from database:

class myController {
	public function indexAction()
    {
		return $this->render('database:contact_us_en');
	}
}

The database loader will load the template using ::getTemplate() method and pass result to controller render method.