Zend Framework 1.9.0 Released

July 31, 2009

News, Zend Framework

The Zend Framework team announces the immediate availability of version
1.9.0!

http://framework.zend.com/download/latest

Kudos and thanks go out to the huge number of community contributors who helped
make this release possible. This release has been almost entirely community
driven, with the Zend team contributing primarily feature additions to existing
components and working on maintenance of the project. If you submitted an
issue report, a documentation improvement, a patch, a documentation
translation, or a component, let it be known that you helped make
this release what it is!

The big stories in this release can be summed up in two phrases: enterprise
tools and PHP 5.3 support.

With Zend Framework making inroads to Enterprises, it’s not surprising that
we are seeing a number of components geared towards the Enterprise. In this
release, we add two new components — Zend_Queue and
Zend_Test_PHPUnit_Db — as well as additions to existing
components — Zend_Ldap, Zend_Rest_Route, and
Zend_Db_Adapter_Sqlsrv — that target such development.
Zend_Queue provides a common API for interacting with queue
services such as Apache’s ActiveMQ, MemcacheQ, and Zend Platform’s Job
Queue. Zend_Test_PHPUnit_Db brings DBUnit support to our
Zend_Test offering, and provides integration with
Zend_Db. Our Zend_Ldap support is now much more
robust, and allows connectivity with MS ActiveDirectory and Novell’s
eDirectory, as well as full CRUD and tree manipulation options.
Zend_Rest_Route allows developers to quickly develop RESTful
MVC applications, which are increasingly gaining traction when serving
public APIs. Zend_Db_Adapter_Sqlsrv interfaces with Microsoft’s
SQL Server driver for PHP.

A month ago, the PHP team released the long-awaited PHP 5.3, which offers
many improvements to the object model, as well as increased performance.
Upgrading to PHP 5.3 is mostly straightforward, but, as with any release of
this magnitude, sometimes takes some work. We have carefully audited our
code and combed through our testbed in order to provide first-class
compatibility for PHP 5.3 in Zend Framework — while simultaneously
continuing to support PHP 5.2.4 and above. Using Zend Framework on PHP
5.2 or 5.3 should be seamless and pose no issues for developers.

New features in Zend Framework 1.9.0 include:

  • Zend_Queue and Zend_Service_Amazon_Sqs, which provide
    the ability to use local and remote messaging and queue services for offloading
    asynchronous processes. (Contributed by Justin Plock and Daniel Lo)
  • Zend_Queue_Adapter_PlatformJobQueue, a Zend_Queue
    adapter for Zend Platform’s Job Queue. (Contributed by Zend Technologies)
  • Zend_Rest_Route, Zend_Rest_Controller, and
    Zend_Controller_Plugin_PutHandler, which aid in providing RESTful
    resources via the MVC layer. (Contributed by Luke Crouch, SourceForge)
  • Zend_Feed_Reader, which provides a common API to RSS and Atom
    feeds, as well as extensions to each format, caching, and a slew of other
    functionality. (Contributed by Pádraic Brady and Jurrien Stutterheim)
  • Zend_Db_Adapter_Sqlsrv, a Zend_Db adapter for Microsoft’s SQL
    Server driver for PHP. (Contributed by Juozas Kaziukenas and Rob Allen)
  • Zend_Db_Table updates to allow using Zend_Db_Table as
    a concrete class by passing it one or more table definitions via the
    constructor. (Contributed by Ralph Schindler)
  • Zend_Test_PHPUnit_Db, which provides Zend_Db support
    for PHPUnit’s DBUnit support, allowing developers to do functional and
    integration testing against databases using data fixtures. (Contributed by
    Benjamin Eberlei)
  • Annotation processing support for Zend_Pdf, as well as performance
    improvements. (Contributed by Alexander Veremyev)
  • Zend_Dojo custom build layer support. (Contributed by Matthew Weier
    O’Phinney)
  • Dojo upgraded to 1.3.2.
  • Numerous Zend_Ldap improvements, including full support for CRUD
    operations, search, and manipulating tree structures. (Contributed by Stefan
    Gehrig)
  • Zend_Log_Writer_Syslog, a Zend_Log writer for writing
    to your system log. (Contributed by Thomas Gelf)
  • Zend_View_Helper_BaseUrl, a view helper for returning the current
    base URL to your application, as well as for constructing URLs to public
    resources. (Contributed by Robin Skoglund and Geoffrey Tran)
  • Zend_Date now has support for the DateTime extension.
    (Contributed by Thomas Weidner)
  • Zend_Locale has been upgraded to CLDR 1.7. (Contributed by Thomas
    Weidner)
  • Zend_Translate now has plurals support for the Gettext, Csv, and
    Array adapters. (Contributed by Thomas Weidner)
  • PHP 5.3 compatibility, including support for new features in the mysqli
    extension. All components are fully tested on both PHP 5.2.4 and above, as
    well as PHP 5.3.0.

In addition, a large number of smaller improvements were made throughout
the framework, and around 700 issues have been resolved or closed since
the release of 1.8.0!

Any project the size of Zend Framework will inevitably run into issues where
backwards compatibility breaks occur. While we strive to keep these to a
minimum, we still needed to introduce several changes and updates in this
version. They include the following:

Zend_Http_Client
A change was made in Zend_Http_Client to correct ZF-5744 (Multiple file uploads
using the same $formname in setFileUpload). Instead of returning an associative
array of element name => upload information pairs, it now returns an array of
arrays, with the element name as part of the upload information. This allows
multiple file uploads using the same element name.
Zend_Config_Xml
One deciding factor for many when choosing which
Zend_Config format to use for their application config had
to do with support for constants. Our application recommendations
include defining two constants, APPLICATION_ENV and
APPLICATION_PATH, and many developers have found it useful
that in INI and PHP configurations, these constants are expanded during
parsing. Zend_Config_Xml now supports this via an XML
namespace as follows:


<config xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/">
    <production>
        <includePath><zf:const
            zf:name="APPLICATION_PATH"/>/library</includePath>
    </production>
</config>
        

On the PHP side, nothing changes.

Zend_Translate_Adapter_Ini
Prior to PHP 5.3, parse_ini_file() and
parse_ini_string() handled non-ASCII characters in INI
option values without an issue. However, starting in PHP 5.3, such
options will now be silently dropped in the array returned. If you are
upgrading to PHP 5.3 and using Zend_Translate_Adapter_Ini,
this could cause potential issues for you. If you use UTF-8 or Latin-1
characters in your INI option keys (which are the message IDs for
translation), you should either modify these to use only ASCII
characters, or choose a different translation adapter.
Zend_Service_Amazon
Zend_Service_Amazon has been updated to comply with the
latest Amazon ECommerce APIs — which, as of 15 August 2009, will
require an API key for authentication. As a result, if you now use
Zend_Service_Amazon, you will need to pass your API key to
the Zend_Service_Amazon constructor:


$amazon = new Zend_Service_Amazon($appId, $countryCode, $apiKey);
        

Otherwise, usage of this component remains the same.

A detailed list of all features and bug fixes in this release may be found at:

http://framework.zend.com/changelog/1.9.0

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! Without you, the community, Zend Framework would not be
where it is today!

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

21 Responses to “Zend Framework 1.9.0 Released”

  1. giansim Says:

    Wow I am looking forward to this too! Very nice release!

    <a href="www.revitolacnezinereviews.com>Revitol Acnezine<a/>

  2. firecall Says:

    Another outstanding update!

    I’m with MWOP on the compatibility issues. I believe that people need to keep up. You’ve got to upgrade for performance and compatibility issues. You’ve got to force progress. If you are in a comfort zone of an old version, get out of it. There are people out there still using PHP4 ffs. :/

  3. tonypeterson Says:

    Looking forward to this new release myself. Hopefully I won’t run into to many issues with my code. Thanks!

  4. pheromones Says:

    This looks good. Will play with framework today.

  5. arinsblogcdyt Says:

    >>I think 1.9.0 is one hell of a great release

    Hello mwolff ,

    Yes I agree 100% with your comment! Let detractors say whatever they want to say. True that this new release could have been made better, but then again, I just love the new cool features we get with this new framework! Keep up the good work folks!

  6. lion21 Says:

    I guess zf is the fastest growing framework in the world, thanks to all contributers for making our life so much easier.

  7. morrigantargaryen Says:

    We still use PHP 5.2.3 on some of our servers. Will there be any compatibility issues? It says the minimum is 5.2.4 but then it says "Using Zend Framework on PHP 5.2 or 5.3 should be seamless and pose no issues for developers.", so I want to make sure before I try to install it.

    Thanks.

  8. carmen539tu Says:

    >>I’ve been testing using Zend Server CE for my PHP, and it seems to work pretty well in a live environment, especially as packages can be downloaded through yum.

    Hi Pixel,

    Thank you so much for that valuable information. After reading all those rather depressing posts, your post comes as a breath of fresh air and gives me new hope. Thanks again!

  9. pixel_lab Says:

    I’ve been testing using Zend Server CE for my PHP, and it seems to work pretty well in a live environment, especially as packages can be downloaded through yum.

    This is the solution I have come up with for Red Hat only offering 5.1.6.

  10. marlen456y Says:

    >>ouch .. just realized that since 1.7 the minimal required version of PHP has been bumped up. I havent seen any issues so far, but most of my projects are stuck on RHEL5 => PHP 5.1.6

    Oh, I see. that is not good. I am in the same boat as you. I guess I need to upgrade all my current projects to be compatible with PHP 5.2.4 or higher, or else this new Zend framework won’t work. Oh what a headache! :(

    Thanks for the information though!

  11. nastytoe Says:

    Woot! have been looking forward to this one. The new APIs are going to make my life much easier!

  12. chrisweb369 Says:

    Wow nice job, thx to the community and the people at zend for this amazing framework ;)

  13. jazzybon Says:

    Well done guys & gals this is the anticipated Zend Framework ive been waiting for, great job by all.

  14. mwolff Says:

    I agree that monolithic distribution of such a large framework is not a good idea. PHP comes with a bundled, proven packaging solution for ages: The PEAR package manager. It’s easy to setup, it auto-resolves package interdependencies and you can even use your own channel server so you don’t have to give up control over your distribution infrastructure.

    Zend Framework 2.0 would be a really good point in time to introduce the one standard package distribution method that is supported by each and every PHP installation out-of-the-box.

    Ranting aside, I think 1.9.0 is one hell of a great release ;-)

  15. viking111 Says:

    Zf is growing bigger and bigger with each release. It has lot of useful components but also a lot which we won’t use. It would be great if You could provide some components loader like http://developer.yahoo.com/yui/examples/yuiloader/yl-list.html (maybe with 2.0 version). Any plans?

  16. yoshida_zend_co_jp Says:

    Hi, weierophinney,
    I will be happy if you would also add following components name to "create new issue" option on Issue tracker. :)
    Zend_Queue
    Zend_Rest_Route
    Zend_Rest_Controller
    Zend_Db_Adapter_Sqlsrv

    Thanks!

  17. freakmod Says:

    Wow – I didn’t think PHP 5.3 support was in the works for ZF! Fantastic surprise! :) Now I can finally use some of those new goodies I’ve been waiting for like late static binding. Phenomenal effort, guys!

  18. lsmith Says:

    well its not impossible to manage the required version. especially since there are tools that can help you there. however the issue with ZF is that even finding out the ZF dependencies is fairly hard.

    aside from this .. there actually certified PHP binaries for recent PHP version provided by Redhat .. unfortunatelty they are quite pricey since their APP-Stack offering also bundles JBoss .. meaning you are licensing tons more than most PHP shops need.

  19. bchmura Says:

    Thanks to everyone that has put work into this release, and the prior ones. Aside from giving me a stable, solid framework to develop on – the ZF project has been a great reference for me as far as best practices, some great design and coding examples, development processes like the unit testing, and more. At least a few times I found myself looking at the source for design examples.

    I am looking forward to some of the recent additions in this release and the ones just prior – such as the S3 stuff, Zend_Feed, etc.

    Thanks again!

  20. weierophinney Says:

    @lsmith: Tracking the minimum dependencies on each component at this stage would be a relatively large task. Additionally, what happens if you need one component that uses 5.2.4 features, while the rest of your project uses 5.1.x? At this point, you’re stuck.

    We’ve taken the stance of one requirement for the whole project to ensure it all works together, whether or not you use all of it. While I understand that the current versions of RHEL and CentOS are still on 5.1.6, this, to my thinking, is a failure on their part. 5.2 has been out for almost 3 years at this point; they should be certifying newer versions of PHP for use with their LTS offering.

  21. lsmith Says:

    ouch .. just realized that since 1.7 the minimal required version of PHP has been bumped up. I havent seen any issues so far, but most of my projects are stuck on RHEL5 => PHP 5.1.6

    another examples why this monolithic distribution methods sucks. obviously not every package is going to require 5.2.4 or higher .. so if each package would be available as a separate PEAR package, it would be much easier to communicate the required PHP version of each package.