|  |  |  | 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',
 | 
					
						
							|  |  |  | 		),
 | 
					
						
							|  |  |  | 	),
 | 
					
						
							|  |  |  | ),
 | 
					
						
							|  |  |  | ```
 |