Yii’s client side is built with jQuery — the widely used, powerful, and simple to learn
JavaScript library.
This chapter focuses on Yii-specific tricks rather than jQuery itself.

Loading a block through AJAX

Managing assets

Including resources into the page

Working with JSON

Passing configuration from PHP to JavaScript

Handling variable number of inputs

Rendering content at the client side

Chapter 4, Working with Forms

Yii makes working with forms a breeze and documentation on it is almost complete.
Still there are some areas that need clarification and examples. Some of the topics
covered in this chapter are creating own validators and input widgets,
uploading files, using and customizing CAPTCHA.

Writing your own validators

Uploading files

Adding CAPTCHA

Customizing CAPTCHA

Creating a custom input widget with CInputWidget

Chapter 5, Testing Your Application

This chapter covers both unit testing, functional testing and generating
code coverage reports. Recipes are following test driven development
approach: you'll write tests for several small applications and then will
implement functionality.

Setting up the testing environment

Writing and running unit tests

Using fixtures

Testing the application with functional tests

Generating code coverage reports

Chapter 6, Database, Active Record, and Model Tricks

In this chapter you’ll learn how to work with database efficiently,
when to use models and when not to, how to work with multiple databases,
how to automatically pre-process Active Record fields and how to use
powerful database criteria.

Getting data from a database

Defining and using multiple DB connections

Using scopes to get models for different languages

Processing model fields with AR event-like methods

Applying markdown and HTML

Highlighting code with Yii

Automating timestamps

Setting an author automatically

Implementing single table inheritance

Using CDbCriteria

Chapter 7, Using Zii Components

This chapter covers data providers, grids and lists: how to configure
sorting and search, how to use grids with multiple related models, how to
create your own column types and more.

Using data providers

Using grids

Using lists

Creating custom grid columns

Chapter 8, Extending Yii

Shows not only how to implement your own Yii extension
but how to make your extension reusable and useful for community.
Also we’ll focus on many things you should do to make your extension as
efficient as possible.

Creating model behaviors

Creating components

Creating reusable controller actions

Creating reusable controllers

Creating a widget

Creating CLI commands

Creating filters

Creating modules

Creating a custom view renderer

Making extensions distribution-ready

Chapter 9, Error Handling, Debugging, and Logging

In this chapter we will review logging, analysing exception stack trace
and will implement our own error handler.

Using different log routes

Analyzing the Yii error stack trace

Logging and using the context information

Implementing your own smart 404 handler

Chapter 10, Security

You’ll learn how to keep your application secure according
to general web application security principle “filter input escape output”.
We’ll cover such topics as creating your own controller filters,
preventing XSS, CSRF and SQL injections, escaping output and using role
based access control.

Using controller filters

Using CHtml and CHtmlPurifier to prevent XSS

Preventing SQL injections

Preventing CSRF

Using RBAC

Chapter 11, Performance Tuning

In this chapter we’ll show how to configure Yii to gain extra performance.
Also you’ll learn some best practices of developing an application that
will run smooth until you have very high loads.

Following best practices

Speeding up sessions handling

Using cache dependencies and chains

Profiling an application with Yii

Leveraging HTTP caching

Chapter 12, Using External Code

Focuses on using third party code with Yii. We'll use Zend Framework,
Kohana and PEAR but you'll be able to use any code after learning how
it works.

Using Zend Framework from Yii

Customizing the Yii autoloader

Using Kohana inside Yii

Using PEAR inside Yii

Using Composer with Yii

Chapter 13, Deployment

Covers various tips that are especially useful on
application deployment, when developing application in team or when
you just want to make your development environment more comfortable.

Changing the Yii directories layout

Moving an application out of webroot

Sharing the framework directory

Moving configuration parts into separate files

Using multiple configurations to simplify the deployment

Implementing and executing cron jobs

Maintenance mode

First edition

Chapter 1, Under the Hood

Will tell you about most interesting Yii features hidden under the hood:
events, import, autoloading, exceptions, component and widget
configuration and more.

Yii’s client side is built with jQuery — the widely used, powerful, and simple to learn
JavaScript library.
This chapter focuses on Yii-specific tricks rather than jQuery itself.

Loading a block through AJAX

Managing assets

Including resources into the page

Working with JSON

Passing configuration from PHP to JavaScript

Handling variable number of inputs

Chapter 4, Working with Forms

Yii makes working with forms a breeze and documentation on it is almost complete.
Still there are some areas that need clarification and examples. Some of the topics
covered in this chapter are creating own validators and input widgets,
uploading files, using and customizing CAPTCHA.

Writing your own validators

Uploading files

Adding CAPTCHA

Customizing CAPTCHA

Creating a custom input widget with CInputWidget

Chapter 5, Testing Your Application

This chapter covers both unit testing, functional testing and generating
code coverage reports. Recipes are following test driven development
approach: you'll write tests for several small applications and then will
implement functionality.

Setting up the testing environment

Writing and running unit tests

Using fixtures

Testing the application with functional tests

Generating code coverage reports

Chapter 6, Database, Active Record, and Model Tricks

In this chapter you’ll learn how to work with database efficiently,
when to use models and when not to, how to work with multiple databases,
how to automatically pre-process Active Record fields and how to use
powerful database criteria.

Getting data from a database

Defining and using multiple DB connections

Using scopes to get models for different languages

Processing model fields with AR event-like methods

Applying markdown and HTML

Highlighting code with Yii

Automating timestamps

Setting an author automatically

Implementing single table inheritance

Using CDbCriteria

Chapter 7, Using Zii Components

This chapter covers data providers, grids and lists: how to configure
sorting and search, how to use grids with multiple related models, how to
create your own column types and more.

Using data providers

Using grids

Using lists

Creating custom grid columns

Chapter 8, Extending Yii

Shows not only how to implement your own Yii extension
but how to make your extension reusable and useful for community.
Also we’ll focus on many things you should do to make your extension as
efficient as possible. This chapter is available for free.

Creating model behaviors

Creating components

Creating reusable controller actions

Creating reusable controllers

Creating a widget

Creating CLI commands

Creating filters

Creating modules

Creating a custom view renderer

Making extensions distribution-ready

Chapter 9, Error Handling, Debugging, and Logging

In this chapter we will review logging, analysing exception stack trace
and will implement our own error handler.

Using different log routes

Analyzing the Yii error stack trace

Logging and using the context information

Implementing your own smart 404 handler

Chapter 10, Security

You’ll learn how to keep your application secure according
to general web application security principle “filter input escape output”.
We’ll cover such topics as creating your own controller filters,
preventing XSS, CSRF and SQL injections, escaping output and using role
based access control.

Using controller filters

Using CHtml and CHtmlPurifier to prevent XSS

Preventing SQL injections

Preventing CSRF

Using RBAC

Chapter 11, Performance Tuning

In this chapter we’ll show how to configure Yii to gain extra performance.
Also you’ll learn some best practices of developing an application that
will run smooth until you have very high loads.

Following best practices

Speeding up sessions handling

Using cache dependencies and chains

Profiling an application with Yii

Chapter 12, Using External Code

Focuses on using third party code with Yii. We'll use Zend Framework,
Kohana and PEAR but you'll be able to use any code after learning how
it works.

Using Zend Framework from Yii

Customizing the Yii autoloader

Using Kohana inside Yii

Using PEAR inside Yii

Chapter 13, Deployment

Covers various tips that are especially useful on
application deployment, when developing application in team or when
you just want to make your development environment more comfortable.