The Zend Framework community is pleased to announce the immediate
availability of both Zend Framework 2.0.7 and 2.1.0! Packages and
installation instructions are available at:
http://framework.zend.com/downloads/latest
2.0.7
=====
This is the last scheduled release in the 2.0 series, and contains over
150 bugfixes. Read the changelog for the full set of improvements.
http://framework.zend.com/changelog/2.0.7
Many thanks to all the contributors who helped polish this initial
feature branch and improve it!
2.1.0
=====
2.1.0 is the first new feature release for ZF2. Most features are
incremental improvements on existing components; we also have one
brand new component as well. Thinks you'll see include:
* New Zend\Permissions\Rbac component, providing Role-Based
Authorization Controls. These complement our existing
Zend\Permissions\Acl component, providing another mechanism for
providing authorization for your applications. We have Kyle Spraggs
to thank for this addition.
* New Zend\Test component, providing the ability to perform functional
or integration testing on your ZF2 applications, courtesy of Blanchon
Vincent.
* Support for Oracle and IBM DB2 databases in Zend\Db. Many thanks to
Ralph Schindler for spearheading these efforts.
* A new Zend\Stdlib\StringUtils class to provide unified functionality
around manipulating strings, particularly those in multibyte
character sets. Thanks to Marc Bennewitz!
* scrypt support for Zend\Crypt. Thanks go to Enrico Zimuel for this
addition.
* Apache htpassword support in Zend\Crypt and in the HTTP
authentication adapter; thanks go to Enrico Zimuel again!
* New integration for handling and manipulating file uploads with the
InputFilter, Form, and Mvc components, including capablities around
the PRG pattern. Please thank Chris Martin for his huge amount of
work around this!
* A new render.error event, allowing you to fail gracefully in the
event of a view rendering error. This allows you to present a static
error page in such situations, as well as to log the problem. Thanks
go to radnan for this addition.
* Additional integration between a variety of plugin managers and the
service manager was created, covering form elements, filters,
validators, route classes, and serializers; this allows
application-level configuration of these plugin managers, providing a
simplified interface for configuring custom plugins.
* Martin Meredith provided seven new traits for end-user use in PHP 5.4
applications.
* The Authentication component received support for storage chains and
validators.
* Better console support, including better help messages, increased
capabilities around colorisation, and more.
* Many incremental improvements in Zend\Db; in particular, addition of
profiling support, cross-table select join support, derived table in
select join, and literal objects.
* Zend\Logger has new FirePHP, ChromePHP, MongoDB, and FingersCrossed
writers; thanks go to Walter Tamboer, Jeremy Mikola, and Stefan
Kleff.
* The MVC layer sports more flexibility and capabilities in the
AbstractRestfulController, including automated content-negotiation
for JSON requests, and support for most HTTP methods, including
OPTIONS and HEAD (and the ability to support arbitrary HTTP methods).
* Zend\Session now has a MongoDB save handler, and provides better
interoperability between sessions managed by ZF2 and 3rd party code.
For the complete list of more than 140 changes, read the changelog.
http://framework.zend.com/changelog/2.1.0
New Components
==============
In addition to the new components in 2.1.0, we have two new service
components to announce:
* ZendService_Apple_Apns, which provides push notification capabilities
for Apple iOS. This component may be installed via Composer or Pyrus.
* ZendService_Google_Gcm, which provides push notification capabilities
for Google Android. This component may be installed via Composer or
Pyrus.
I'd like to thank Mike Willbanks for the time and effort he put into
these components, and for providing them to the project!
New Tooling
===========
Enrico Zimuel has been hacking on the ZFTool project, to provide tooling
support for the framework. This has resulted in zftool.phar, which
provides the following capabilities at this time:
* Skeleton application creation
* Module creation within a skeleton
* Autoloader classmap creation
* ZF2 installation to a directory
Expect more capabilities in the future!
Download it at https://packages.zendframework.com/zftool.phar
New Responsive Website
======================
Regular visitors to the website may notice some changes. Contributor
Frank Brückner has been updating the site to implement a responsive
design, provide more consistency between pages, and in particular,
navigation, and over all make the site cleaner.
The end result: the site should now be usable on a variety of platforms
and screen sizes, allowing you to visit on your desktop, tablet, or
mobile phone!
Potential Breakage
==================
Both 2.0.7 and 2.1.0 include a fix to the classes Zend\Filter\Encrypt
and Zend\Filter\Decrypt which may pose a small break for end-users. Each
requires an encryption key be passed to either the constructor or the
setKey() method now; this was done to improve the security of each
class.
In 2.1.0, Zend\Session includes a new Zend\Session\Storage\SessionArrayStorage
class, which acts as a direct proxy to the $_SESSION superglobal. The
SessionManager class now uses this new storage class by default, in
order to fix an error that occurs when directly manipulating nested
arrays of $_SESSION in third-party code. For most users, the change will
be seamless. Those affected will be those (a) directly accessing the
storage instance, and (b) using object notation to access session
members:
$foo = null;
/** @var $storage Zend\Session\Storage\SessionStorage */
if (isset($storage->foo)) {
$foo = $storage->foo;
}
If you are using array notation, as in the following example, your code
remains forwards compatible:
$foo = null;
/** @var $storage Zend\Session\Storage\SessionStorage */
if (isset($storage['foo'])) {
$foo = $storage['foo'];
}
If you are not working directly with the storage instance, you will be
unaffected.
For those affected, the following courses of action are possible:
* Update your code to replace object property notation with array
notation, OR
* Initialize and register a Zend\Session\Storage\SessionStorage object
explicitly with the session manager instance.
Thank You!
==========
As always, I'd like to thank the many contributors who made these
releases possible! The project is gaining in consistency and
capabilities daily as a result of your efforts.
Roadmap
=======
Maintenance releases happen monthly on the third Wednesday; expect
version 2.1.1 on 20 February 2013. The next minor release, 2.2.0, is
tentatively scheduled for 24 April 2013.
--
Matthew Weier O'Phinney
Project Lead | [email protected]
Zend Framework | http://framework.zend.com/
PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc
--
List: [email protected]
Info: http://framework.zend.com/archives
Unsubscribe: [email protected]