controller actions (also known as commands) so that all processing is centralized. As you’d expect from a fully
featured system, the controller supports plug-ins at all levels of the process and has built in flex-points to
enable you to change specific parts of the behavior without having to do too much work.
The view template system is called Zend_View which provides a PHP based template system. This means
that, unlike Smarty or PHPTAL, all the view templates are written in PHP. Zend_View provides a helper plugin
system to allow for creation of reusable display code. It is designed to allow for overriding for specific
requirements, or even replacing entirely with another template system such as Smarty.
Zend_Db_Table implements a table row gateway pattern to form the basis of the model within the MVC
system. The model provides the business logic for the application which is usually database-based in a web
application. Supporting Zend_Db_Table is Zend_Db which provides object oriented, database independent
access to a variety of different databases, such as MySQL, Postgres, SQL Server, Oracle and SQLite.
The most simplistic setup of the MVC components can be done with the very simple code:
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('/path/to/your/controllers');
It is more likely, however, that a more complicated bootstrap file will be required for a non-trivial
application as we will explore in chapter 2 when we build a complete Hello World application in Zend
Framework.
Working with the MVC classes are a couple of separate classes that are used to create the core of a
complete application. The framework encourages convention over configuration, however some configuration
is invariably required (such as database login details). Zend_Config allows for reading configuration data in
