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

Installing a New Copy of Your Application

Sooner or later, you will face the task of installing a new copy of your application - either you get a new developer on your team or you need to deploy your app to a testing/staging/live environment. With all the work we just invested that's a simple task. Here's what you do:


  1. Check out or export your application from the VCS.
  2. Copy and adapt the build script in dev/bin/
  3. Call dev/bin/agavi public-create and answer the questions (we assume a development-joe-rambo environment here):
bloggie$ dev/bin/agavi public-create

Name of the environment to bootstrap in dispatcher scripts [development]: development-joe-rambo
Should an Apache .htaccess file with rewrite rules be generated (y/n) [n]? 

This will copy all files from dev/pub to the appropriate place in app/pub and adjust the environment to bootstrap. Add configs for your new environment as needed, done.