Below is a message written by Andi Gutmans outlining the roadmap for the Zend Framework. Andi is my boss, so you'll understand if I forgo the normal snide remark and just post the message unfiltered...and un-commented. :)

=C=


Hi all,

Better late than never :)

As promised we're sending an update on where we're at with the framework.

Although not always visible due to the infrequent release of new framework packages, there has been a lot of progress in the past few months. More than 100 community members(!) have joined the effort by singing the CLA, and are contributing via proposals, comments, patches, code contributions or documentation improvements.

Now the Summer is over and everyone is back at work, we feel it's the right time to finish planning the 1.0 release. We believe that in order to make a successfull release and get closure on the various aspects, it makes most sense to break up the framework into a limited number of subject areas and form project teams around these areas instead of components. These teams would focus on their area, set milestones for getting closure on the various pieces and recruit contributors to their team. To be clear the component leads would still lead their component but we'd have more focused groups helping each other out.

The following is a list of such areas and the components we believe we should focus on for 1.0. As you can see, a large amount of the work has already been done, but we now have to focus on getting closure on them and tying up loose ends.

Web & Web Services:

  • Consuming services: Zend_XmlRpc_Client, Zend_Feed, Zend_Service_*, Zend_GData, Zend_Http_Client
  • Exposing services: Zend_XmlRpc_Server, Zend_Soap_Server, Zend_Rest_Server, Zend_Http_Server (?)
  • Zend_Uri

MVC & related:

  • Zend_Controller, Zend_Controller_RewriteRouter, Zend_View, Zend_Controller_Action, Zend_Controller_Dispatcher, Zend_Controoler_Plugin, etc...
  • Zend_Http_Request, Zend_Registry

Authentication & authorization:

  • Zend_Acl, Zend_Authentication, Zend_Session

i18n, l10n & validation:

  • Zend_Locale, Zend_Date, Zend_Date_Calendar, Zend_Measure, Zend_Currency, Zend_Translate
  • Zend_Filter, Zend_Filter_Input

Databases:

  • Zend_Db, Zend_Db_Xml_Content

Infrastructure:

  • Zend_Cache, Zend_Log, Zend_Config, Zend Framework INI solution, Zend_Environment, Zend_Memory

Mail, Document Formats, & Search:

  • Zend_Mail, Zend_Mail_Read, Zend_Mime, Zend_Pdf, Zend_Search_Lucene, Zend_Json

Documentation & translation:

  • Deserves a separate listing as this has been a significant effort

There are some additional components which we are working on in parallel, and might be able to include depending on the progress but we don't believe that any of them are showstoppers for a 1.0 release. For that reason we'd like to focus our efforts on the list above.

What we will do is work on project pages for these 8 categories. There'll be a Zender assigned to each category who can help coordinate the effort and make sure that milestones are managed, status is clear and that we are making good progress. We'll work with the various component authors in the coming couple of weeks to form these groups and setup a Wiki page for them.

In the short-term we want to be very focused on 0.2 and try and release it within a few weeks. We've been mainly waiting for a small redesign of the Controller architecture and Matthew has led an effort with various community members incl. Martel, Christopher, Michael, Simon, and various Zenders who showed interest in the topic (you might say the beta program for the focus group idea). We'll be posting an updated proposal for community review & feedback this week which should answer most of the issues which have been raised over the past few months. Besides that there have been lots of improvements in other areas including Zend_Cache, Zend_Config, Zend_Locale*, Zend_Service_*, Documentation&translation which would make this a significantly improved release over 0.1.5.

The following is a high-level look at what 0.2 would be:

0.2:

  • Improvements in many of the components
  • MVC update
  • Merge incubator components (new + improved) that are mature into "library/Zend".
  • Improve unit tests & documentation
  • Bug fixes!

Thanks again for all the interest. Below there's also a more detailed list of the components listed with a brief description of what we think still needs to be done and an incomplete list of the people who've shown interest to make them happen. This should give a clearer picture of where 1.0 would go.

Our plan is also to not only post an update more frequently (preferably on a bi-weekly basis) but also ask the focus groups themselves to update their project page and send a reminder email to the list when they've done so.

Happy Frameworking!

The Zend Team

  • Database (Zend:Gavin, Community: Justin, Christopher Thompson, Marco, Art, Rob, and several others have volunteered their help)
  • Zend_Http_Request (Zend:Matthew, Community:Martel, Simon, Christopher Thompson)
    • Encapsulates $_POST, $_GET, $_SERVER, $_REQUEST and normalizes access to this information by the RewriteRouter and controllers.
  • Zend_RewriteRouter / Zend_Controller (Zend:Matthew, Community:Martel)
    • Code refactoring to simplify the dispatch route, provide environmental information to the action controllers, and provide greater flexibility.
  • Zend_Registry (Zend:Gavin; Author:Art Hundiak)
    • Modest enhancements, allowing for the optional creation of dynamic registries, extension, and dynamic scoping within the MVC. In summary, the registry helps structure and manage the sharing of information between components.
  • Zend Framework global "INI" (Zend:Gavin; Community:?)
    • Provides a small number of simple default/configuration values, similar to ph

      ini, except for the framework.

  • Zend_Environment (Zend:Gavin, Author:Simon, Community:Ed Finkler)
    • Provides a structured analysis of the deployment environment, useful for debugging and solving both configuration difficulties and environmental issues.
  • Filtering (Zend:Darby, Community: Mike Borozdin, Christopher Thompson)
    • Combine existing components with new filtering related proposals and synthesize a major rewrite or replacement.
  • Zend_Filter (Zend:Darby, Community:Mike Borozdin, Christopher Thompson)
    • Library of convenience methods for filtering data.
  • Zend_Filter_Input (Zend:Darby, Community:Mike Borozdin, Christopher Thompson)
    • Similar to Zend_Filter although tightly focused on filtering "tainted" data from untrusted sources.
  • Zend_Locale* / Zend_Date (Zend:Gavin; Author:Thomas Weidner)
    • Supporting application-specific text translation mapping, localized date, measurement, and currency functions using the Common Locale Data Repository project data.
  • Zend_Authentication (Zend:Darby; Community:?)
    • This thin wrapper provides a framework for application developers to implement various concrete authentication implementations that integrate smoothly with Zend_Session
  • Zend_Acl (Zend:Darby, Author:Simon Mundy)
    • Providea a robust, yet simple approach to describing access controls on graphs of protected resources in relation to requestors.
  • Zend_Session (Zend:Gavin, Author:Ralph Schindler)
    • Provides a wrapper to $_SESSION and existing PHP session handling, including support for namespaces and meta-level control over namespaces, like expiration and iteration. Also supports plugable session validation schemes.
  • Zend_Config (Zend:Darby, Community:Rob Allen)
    • Light OO wrapper for configuration data, with storage adapters for INI-style and XML text files and nested, associative PHP arrays.
  • Zend_Cache (Zend:Alexander, Author:Fabien Marty)
    • Provides a multi-purpose caching system with flexible frontends for caching output from Zend_Db components, views, objects, and functions with data stored using APC, file, SQLite, or memcached.
  • Documentation (Zend:Darby,Gavin; Community:some, but more are needed!)
    • We're launching an initiative to improve the processes around authoring and editing the English manual.
  • Zend_Pdf (Zend:Alexander, Community:Willie Alberty, Kevin McArthur)
    • This manipulation engine can read, create, modify, and save PDF documents, including drawing text and images and incremental updates.
  • Zend_Search (Zend:Alexander, Community:?)
    • This feature rich search engine offers compatiblity with Lucene, yet imposes no external requirements (no DB, only PHP). We're currently focusing on eliminating the need for external Java-based tools to merge index files.
  • Zend_Log (Zend:Gavin, Community:Art Hundiak)
    • Proposals to offer enhancements.
  • Zend_Json (Zend:Matthew, Community:?)
    • Provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP
  • Zend_Mail (Zend:Matthew, Community:?)
    • Zend_Mail provides generalized functionality to compose and send both text and MIME-compliant multipart e-mail messages.
  • Zend_Mime (Zend:Matthew, Community:?)
    • Utility functions for handling data in MIME format.
  • Zend_Service_Amazon (Zend:Darby, Community:?)
  • Zend_Service_Flickr (Zend:Darby, Community:?)
  • Zend_Service_Yahoo (Zend:Darby, Community:?)
    • Post 1.0 Components
  • Zend_Service_Google (Zend:Darby, Community:Aissam)