|
|
|
Yii2 view renderers
|
|
|
|
===================
|
|
|
|
|
|
|
|
By default Yii uses PHP as template language but you can change it in your application.
|
|
|
|
The component responsible for rendering a view is called `view`. You can configure
|
|
|
|
a custom template engine as follows:
|
|
|
|
|
|
|
|
```php
|
|
|
|
array(
|
|
|
|
'components' => array(
|
|
|
|
'view' => array(
|
|
|
|
'class' => 'yii\base\View',
|
|
|
|
'renderer' => array(
|
|
|
|
'class' => 'yii\renderers\TwigViewRenderer',
|
|
|
|
// or 'class' => 'yii\renderers\SmartyViewRenderer',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
```
|
|
|
|
|
|
|
|
Twig
|
|
|
|
----
|
|
|
|
|
|
|
|
In order to use Twig you need to put you templates in files with extension `.twig`.
|
|
|
|
Also you need to specify this extension explicitly when calling `$this->render()`
|
|
|
|
or `$this->renderPartial()` from your controller.
|
|
|
|
|
|
|
|
Smarty
|
|
|
|
------
|
|
|
|
|
|
|
|
In order to use Smarty you need to put you templates in files with extension `.tpl`.
|
|
|
|
Also you need to specify this extension explicitly when calling `$this->render()`
|
|
|
|
or `$this->renderPartial()` from your controller.
|
|
|
|
|
|
|
|
Using multiple view renderers in a single application
|
|
|
|
-----------------------------------------------------
|
|
|
|
|
|
|
|
If you need multiple view renderers at the same time in a single application you
|
|
|
|
can use `CompositeViewRenderer` as follows:
|
|
|
|
|
|
|
|
```php
|
|
|
|
'components' => array(
|
|
|
|
'view' => array(
|
|
|
|
'class' => 'yii\base\View',
|
|
|
|
'renderer' => array(
|
|
|
|
'class' => 'yii\renderers\CompositeViewRenderer',
|
|
|
|
'renderers' => array(
|
|
|
|
'tpl' => array(
|
|
|
|
'class' => 'yii\renderers\SmartyViewRenderer',
|
|
|
|
),
|
|
|
|
'twig' => array(
|
|
|
|
'class' => 'yii\renderers\TwigViewRenderer',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
//'class' => 'yii\renderers\TwigViewRenderer',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
```
|