Zend Framework 1.8.0 Released

April 30, 2009

News, Zend Framework

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:

src="http://framework.zend.com/manual/en/figures/zend.tool.framework.clihelp.png"
alt="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 href="http://aws.amazon.com/s3/">Simple Storage Service (S3) and href="http://aws.amazon.com/ec2/">Elastic Compute Cloud (EC2),
respectively.

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
release.

  • 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
reports!

About Matthew Weier O'Phinney

Matthew is an open source software architect, specializing in PHP. He is currently project lead for Zend Framework, a project with which he has been involved since before the first public preview release. He is a Zend Certified Engineer, and a member of the Zend Education Advisory Board, the group responsible for authoring the Zend Certification Exam. He contributes to a number of open source projects, blogs on PHP-related topics, and presents talks and tutorials related to PHP development and the projects to which he contributes. You can read more of his thoughts on his blog, weierophinney.net/matthew/.

View all posts by Matthew Weier O'Phinney

15 Responses to “Zend Framework 1.8.0 Released”

  1. chrisdeman Says:

    yes why in the docs zend tool controller is listed twice? and no model

  2. mundt Says:

    it’s becoming more like symfony
    and symfony becomes more like zf

  3. tim@mentele.net Says:

    I must be using a different version of Zend_Tool (I just downloaded 1.8 today) because when I try to create a model ‘$ zf create model’ I get "An Error Has Occurred
    Provider ‘model’ is not a valid provider." – I also cannot create a db-adapter either.

    $ zf show version
    Zend Framework Version: 1.8.0

    $ zf create model
    An Error Has Occurred
    Provider ‘model’ is not a valid provider.

    Zend Framework Command Line Console Tool v1.8.0

    ——————–
    that said, according to http://framework.zend.com/manual/en/zend.tool.project.providers.html — this may be correct? so are the screenshots incorrect or did I get an incorrect version?

  4. weierophinney Says:

    Thanks, everyone, for your feedback!

    @rele: thanks — I’ll remove that symlink for the next site
    iteration.

    @randall_wiggins: Hit shift-reload. :)

    @armandop: Providers aren’t quite the same as Gems; gems are
    self-contained packages, and in that regard are more similar to PEAR
    packages. Providers are simply classes that implement specific interfaces in
    order to hook into the Zend_Tool_Framework, and which do a particular unit
    of work. As for sharing them, yes, I think that’d be great. Currently, we
    have no immediate plans to develop such functionality, however.

    @netsuvi: The list is in our issue tracker: issues
    resolved for 1.8.0
    . These are issues resolved specifically for 1.8.0,
    and does not include the list of bugs fixed during the 1.7 series (though
    all of those are incorporated in the 1.8.0 release as well).

  5. netsuvi Says:

    Hi there

    Is there a list of the 200 bugfixes? Jira list or similar?

    Are this all 1.8 Fixes or fixed in the 1.7.x branches as well?

    Cheers

  6. dsapriza Says:

    Very good… lets try it!

  7. armandop Says:

    Im reading the documentation on Zend Tool, specifically this section http://framework.zend.com/manual/en/zend.tool.framework.writing-providers.html. This seems to me like Zend Framework’s answer to Ruby on Rails’ Gems. This is great. Now my question is, if developers can create their own provider (pre packaged code and procedures) will there be a web site were developers can share their creations so the community can leverage? Do you guys need help to set this up? lol

    Again great work

  8. randall_wiggins Says:

    The logo still says 1.7 :)

  9. leandrorc Says:

    Congratulations guys, i’m loving to use this great framework and i’m sure we can do it even better!

  10. armandop Says:

    Great news from a great team. Thanks guys for the hard work. Started to use the Zend_Tool for my new projects and its speeding up development already :-)

  11. ultra_blue Says:

    Good job everybody! I can’t wait to get my hands dirty.

  12. _____anonymous_____ Says:

    New DB validators are a great idea and time savior.
    Json expression support as well, may avoid my need to hack zendX_jQuery UI.
    Looking forward to test Zend_Application.

  13. rele Says:

    The archive http://framework.zend.com/demos/ZendFrameworkQuickstart-20090430.tar.gz contains a symbolic link:

    ZendFrameworkQuickstart-20090430\library\Zend -> \home\matthew\git\zf-standard\trunk\library\Zend

  14. mintao Says:

    2 days ago I started reading the new 1.8 beta documentation and already tried some things out. Some real great improvements! I’m already creating a new project with the help of the Zent Tool as well as the great new "Quick Start" documentation.
    Everything wents well … so far ;)

    Thank you guys! This is real amazing work!

    Florian Fackler
    Germany

  15. davepoon Says:

    Thank you for all your hard work!
    Can’t wait to try Zend_Tool and Zend_Application,
    see how they can improve my work.