Zend Framework 2.0.0beta1 Released!

The Zend Framework community is pleased to announce the immediate availability
of Zend Framework 2.0.0beta1. Packages and installation instructions are
available at:

http://packages.zendframework.com/

This is the first in a series of planned beta releases. The beta release
cycle will follow the “gmail” style of betas, whereby new features will
be added in each new release, and BC will not be guaranteed; beta
releases will happen no less than every six weeks. The desire is for
developers to adopt and work with new components as they are shipped, and
provide feedback so we can polish the distribution.

Once all code in the proposed standard distribution
has reached maturity and reasonable stability, we will freeze the API and
prepare for Release Candidate status.

Featured components and functionality of 2.0.0beta1 include:

  • New and refactored autoloaders:

    • Zend\Loader\StandardAutoloader
    • Zend\Loader\ClassMapAutoloader
    • Zend\Loader\AutoloaderFactory
  • New plugin broker strategy

    • Zend\Loader\Broker and Zend\Loader\PluginBroker
  • Reworked Exception system

    • Allow catching by specific Exception type
    • Allow catching by component Exception type
    • Allow catching by SPL Exception type
    • Allow catching by base Exception type
  • Rewritten Session component
  • Refactored View component

    • Split helpers into a PluginBroker
    • Split variables into a Variables container
    • Split script paths into a TemplateResolver
    • Renamed base View class “PhpRenderer”
    • Refactored helpers to utilize __invoke() when possible
  • Refactored HTTP component
  • New Zend\Cloud\Infrastructure component
  • New EventManager component
  • New Dependency Injection (Zend\Di) component
  • New Code component

    • Incorporates refactored versions of former Reflection and
      CodeGenerator components.
    • Introduces Scanner component.
    • Introduces annotation system.

The above components provide a solid foundation for Zend Framework 2, and
largely make up the framework “core”. However, the cornerstone feature of beta1
is what they enable: the new MVC layer:

  • Zend\Module, for developing modular application architectures.
  • Zend\Mvc, a completely reworked MVC layer built on top of HTTP,
    EventManager, and Di.

We’ve built a skeleton application and a skeleton module to help get you started, as well as a quick start guide to the MVC; the new MVC is truly flexible, and moreover, simple and
powerful.

Additionally, for those who haven’t clicked on the packages link above, we are
debuting our new distribution mechanisms for ZF2: the ability to use
Pyrus to install individual components and/or groups of
components.

Since mid-August, we’ve gone from a few dozen pull requests on the
ZF2 git repository to over 500,
originating from both long-time Zend Framework contributors as well as those
brand-new to the project. I’d like to thank each and every one of them, but also
call out several individuals who have made some outstanding and important
contributions during that time frame:

  • Evan Coury, who prototyped and then implemented the new
    module system.
  • Rob Allen, who, because he was doing a tutorial at
    PHPNW on ZF2, provided a lot of early
    feedback, ideas, and advice on the direction of the MVC.
  • Ben Scholzen, who wrote a new router system, in
    spite of a massive injury from a cycling accident.
  • Ralph Schindler, who has had to put up with my
    daily “devil’s advocate” and “think of the user!” rants for the past several
    months, and still managed to provide comprehensive code manipulation tools, a
    Dependency Injection framework, and major contributions to the HTTP
    component.
  • Enrico Zimuel, who got tossed requirements for the
    cloud infrastructure component, and then had to rework most of it after
    rewriting the HTTP client from the ground up… and who still managed three
    back-to-back-to-back conferences as we prepared the release.
  • Artur Bodera, who often has played
    devil’s advocate, and persisted pressing his opinions on the direction of the
    framework, often despite heavy opposition. We may not implement all (or many)
    of the features you want, but you’ve definitely influenced the direction of
    the MVC incredibly.
  • Pádraic Brady, who
    started the runaway train rolling with a rant,
    and helped make the project much more transparent, enabling the MVC
    development to occur in the first place.

Welcome to the ZF2 beta cycle!

About Matthew Weier O'Phinney

Matthew is a Principal Engineer at Zend Technologies. He is currently project lead for both Zend Framework and Apigility; 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, mwop.net/blog.