Zend Framework 1.8.0 Released

I’m pleased to announce the Zend Framework 1.8.0 release, the first in our
1.8 series of releases. This release marks the culmination of several
long-standing projects, as well as a formalization of many of our
recommended practices.

There are two major stories in this release: first, the addition of several
components designed to provide and promote Rapid Application Development;
second, two offerings that make using Zend Framework in the cloud easier.

Download it now!

Rapid Application Development

1.8.0 marks the first public release of Zend_Tool.
At its simplest, Zend_Tool provides a command-line script that can
be used to ease many common project-related tasks: setting up the project
tree, adding controllers, actions (and related view scripts), model classes,
etc. More advanced users can create their own tool providers that can then
be directly invoked from that script — or even create their own RPC
endpoints so as to expose the tooling on the web or via a web service.

As an example of it in action, check out this screenshot:

zf.sh Help Screen

In a related vein, 1.8 also introduces Zend_Application, which
provides a standard and object oriented method for bootstrapping
applications. Bootstraps may define their own initialization resources, or
draw upon some common plugins to do their work. Additionally, resources may
be bootstrapped individually, allowing you to utilize a common bootstrap
with multiple gateway scripts tailored for different tasks.

One dependency of Zend_Application is
Zend_Loader_Autoloader. Zend_Loader_Autoloader is a
replacement for Zend_Loader::autoload(), and solves many of the
issues users have reported with that solution. Additionally, it provides the
ability to manage a stack of namespaced autoloaders, working around some
minor issues of the SPL’s autoloader as well as providing opportunistic
matching of namespace prefixes to match your classes quickly. A
subcomponent, Zend_Loader_Autoloader_Resource provides a simple
mechanism for mapping classes to the filesystem when the directory structure
may not exactly correspond to the class name. By using an autoloader by
default, you can help keep your code more performant as well as leave class
resolution out of your code — greatly epediting application development.

Note: the Zend
Framework Quick Start
has been updated to use Zend_Tool and
Zend_Application. It’s an excellent introduction to these
components as well as Zend Framework’s MVC in general.

Cloud Computing

Web 2.0 applications have many demands not seen in traditional web
applications. One of these is the need for distributed storage, and another
is the need to scale horizontally on demand as traffic to your site spikes.

Amazon has provided solutions to both
of these problems for several years now with its Simple Storage Service (S3) and Elastic Compute Cloud (EC2),

Amazon S3 provides web services developers may use to store and retrieve
data. The service is distributed, and thus highly scalable, reliable, and
fast. Zend_Service_Amazon_S3 provides an object oriented approach
to the service, as well as a PHP streams wrapper — both designed to make
working with S3 from your PHP applications a simple matter.

Amazon EC2 provides a web service to allow launching and managing server
instances within Amazon’s data centers. These server instances may be used
at any time for any length of time — allowing you to scale your site only
when you need to handle extra traffic, or run your services entirely from
the EC2 platform.

Other Contributions

The number of community contributions and bug fixes for 1.8.0 has been
phenomenal. Below is a list of the primary feature additions for the

  • Zend_Tool, contributed by Ralph Schindler
  • Zend_Application, contributed by Ben Scholzen and Matthew Weier O’Phinney
  • Zend_Loader_Autoloader and Zend_Loader_Autoloader_Resource, contributed by Matthew Weier O’Phinney
  • Zend_Navigation, contributed by Robin Skoglund
  • Zend_CodeGenerator, by Ralph Schindler
  • Zend_Reflection, Ralph Schindler and Matthew Weier O’Phinney
  • Zend Server backend for Zend_Cache, contributed by Alexander Veremyev
  • Zend_Service_Amazon_Ec2, contributed by Jon Whitcraft
  • Zend_Service_Amazon_S3, Justin Plock and Stas Malyshev
  • Incorporated Dojo 1.3
  • Added support for arbitrary Dojo Dijits via view helpers
  • Zend_Filter_Encrypt, contributed by Thomas Weidner
  • Zend_Filter_Decrypt, contributed by Thomas Weidner
  • Zend_Filter_LocalizedToNormalized and
    _NormalizedToLocalized, contributed by Thomas Weidner
  • Support for file upload progress support in Zend_File_Transfer, contributed by Thomas Weidner
  • Translation-aware routes, contributed by Ben Scholzen
  • Route chaining capabilities, contributed by Ben Scholzen
  • Zend_Json expression support, contributed by Benjamin Eberlei and Oscar Reales
  • Zend_Http_Client_Adapter_Curl, contributed by Benjamin Eberlei
  • SOAP input and output header support, contributed by Alexander Veremyev
  • Support for keyword field search using query strings, contributed by Alexander Veremyev
  • Support for searching across multiple indexes in Zend_Search_Lucene, contributed by Alexander Veremyev
  • Significant improvements for Zend_Search_Lucene search result match highlighting capabilities, contributed by Alexander Veremyev
  • Support for page scaling, shifting and skewing in Zend_Pdf, contributed by Alexander Veremyev
  • Zend_Tag_Cloud, contributed by Ben Scholzen
  • Locale support in Zend_Validate_Int and
    Zend_Validate_Float, contributed by Thomas Weidner
  • Phonecode support in Zend_Locale, contributed by Thomas Weidner
  • Zend_Validate_Db_RecordExists and _RecordNotExists, contributed by Ryan Mauger
  • Zend_Validate_Iban, contributed by Thomas Weidner
  • Zend_Validate_File_WordCount, contributed by Thomas Weidner

In addition, we recorded well over 200 bug fixes for this release.

Please join me in a hearty round of congratulations and acknowledgment of
all contributors who helped make this release possible through code
contributions, feedback, testing, documentation, translations, and issue