# The Definitive Guide to Yii 2.0 ¶

This tutorial is released under the Terms of Yii Documentation.

All Rights Reserved.

2014 (c) Yii Software LLC.

## Introduction ¶

- About Yii
- Upgrading from Version 1.1

## Getting Started ¶

- What do you need to know
- Installing Yii
- Running Applications
- Saying Hello
- Working with Forms
- Working with Databases
- Generating Code with Gii
- Looking Ahead

## Application Structure ¶

- Application Structure Overview
- Entry Scripts
- Applications
- Application Components
- Controllers
- Models
- Views
- Modules
- Filters
- Widgets
- Assets
- Extensions

## Handling Requests ¶

- Request Handling Overview
- Bootstrapping
- Routing and URL Creation
- Requests
- Responses
- Sessions and Cookies
- Handling Errors
- Logging

## Key Concepts ¶

- Components
- Properties
- Events
- Behaviors
- Configurations
- Aliases
- Class Autoloading
- Service Locator
- Dependency Injection Container

## Working with Databases ¶

- Database Access Objects: Connecting to a database, basic queries, transactions, and schema manipulation
- Query Builder: Querying the database using a simple abstraction layer
- Active Record: The Active Record ORM, retrieving and manipulating records, and defining relations
- Migrations: Apply version control to your databases in a team development environment
- Sphinx
- Redis
- MongoDB
- ElasticSearch

## Getting Data from Users ¶

- Creating Forms
- Validating Input
- Uploading Files
- Collecting Tabular Input
- Getting Data for Multiple Models
- Extending ActiveForm on the Client Side

## Displaying Data ¶

- Data Formatting
- Pagination
- Sorting
- Data Providers
- Data Widgets
- Working with Client Scripts
- Theming

## Security ¶

- Security Overview
- Authentication
- Authorization
- Working with Passwords
- Cryptography
- Auth Clients
- Best Practices

## Caching ¶

- Caching Overview
- Data Caching
- Fragment Caching
- Page Caching
- HTTP Caching

## RESTful Web Services ¶

- Quick Start
- Resources
- Controllers
- Routing
- Response Formatting
- Authentication
- Rate Limiting
- Versioning
- Error Handling

## Development Tools ¶

- Debug Toolbar and Debugger
- Generating Code using Gii
- Generating API Documentation

## Testing ¶

- Testing Overview
- Testing environment setup
- Unit Tests
- Functional Tests
- Acceptance Tests
- Fixtures

## Special Topics ¶

- Advanced Project Template
- Building Application from Scratch
- Console Commands
- Core Validators
- Docker
- Internationalization
- Mailing
- Performance Tuning
- Shared Hosting Environment
- Template Engines
- Working with Third-Party Code
- Using Yii as a micro framework

## Widgets ¶

- GridView
- ListView
- DetailView
- ActiveForm
- Pjax
- Menu
- LinkPager
- LinkSorter
- Bootstrap Widgets
- jQuery UI Widgets

## Helpers ¶

- Helpers Overview
- ArrayHelper
- Html
- Url