The Yii Book: Initial Table of Contents

September 17, 2012
The Yii Book If you like my writing on the Yii framework, you'll love "The Yii Book"!

Okay…here it is…the initial table of contents for my Yii book, to be self-published in electronic format (initially, print copies may come later). A couple of notes:

There are two goals for the book. The first is to help readers understand why you do things in certain ways. In other words, I want the reader to fully understand what’s going on behind the scenes so that he or she appreciates the context for whatever bit of code. This big picture approach is what I think is missing among the current documentation. The second goal is to demonstrate common tasks using real-world examples.

The table of contents as presented here is probably about 80% or so reflective of what the final book will be. Some things will change during the writing process. Right now, I’m planing on developing three real-world applications: a Content Management System, an e-commerce site, and a search engine. At least two of these will be used as partial examples throughout the book, too. If there’s an example you’d like to see, please let me know.

I’m tentatively thinking the book will be titled The Yii Book: Developing Web Applications Using the Yii Framework.

Finally, I’ll start selling the book sometime within the next month. I begin formally writing it this week. Once some of the book is available for sale, I’ll provide details as to where you can do that.

Thanks to everyone for their interest in the book and please let me know if you have any questions about or suggestions for the book’s contents.

  • Introduction
    • Why Frameworks?
    • Why Yii?
    • What You’ll Need
    • About This Book
    • Getting Help

Part 1: Getting Started

  • Chapter 1: Fundamental Concepts
    • Object-Oriented Programming
    • The MVC Approach
    • Using a Web Server
    • Command Line Tools
  • Chapter 2: Starting a New Application
    • Installing the Framework
    • Identify the Goals
    • Defining the Database
    • Building the Site Shell
    • Testing the Site Shell
  • Chapter 3: A Manual for Your Yii Site
    • Yii Conventions
    • The Site’s Folders
    • The Application Object
    • Yii Components
    • Yii Exceptions
  • Chapter 4: Initial Customizations and Code Generations
    • Basic Configurations
    • Building Components with Gii

Part 2: Core Concepts

  • Chapter 5: Working with Models
    • Basic Edits
    • Changing Labels
    • Validation Scenarios
    • Applying Filters
    • Relating Models
  • Chapter 6: Working with Views
    • Basic Edits
    • Understanding Layouts
    • Rendering View Files
    • Setting Page Titles
    • Creating and Using Themes
    • Using Different Themes on Different Pages
    • Creating Static Pages
    • Creating Links
    • Preventing XSS Attacks
  • Chapter 7: Working with Controllers
    • Basic Edits
    • Understanding Routes
    • Accessing Received Data
    • Creating Actions
    • Tapping Into Filters
    • Basic Access Control
  • Chapter 8: Working with Databases
    • Understanding Active Record
    • Using Database Active Objects
    • Using QueryBuilder
    • Working with Dates
    • Handling Relationships
    • Composite Primary Keys
  • Chapter 9: Working with Forms
    • Creating Forms for Models
    • Creating Forms as Models
    • Using Form Builder
    • Common Form Needs
    • Preventing CSRF Attacks
  • Chapter 10: Maintaining State
    • Using Cookies
    • Securing Cookies
    • Using Sessions
    • Working with Flash Messages
  • Chapter 11: Authenticating Users
    • Simple Authentication
    • Custom Authentication
    • Access Control Lists
    • Role-Based Access Control
    • Forcing Login for all Pages
  • Chapter 12: Working with Widgets
    • How Widgets Work
    • Using Yii Widgets
    • Configuring Widgets
    • The jQuery UI Widgets
    • Creating Widgets
  • Chapter 13: Using Extensions
    • The Basics of Extensions
    • The bootstrap Extension
    • The glix Extension
    • WYSIWYG Editors
    • The yii-user Extension
    • Debugging Tools
  • Chapter 14: JavaScript and jQuery
    • Adding Raw JavaScript
    • Using jQuery
    • Using jQuery Plugins
    • Implementing Ajax

Part 3: Advanced Topics

  • Chapter 15: Working with Modules
    • Creating a Module
    • Using a Module
    • An Example Module
    • Using Submodules
  • Chapter 16: Working with Third-Party Libraries
    • Integrating Zend Framework Components
    • Alternative Database Libraries
    • Other Examples TBD
  • Chapter 17: Internationalization
    • Translating Messages
    • Formatting Dates
    • Formatting Numbers
    • Detecting the User’s Language
  • Chapter 18: Leaving the Browser
    • Creating Web Services
    • Creating a Console Application
  • Chapter 19: Advanced Database Issues
    • Building Queries
    • Calling Stored Procedures
    • Performing Transactions
    • Database Migration
  • Chapter 20: Improving Performance
    • Caching
    • Utilizing APC
    • Profiling Your Code
    • Database Profiling and Optimization
  • Chapter 21: Implementing Unit Tests
    • Using PHPUnit
    • Using Selenium
    • Automating Tests
  • Chapter 22: Writing Extensions
    • Creating a Stripe Extension
    • Specifics TBD

Part 4: Example Applications

  • Chapter 23: Creating a CMS
  • Chapter 24: Making an E-commerce Site
  • Chapter 25: Implementing a Search Engine
  • Chapter 26: Shipping Your Project
  • Appendix A: Frequently Asked Questions