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