The Zend Framework has been unveiled! Although it is still in the early stages of development, this tutorial highlights some of the best of what's available now and guides you through the process of building a simple application.
Zend has chosen to release the framework and involve the community early. In the same spirit, this tutorial is written to showcase the framework as it exists today. Because this tutorial is published online, I'll update it as the framework evolves, so that it remains relevant as long as possible.mod_rewrite
. The code from this tutorial is available for free download, so you can try it out for yourself. You can download it from the Brain Bulb web site at
http://brainbulb.com/zend-framework-tutorial.tar.gz.
tar.gz
or
zip
download, or you can use the command line:
$ wget http://framework.zend.com/download/tgz
$ tar -xvzf ZendFramework-0.1.2.tar.gz
library
directory and place it somewhere convenient. In this tutorial, I rename
library
to
lib
to provide a clean and simple directory structure:
app/
views/
controllers/
www/
.htaccess
index.php
lib/
www
directory is the document root,
controllers
and
views
are empty directories you'll use later, and the
lib
directory is from the preview release download.
Zend_Controller
. In many ways, it provides the foundation of the application you're developing, and it's also part of what makes the Zend Framework more than just a collection of components. Before you can use it, however, you need to direct all incoming requests to a single PHP script. This tutorial uses
mod_rewrite
for this purpose. Using
mod_rewrite
is an art in itself, but luckily, this particular task is very simple. If you're unfamiliar with
mod_rewrite
or configuring Apache in general, create a
.htaccess
file in the document root and add the following directives:
RewriteEngine on
RewriteRule !/.(js|ico|gif|jpg|png|css)$ index.php
Zend_Controller
is to remove the
mod_rewrite
dependency. In order to provide an example that works with the preview release, this tutorial uses
mod_rewrite
.
httpd.conf
directly, you must restart the web server. Otherwise, if you use a
.htaccess
file, you should be good to go. You can quickly test this by placing some identifiable text in
index.php
and making a request for an arbitrary path such as
/foo/bar
. For example, if your host is
example.org
, request the URL
http://example.org/foo/bar. You also want
include_path
to include the path to the framework library. You can do this in
php.ini
, or you can just put the following directive in your
.htaccess
file:
php_value include_path "/path/to/lib"
Zend
class contains a collection of static methods that are universally useful. This is the only class you must include manually:
<?php
include 'Zend.php';
?>
Zend.php
, you have access to all of the methods from the
Zend
class. Loading other classes is simplified with the
loadClass()
method. For example, to load the
Zend_Controller_Front
class:
<?php
include 'Zend.php';
Zend::loadClass('Zend_Controller_Front');
?>
loadclass()
method is
include_path
aware, and it also understands the organization and directory structure of the framework. I use it to load all other classes.