Skip to content

Commit

Permalink
Using template engines docs
Browse files Browse the repository at this point in the history
  • Loading branch information
samdark committed Jul 3, 2013
1 parent c92c008 commit 8b8b6e5
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 90 deletions.
7 changes: 4 additions & 3 deletions docs/guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Getting started

- [Installation](installation.md)
- [Bootstrap with Yii](bootstrap.md)
- [Configuration](configuration.md)

Base concepts
=============
Expand All @@ -17,8 +18,6 @@ Base concepts
- [Model](model.md)
- [View](view.md)
- [Application](application.md)
- [Form](form.md)
- [Model validation reference](validation.md)

Database
========
Expand All @@ -31,6 +30,8 @@ Database
More
====

- [Form](form.md)
- [Model validation reference](validation.md)
- [Caching](caching.md)
- [Internationalization](i18n.md)
- [Extending Yii](extension.md)
Expand All @@ -40,7 +41,7 @@ More
- [URL Management](url.md)
- [Theming](theming.md)
- [Error Handling](error.md)
- [Template](template.md)
- [Using template engines](template.md)
- [Console Application](console.md)
- [Security](security.md)
- [Performance Tuning](performance.md)
Expand Down
87 changes: 85 additions & 2 deletions docs/guide/template.md
Original file line number Diff line number Diff line change
@@ -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

85 changes: 0 additions & 85 deletions docs/view_renderers.md

This file was deleted.

0 comments on commit 8b8b6e5

Please sign in to comment.