Skip to content

Commit

Permalink
more docs on views, cross-references, intros for error handling and d…
Browse files Browse the repository at this point in the history
…ebugger
  • Loading branch information
samdark committed Aug 15, 2013
1 parent 805706b commit f11ecb9
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 11 deletions.
10 changes: 8 additions & 2 deletions docs/guide/debugger.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
Debug toolbar and debugger
==========================

Overview
--------
Yii2 includes a handy toolbar to aid faster development and debugging as well as debugger. Toolbar displays information
about currently opened page while using debugger you can analyze data collected before.

Installing and configuring
--------------------------

How to use it
-------------

Creating your own panels
------------------------
Expand Down
4 changes: 4 additions & 0 deletions docs/guide/error.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Error Handling
==============

Error handling in Yii is different from plain PHP. First of all, all non-fatal errors are converted to exceptions so
you can use `try`-`catch` to work with these. Second, even fatal errors are rendered in a nice way. In debug mode that
means you have a trace and a piece of code where it happened so it takes less time to analyze and fix it.

3 changes: 3 additions & 0 deletions docs/guide/form.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Working with forms
==================

2 changes: 1 addition & 1 deletion docs/guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ More
====

- [Bootstrap widgets](bootstrap-widgets.md)
- [Form](form.md)
- [Working with forms](form.md)
- [Model validation reference](validation.md)
- [Caching](caching.md)
- [Internationalization](i18n.md)
Expand Down
8 changes: 7 additions & 1 deletion docs/guide/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,10 @@ Securing Cookies
----------------

- validation
- httpOnly
- httpOnly

See also
--------

- [Views security](view.md#security)

10 changes: 7 additions & 3 deletions docs/guide/upgrade-from-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,11 +149,12 @@ $content = Yii::$app->view->renderFile($viewFile, $params);
Also, there is no more `CClientScript` in Yii 2.0. The `View` class has taken over its role
with significant improvements. For more details, please see the "assets" subsection.

While Yii 2.0 continues to use PHP as its main template language, it comes with built-in
support for two popular template engines: Smarty and Twig. The Prado template engine is
While Yii 2.0 continues to use PHP as its main template language, it comes with two official extensions
adding support for two popular template engines: Smarty and Twig. The Prado template engine is
no longer supported. To use these template engines, you just need to use `tpl` as the file
extension for your Smarty views, or `twig` for Twig views. You may also configure the
`View::renderers` property to use other template engines.
`View::renderers` property to use other template engines. See [Using template engines](template.md) section
of the guide for more details.


Models
Expand Down Expand Up @@ -209,13 +210,16 @@ Because of the above change, Yii 2.0 no longer has "safe" and "unsafe" validator
If your model only has one scenario (very common), you do not have to overwrite `scenarios()`,
and everything will still work like the 1.1 way.

To learn more about Yii 2.0 models refer to [Models](model.md) section of the guide.


Controllers
-----------

The `render()` and `renderPartial()` methods now return the rendering results instead of directly
sending them out. You have to `echo` them explicitly, e.g., `echo $this->render(...);`.

To learn more about Yii 2.0 controllers refer to [Controller](controller.md) section of the guide.

Widgets
-------
Expand Down
50 changes: 46 additions & 4 deletions docs/guide/view.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,30 @@ Intead of just scalar values you can pass anything else such as arrays or object
Widgets
-------

Widgets are a self-contained building blocks for your views. A widget may contain advanced logic, typically takes some
configuration and data and returns HTML. There is a good number of widgets bundled with Yii such as [active form](form.md),
breadcrumbs, menu or [wrappers around bootstrap component framework](boostrap-widgets.md). Additionally there are
extensions providing additional widgets such as official one for jQueryUI components.

In order to use widget you need to do the following:

```php
// Note that you have to "echo" the result to display it
echo \yii\widgets\Menu::widget(array('items' => $items));

// Passing an array to initialize the object properties
$form = \yii\widgets\ActiveForm::begin(array(
'options' => array('class' => 'form-horizontal'),
'fieldConfig' => array('inputOptions' => array('class' => 'input-xlarge')),
));
... form inputs here ...
\yii\widgets\ActiveForm::end();
```

In the code above `widget` method is used for a widget that just outputs content while `begin` and `end` are used for a
widget that wraps content between method calls with its own output. In case of the form this output is the `<form>` tag
with some properties set.

Security
--------

Expand Down Expand Up @@ -87,11 +111,11 @@ Alternative template languages
There are offlicial extensions for [Smarty](http://www.smarty.net/) and [Twig](http://twig.sensiolabs.org/). In order
to learn more refer to [Using template engines](template.md) section of the guide.

Using View object
-----------------
Using View object in templates
------------------------------

An instance of `yii\base\View` is available in view templates as `$this` variable. Using it you can do many useful things
including setting page title and meta, registering scripts and accessing the context.
An instance of `yii\base\View` component is available in view templates as `$this` variable. Using it in templates you
can do many useful things including setting page title and meta, registering scripts and accessing the context.

### Setting page title

Expand Down Expand Up @@ -314,3 +338,21 @@ echo $this->context->getRoute();
### Caching blocks

To learn about caching of view fragments please refer to [caching](caching.md) section of the guide.

Customizing View component
--------------------------

Since view is also an application component named `view` you can replace it with your own component that extends
from `yii\base\View`. It can be done via application configuration file such as `config/web.php`:

```php
return array(
// ...
'components' => array(
'view' => array(
'class' => 'app\components\View',
),
// ...
),
);
```

0 comments on commit f11ecb9

Please sign in to comment.