Alexander Makarov
12 years ago
3 changed files with 89 additions and 90 deletions
@ -1,3 +1,86 @@
|
||||
Template |
||||
======== |
||||
Using template engines |
||||
====================== |
||||
|
||||
By default Yii uses PHP as template language but you can configure it to be able |
||||
to render templates with special engines such as Twig or Smarty. |
||||
|
||||
The component responsible for rendering a view is called `view`. You can add |
||||
a custom template engines as follows: |
||||
|
||||
```php |
||||
array( |
||||
'components' => array( |
||||
'view' => array( |
||||
'class' => 'yii\base\View', |
||||
'renderers' => array( |
||||
'tpl' => array( |
||||
'class' => 'yii\renderers\SmartyViewRenderer', |
||||
), |
||||
'twig' => array( |
||||
'class' => 'yii\renderers\TwigViewRenderer', |
||||
'twigPath' => '@app/vendors/Twig', |
||||
), |
||||
// ... |
||||
), |
||||
), |
||||
), |
||||
) |
||||
``` |
||||
|
||||
Note that Smarty and Twig are not bundled with Yii and you have to download and |
||||
unpack these yourself and then specify `twigPath` and `smartyPath` respectively. |
||||
|
||||
Twig |
||||
---- |
||||
|
||||
In order to use Twig you need to put you templates in files with extension `.twig` |
||||
(or another one if configured differently). |
||||
Also you need to specify this extension explicitly when calling `$this->render()` |
||||
or `$this->renderPartial()` from your controller: |
||||
|
||||
```php |
||||
echo $this->render('renderer.twig', array('username' => 'Alex')); |
||||
``` |
||||
|
||||
### Additional functions |
||||
|
||||
Additionally to regular Twig syntax the following is available in Yii: |
||||
|
||||
```php |
||||
<a href="{{ path('blog/view', {'alias' : post.alias}) }}">{{ post.title }}</a> |
||||
``` |
||||
|
||||
path function calls `Html::url()` internally. |
||||
|
||||
### Additional variables |
||||
|
||||
- `app` = `\Yii::$app` |
||||
- `this` = current `View` object |
||||
|
||||
Smarty |
||||
------ |
||||
|
||||
In order to use Smarty you need to put you templates in files with extension `.tpl` |
||||
(or another one if configured differently). |
||||
Also you need to specify this extension explicitly when calling `$this->render()` |
||||
or `$this->renderPartial()` from your controller: |
||||
|
||||
```php |
||||
echo $this->render('renderer.tpl', array('username' => 'Alex')); |
||||
``` |
||||
|
||||
### Additional functions |
||||
|
||||
Additionally to regular Smarty syntax the following is available in Yii: |
||||
|
||||
```php |
||||
<a href="{path route='blog/view' alias=$post.alias}">{$post.title}</a> |
||||
``` |
||||
|
||||
path function calls `Html::url()` internally. |
||||
|
||||
### Additional variables |
||||
|
||||
- `$app` = `\Yii::$app` |
||||
- `$this` = current `View` object |
||||
|
||||
|
@ -1,85 +0,0 @@
|
||||
Yii2 view renderers |
||||
=================== |
||||
|
||||
By default Yii uses PHP as template language but you can configure it to be able |
||||
to render templates with special engines such as Twig or Smarty. |
||||
|
||||
The component responsible for rendering a view is called `view`. You can add |
||||
a custom template engines as follows: |
||||
|
||||
```php |
||||
array( |
||||
'components' => array( |
||||
'view' => array( |
||||
'class' => 'yii\base\View', |
||||
'renderers' => array( |
||||
'tpl' => array( |
||||
'class' => 'yii\renderers\SmartyViewRenderer', |
||||
), |
||||
'twig' => array( |
||||
'class' => 'yii\renderers\TwigViewRenderer', |
||||
'twigPath' => '@app/vendors/Twig', |
||||
), |
||||
// ... |
||||
), |
||||
), |
||||
), |
||||
) |
||||
``` |
||||
|
||||
Note that Smarty and Twig are not bundled with Yii and you have to download and |
||||
unpack these yourself and then specify `twigPath` and `smartyPath` respectively. |
||||
|
||||
Twig |
||||
---- |
||||
|
||||
In order to use Twig you need to put you templates in files with extension `.twig` |
||||
(or another one if configured differently). |
||||
Also you need to specify this extension explicitly when calling `$this->render()` |
||||
or `$this->renderPartial()` from your controller: |
||||
|
||||
```php |
||||
echo $this->render('renderer.twig', array('username' => 'Alex')); |
||||
``` |
||||
|
||||
### Additional functions |
||||
|
||||
Additionally to regular Twig syntax the following is available in Yii: |
||||
|
||||
```php |
||||
<a href="{{ path('blog/view', {'alias' : post.alias}) }}">{{ post.title }}</a> |
||||
``` |
||||
|
||||
path function calls `Html::url()` internally. |
||||
|
||||
### Additional variables |
||||
|
||||
- `app` = `\Yii::$app` |
||||
- `this` = current `View` object |
||||
|
||||
Smarty |
||||
------ |
||||
|
||||
In order to use Smarty you need to put you templates in files with extension `.tpl` |
||||
(or another one if configured differently). |
||||
Also you need to specify this extension explicitly when calling `$this->render()` |
||||
or `$this->renderPartial()` from your controller: |
||||
|
||||
```php |
||||
echo $this->render('renderer.tpl', array('username' => 'Alex')); |
||||
``` |
||||
|
||||
### Additional functions |
||||
|
||||
Additionally to regular Smarty syntax the following is available in Yii: |
||||
|
||||
```php |
||||
<a href="{path route='blog/view' alias=$post.alias}">{$post.title}</a> |
||||
``` |
||||
|
||||
path function calls `Html::url()` internally. |
||||
|
||||
### Additional variables |
||||
|
||||
- `$app` = `\Yii::$app` |
||||
- `$this` = current `View` object |
Loading…
Reference in new issue