1. Introduction
    1. About Agavi
    2. MVC in Agavi
    3. Overview of Agavi
    4. Overview of Application Execution Flow
    5. A Word About Actions
    6. Application filesystem layout
    7. Overview of application configuration
  2. Setting Up The Initial Application
    1. Installing Agavi
    2. Creating an Agavi Project
    3. Finishing The Setup
    4. Finishing The Basic Setup
    5. Installing a New Copy of Your Application
  3. Adding First Code
    1. Creating A New module
    2. Creating A New Action
    3. Tying Things Together — An Introduction To Routing
    4. Fixing The Bloggie Routing
    5. Accessing Request Parameters and Validation Basics
    6. Handling Validation Errors
  4. Putting The M in MVC
    1. Creating A New Model
    2. Adapting The Actions and Views
    3. Custom Validators
  5. Polishing It Up
    1. Layers and Layouts
    2. Applying Our Layout
    3. What Are Slots?
    4. Adding The Post's Title To The URL
    5. Routing Callbacks
    6. Using Callbacks for the Title in URLs
  6. Connecting to a database
    1. The Database Manager
  7. Handling Output Variants
    1. Output Types
    2. Exception Templates
    3. Generating an RSS Feed
  8. Form Processing
    1. Adding a Post
    2. Editing a Post
    3. The Form Population Filter (FPF)
  9. Creating a User Authentication System
  10. Adding To The Master Template

Creating an Agavi Project

Once Agavi is installed on your system, you can begin using the project configuration system to manage your projects. This system can be accessed using the agavi shell script.

Creating an Empty Agavi Application

This means that you are ready to create the structure for your new blog application, affectionately called "Bloggie" (feel free to give it a less cuddly name if you can't stand it; the developers recommend "Incredible Scorpion-Powered Blog Application of Doom").

To create a project, first create a directory in your webservers document root directory where the application will reside. For the tutorial we'll assume that you're using a server at localhost and the application directory is named "bloggie". So, if your webservers document root is located at /srv/www, create the directory /srv/www/bloggie, if you're using windows and the document root is at C:\xampp\ create C:\xampp\bloggie. Then change to that newly created directory and invoke agavi project-wizard. Some of the prompts may seem confusing at first—don't worry, you will have a chance to explore their meaning in more depth after your project is created. For the time being only provide a name for the project, a prefix to be used for all project specific classes and just leave the defaults for the rest, so press enter when those prompts appear.

www$ mkdir bloggie
www$ cd bloggie
bloggie$ agavi project-wizard

Project base directory [/srv/applications/bloggie]:

Project name [New Agavi Project]: Bloggie
Project prefix (used, for example, in the project base action) [Bloggiedemo]: Blog
Default template extension [php]:

Name of the environment to bootstrap in dispatcher scripts [development]:

Should an Apache .htaccess file with rewrite rules be generated (y/n) [n]?

Space-separated list of modules to create for Bloggie [Default]:

Space-separated list of actions to create for Default:

Module for default system action [Default]:

Action for default system action [Index]:

Space-separated list of views to create for Index [Success]:

Module for error_404 system action [Default]: 

Module for unavailable system action [Default]:

Module for module_disabled system action [Default]:

Module for secure system action [Default]:

Module for login system action [Default]:

bloggie$

Congratulations! You have created a brand new Agavi application. Point your favorite browser to http://localhost/bloggie/pub/ and you should be greeted by the agavi welcome page.