1. Introduction
    1. About Agavi
    2. MVC in Agavi
    3. Overview of Agavi services
    4. Overview of application execution flow
    5. Application filesystem layout
    6. Overview of application configuration
  2. Setting up the initial application
    1. Installing Agavi
    2. Creating an Agavi project
    3. Configuring Bloggie
    4. Configuring a Web server
  3. Using basic Agavi facilities
    1. A blog application expressed in Agavi
    2. Preparation
    3. Using Models
    4. Creating Actions and Views
    5. Using Routing
    6. Running Bloggie
  4. Styling Bloggie with templates
    1. How layered output works
    2. Output Types
    3. Configuring Bloggie layouts
  5. Creating the comment system
    1. Implementing the comments Action in a slot
    2. Using system Actions
    3. Adding validation to sanitize user input
  6. Creating protected administration Actions
    1. Basics of authentication and security
    2. Creating secure Actions

Introduction

About this tutorial

This tutorial provides a high-level overview of the architecture of the Agavi application framework, examining various common Web application problems and how Agavi addresses them. It does not cover more exotic cases which eventually invite themselves into your project plans. For advanced magic you should consult the User's Guide and the Cookbook.

This tutorial will cover the complete development cycle of a PHP blog engine, from a basic skeleton application to a working and themed implementation. It is broken down into stages: each chapter involves the creation of a partial implementation, so you can see the blog software in various stages of development and make comparisons. The stages are available as tarballs.

The final version of the blog engine is also the official demo application of Agavi. It is extremely well documented and showcases many of the features Agavi has to offer.

Note: This tutorial is written for an experienced developer who has created Web applications in the past. It does not include a detailed discussion of the Model-View-Controller (MVC) pattern or its associated implications, benefits, and disadvantages. There is certain basic knowledge that you must possess to understand and wield the power of a production framework. Agavi is not complicated, but it is certainly vast. If you are a newcomer to Web application development, you should start your quest by studying MVC and HTTP mechanics. HTTP and the MVC architecture have a profound influence on how developers structure software and design user interfaces, sometimes in subtle ways.
Note: Since this tutorial focuses on building a Web application, it will often refer to Agavi features specifically within a Web context. However, Agavi is designed to be able to run in multiple contexts; most of the Web-oriented behaviors described can be easily generalized.

Let's get started!