Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


Zend Framework 2.0.3
Resolves the following issues and/or includes the following changes:

- 2244: Fix for issue ZF2-503 (zendframework#2244)
- 2318: Allow to remove decimals in CurrencyFormat
- 2363: Hotfix db features with eventfeature
- 2380: ZF2-482 Attempt to fix the buffer. Also added extra unit tests.
- 2392: Update library/Zend/Db/Adapter/Platform/Mysql.php
- 2395: Fix for
- 2397: Memcached option merge issuse
- 2402: Adding missing dependencies
- 2404: Fix to comments (zendframework#2404)
- 2416: Fix expressionParamIndex for AbstractSql
- 2420: Zend\Db\Sql\Select: Fixed issue with join expression named parameters
  overlapping. (zendframework#2420)
- 2421: Update library/Zend/Http/Header/SetCookie.php
- 2422: fix add 2 space after @param in Zend\Loader
- 2423: ManagerInterface must be interface, remove 'interface' description
- 2425: Use built-in Travis composer
- 2426: Remove need of setter in ClassMethods hydrator
- 2432: Prevent space before end of tag with HTML5 doctype
- 2433: fix for setJsonpCallback not called when recieved JsonModel + test
- 2434: added phpdoc in Zend\Db
- 2437: Hotfix/console 404 reporting
- 2438: Improved previous fix for ZF2-558.
- 2440: Turkish Translations for Captcha and Validate
- 2441: Allow form collection to have any helper
- 2516: limit(20) -> generates LIMIT '20' and throws an IllegalQueryException
- 2545: getSqlStringForSqlObject() returns an invalid SQL statement with LIMIT
  and OFFSET clauses (zendframework#2545)
- 2595: Pgsql adapater has codes related to MySQL
- 2613: Prevent password to be rendered if form validation fails
- 2617: Fixed Zend\Validator\Iban class name
- 2619: Form enctype fix when File elements are within a collection
- 2620: InputFilter/Input when merging was not using raw value
- 2622: Added ability to specify port
- 2624: Form's default input filters added multiple times
- 2630: fix relative link ( remove the relative links ) in
- 2631: Update library/Zend/Loader/AutoloaderFactory.php
- 2633: fix redundance errors "The input does not appear to be a valid date"
  show twice (zendframework#2633)
- 2635: Fix potential issue with Sitemap test
- 2636: add isset checks around timeout and maxredirects
- 2641: hotfix : formRow() element error multi-checkbox and radio renderError
  not shown (zendframework#2641)
- 2642: Fix Travis build for CS issue
- 2643: fix for setJsonpCallback not called when recieved JsonModel + test
- 2644: Add fluidity to the prepare() function for a form
- 2652: Zucchi/filter tweaks (zendframework#2652)
- 2665: pdftest fix (zendframework#2665)
- 2666: fixed url change (zendframework#2666)
- 2667: Possible fix for rartests
- 2669: skip whem gmp is loaded
- 2673: Input fallback value option
- 2676: mysqli::close() never called
- 2677: added phpdoc to Zend\Stdlib
- 2678: Zend\Db\Adapter\Sqlsrv\Sqlsrv never calls Statement\initialize() (fix
  within) (zendframework#2678)
- 2679: Zend/Log/Logger.php using incorrect php errorLevel
- 2680: Cache: fixed bug on getTotalSpace of filesystem and dba adapter
- 2681: Cache/Dba: fixed notices on tearDown db4 tests
- 2682: Replace 'Configuration' with 'Config' when retrieving configuration
- 2683: Hotfix: Allow items from Abstract Factories to have setShared() called
- 2685: Remove unused Uses (zendframework#2685)
- 2686: Adding code to allow EventManager trigger listeners using wildcard
  identifier (zendframework#2686)
- 2687: Hotfix/db sql nested expressions
- 2688: Hotfix/tablegateway event feature
- 2689: Hotfix/composer phpunit
- 2690: Use RFC-3339 full-date format (Y-m-d) in Date element
- 2691: join on conditions don't accept alternatives to columns
- 2693: Update library/Zend/Db/Adapter/Driver/Mysqli/Connection.php
- 2694: Bring fluid interface to Feed Writer
- 2698: fix typo in # should be :: in exception
- 2699: fix elseif in javascript Upload Demo
- 2700: fix cs in casting variable
- 2705: Fix french translation
- 2707: Improved error message when ServiceManager does not find an invokable
  class (zendframework#2707)
- 2710: #2461 - correcting the url encoding of path segments
- 2711: Fix/demos ProgressBar/ZendForm.php : Object of class Zend\Form\Form
  could not be converted to string
- 2712: fix cs casting variable for (array)
- 2713: Update library/Zend/Mvc/Service/ViewHelperManagerFactory.php
- 2714: Don't add separator if not prefixing columns
- 2717: Extends when it can : Validator\DateStep extends Validator\Date to
  reduce code redundancy (zendframework#2717)
- 2719: Fixing the Cache Storage Factory Adapter Factory
- 2728: Bad Regex for Content Type header
- 2731: Reset the Order part when resetting Select
- 2732: Removed references to Mysqli in Zend\Db\Adapter\Driver\Pgsql
- 2733: fix @package Zend_Validate should be Zend_Validator
- 2734: fix i18n @package and @subpackage value
- 2736: fix captcha helper test.
- 2737: Issue #2728 - Bad Regex for Content Type header
- 2738: fix link 'quickstart' to version 2.0
- 2739: remove '@subpackage'  because Zend\Math is not in subpackage
- 2742: remove () in echo-ing (zendframework#2742)
- 2749: Fix for #2678 (Zend\Db's Sqlsrv Driver)
- 2750: Adds the ability to instanciate by factory to AbstractPluginManager
- 2754: add the support to register module paths over namespace
- 2755:  remove Zend\Mvc\Controller\PluginBroker from aliases in
  "$defaultServiceConfig" (zendframework#2755)
- 2759: Fix Zend\Code\Scanner\TokenArrayScanner
- 2764: Fixed Zend\Math\Rand::getString() to pass the parameter $strong to
  ::getBytes() (zendframework#2764)
- 2765: Csrf: always use dedicated setter
- 2766: Session\Storage: always preserve REQUEST_ACCESS_TIME
- 2768: Zend\Validator dependency is missed in Zend\Cache composer.json
- 2769: change valueToLDAP to valueToLdap and valueFromLDAP to valueFromLdap
- 2770: Memcached (zendframework#2770)
- 2775: Zend\Db\Sql: Fix for Mysql quoting during limit and offset
- 2776: Allow whitespace in Iban
- 2777: Fix issue when PREG_BAD_UTF8_OFFSET_ERROR is defined but Unicode support
  is not enabled on PCRE (zendframework#2777)
- 2778: Undefined Index fix in ViewHelperManagerFactory
- 2779: Allow forms that have been added as fieldsets to bind values to bound
  ob... (zendframework#2779)
- 2782: Issue 2781 (zendframework#2782)


This is the second maintenance release for the 2.0 series.
21 Sep 2012

- 2383: Changed unreserved char definition in Zend\Uri (ZF2-533) and added shell
  escaping to the test runner (zendframework#2383)
- 2393: Trying to solve issue ZF2-558
- 2398: Segment route: add fix for optional groups within optional groups
- 2400: Use 'Router' in http env and 'HttpRouter' in cli
- 2401: Better precision for userland fmod algorithm


This is the first maintenance release for the 2.0 series.
20 Sep 2012

- 2285: Seed RouteMatch params as long as params is set. This permits setting an
  empty array. (zendframework#2285)
- 2286: prepareNotFoundViewModel listner -  eventResult as ViewModel if set
- 2290: <span>$label</span> only when filled
- 2292: Allow (int)0 in coomments count in entry feed
- 2295: force to check className parameters
- 2296: mini-fix in controller plugin manager
- 2297: fixed phpdoc in Zend\Mvc\ApplicationInterface
- 2298: Update to Date element use statements to make it clearer which DateTime
- 2300: FormRow translate label fix (#ZF2-516)
- 2302: Notifications now to
- 2306: Fix several cs (zendframework#2306)
- 2307: Removed comment about non existent Zend_Tool
- 2308: Fix pluginmanager get method error
- 2309: Add consistency with event name
- 2310: Update library/Zend/Db/Sql/Select.php
- 2311: Version update (zendframework#2311)
- 2312: Validator Translations (zendframework#2312)
- 2313: ZF2-336: Zend\Form adds enctype attribute as multipart/form-data
- 2317: Make Fieldset constructor consistent with parent Element class
- 2321: ZF2-534 Zend\Log\Writer\Syslog prevents setting application name
- 2322: Jump to cache-storing instead of returning
- 2323: Conditional statements improved(minor changes).
- 2324: Fix for ZF2-517: Zend\Mail\Header\GenericHeader fails to parse empty
  header (zendframework#2324)
- 2328: Wrong \__clone method (zendframework#2328)
- 2331: added validation support for optgroups
- 2332: README-GIT update with optional pre-commit hook
- 2334: Mail\Message::getSubject() should return value the way it was set
- 2335: ZF2-511 Updated refactored names and other fixes
- 2336: ZF-546 Remove duplicate check for time
- 2337: ZF2-539 Input type of image should not have attribute value
- 2338: ZF2-543: removed linked but not implemented cache adapters
- 2341: Updated Zend_Validate.php pt_BR translation to 25.Jul.2011 EN Revision
- 2342: ZF2-549 Zend\Log\Formatter\ErrorHandler does not handle complex events
- 2346: updated Page\Mvc::isActive to check if the controller param was
  tinkered (zendframework#2346)
- 2349: Zend\Feed Added unittests for more code coverage
- 2350: Bug in Zend\ModuleManager\Listener\LocatorRegistrationListener
- 2351: ModuleManagerInterface is never used
- 2352: Hotfix for AbstractDb and Csrf Validators
- 2354: Update library/Zend/Feed/Writer/AbstractFeed.php
- 2355: Allow setting CsrfValidatorOptions in constructor
- 2356: Update library/Zend/Http/Cookies.php
- 2357: Update library/Zend/Barcode/Object/AbstractObject.php
- 2358: Update library/Zend/ServiceManager/AbstractPluginManager.php
- 2359: Update library/Zend/Server/Method/Parameter.php
- 2361: Zend\Form Added extra unit tests and some code improvements
- 2364: Remove unused use statements
- 2365: Resolve undefined classes and constants
- 2366: fixed typo in Zend\View\HelperPluginManager
- 2370: Error handling in AbstractWriter::write using Zend\Stdlib\ErrorHandler
- 2372: Update library/Zend/ServiceManager/Config.php
- 2375: zend-inputfilter already requires
- 2376: Activate the new GitHub feature: Contributing Guidelines
- 2377: Update library/Zend/Mvc/Controller/AbstractController.php
- 2379: Typo in property name in Zend/Db/Metadata/Object/AbstractTableObject.php
- 2382: PHPDoc params in AbstractTableGateway.php
- 2384: Replace Router with Http router in url view helper
- 2387: Replace PHP internal fmod function because it gives false negatives
- 2388: Proposed fix for ZF2-569 validating float with trailing 0's (10.0,
  10.10) (zendframework#2388)
- 2391: clone in Filter\FilterChain
- Security fix: a number of classes were not using the Escaper component in
  order to perform URL, HTML, and/or HTML attribute escaping. Please see for more details.


Zend Framework 2.0.0

This is the first stable release of the new version 2 release branch.

04 September 2012


New and/or refactored components include:

- EventManager - provides subject/observer, pubsub, aspect-oriented programming,
  signal slots, and event systems for your applications.
- ServiceManager - provides an Inversion of Control (IoC) container for managing
  object life-cycles and dependencies via a configurable and programmable
- DI - provides a Dependency Injection Container, another form of IoC.
- MVC - a newly written MVC layer for ZF2, using controllers as services, and
  wiring everything together using events.
- ModuleManager - a solution for providing plug-and-play functionality for
  either MVC applications or any application requiring pluggable 3rd party code.
  Within ZF2, the ModuleManager provides the MVC with services, and assists in
  wiring events.
- Loader - provides new options for autoloading, including standard, performant
  PSR-0 loading and class-map-based autoloading.
- Code - provides support for code reflection, static code scanning, and
  annotation parsing.
- Config - more performant and more flexible configuration parsing and creation.
- Escaper - a new component for providing context-specific escaping solutions
  for HTML, HTML attributes, CSS, JavaScript, and combinations of contexts as
- HTTP - rewritten to provide better header, request, and response abstraction.
- I18n - a brand new internationalization and localization layer built on top of
  PHP's ext/intl extension.
- InputFilter - a new component for providing normalization and validation of
  sets of data.
- Form - rewritten from the ground up to properly separate validation, domain
  modeling, and presentation concerns. Allows binding objects to forms, defining
  forms and input filters via annotations, and more.
- Log - rewritten to be more flexible and provide better capabilities
  surrounding message formats and filtering.
- Mail - rewritten to separate concerns more cleanly between messages and
- Session - rewritten to make testing easier, as well as to make it more
  configurable for end users.
- Uri - rewritten to provide a cleaner, more object oriented interface.

Many components have been ported from Zend Framework 1, and operate in
practically identical manners to their 1.X equivalent. Others, such as the
service components, have been moved to their own repositories to ensure that as
APIs change, they do not need to wait on the framework to release new versions.

Welcome to a new generation of Zend Framework!


Zend Framework 2.0.0rc7
This is the seventh release candidate for 2.0.0. At this time, we anticipate
that this will be the final release candidate before issuing a stable release.
We highly recommend testing your production applications against it.

31 August 2012

- Zend\Di
  - Fixes ArrayDefinition and ClassDefinition hasMethods() methods to return
    boolean values.
- Zend\Form
  - Fixes issue with multi-checkbox rendering.
- Zend\I18n
  - DateFormat view helper now correctly falls back to date.timezone setting
    instead of system timezone.
- Zend\Ldap
  - Fixes an error nesting condition
- Zend\Log
  - Fixes an issue with Zend\Log\Formatter\Simple whereby it was using a legacy
    key ("info") instead of the key standardized upon in ZF2 ("extra").
  - Simple formatter now defaults to JSON-encoding for array and object
    serialization (prevents issues with some writers.)
- Zend\Mail
  - The Date header is now properly encoded as ASCII.
- Zend\Mvc
  - Fixes an issue in the ViewHelperManagerFactory whereby a condition was
    testing against an uninitialized value.
  - Added zend-console to composer.json dependencies.
- Zend\View
  - Breadcrumbs helper allows passing string container name now, allowing
    multiple navigation containers.
  - ServerUrl now works for servers behind proxies.


Zend Framework 2.0.0rc6
This is the sixth release candidate for 2.0.0. At this time, we anticipate that
this will be the final release candidate before issuing a stable release.
We highly recommend testing your production applications against it.

29 August 2012

- Zend\Config
  - The INI adapter now allows bracket notation for appending values to an array
    within INI definitions.
- Zend\Db
  - ResultInterface adds isBuffered() method for checking if the resultset is
    buffered or not. Allows for more fine grained control of result set
    buffering, including using the database engine's native buffering.
  - Insertions with multi-part keys now work properly.
  - Expression objects may now be passed to the order() method of a Select
- Zend\Form
  - You can now omit error messages on elements when rendering via formRow(), by
    passing a boolean false as the third argument of the helper.
  - You can now use concrete hydrator instances with the factory.
  - You may now set the CSRF validator class and/or options to use on the Csrf
  - The Select, Radio, and MultiCheckbox elements and view helpers were
    refactored to move value options into properties, instead of attributes.
    This makes them more consistent with other elements, and simplifies the
  - Forms now lazy-load an input filter if none has been specified; this should
    simplify usage for many, and remove the "no input filter attached"
  - All form helpers for buttons (button, submit, reset) now allow translation.
  - The formRow() view helper now allows you to set the CSS class used to
    designate an input with errors.
- Zend\Http
  - Some browser/web server combingations set SERVER_NAME to the IPv6 address,
    and enclose it in brackets. The PhpEnvironment\Request object now correctly
    detects such situations.
  - The Socket client will only fallback to SSLv3 if the ssltransport
    configuration key is not set (instead of also allowing SSLv2).
- Zend\I18n\Translator
  - Loader\LoaderInterface was splitted into Loader\FileLoaderInterface and
    Loader\RemoteLoaderInterface. The latter one will be used in ZF 2.1 for
    a database loader.
  - Translator::addTranslationPattern() and the option "translation_patterns"
    were renamed to Translator::addTranslationFilePattern and
  - A new method Translator::addRemoteTranslations() was added.
- Zend\Mvc
  - Application no longer defines the "application" identifier for its composed
    EventManager instance. If you had listeners listening on that context,
    update them to use "Zend\Mvc\Application". See this thread for more details:

  - The redirect plugin's toRoute() method signature is now synced with that of
    the url plugin's fromRoute() method.
  - The PRG plugin now allows passing no arguments; if you do so, the currently
    matched route will be used for the redirect.
- Zend\Paginator
  - Removes the factory() and related methods. This was done to be more
    consistent with other components, and also because the utility was not
    terribly useful; in most cases, developers needed to configure the adapter
    up-front anyways.
- Zend\Stdlib
  - ClassMethods Hydrator now supports boolean getters prefixed with "is".
- Zend\Validator
  - DB validators no longer mix positional and named parameters.

More than 30 pull requests for a variety of features and bugfixes were handled
since RC5, as well as almost 20 documentation changes!


Zend Framework 2.0.0rc5
This is the fifth release candidate for 2.0.0. We will be releasing RCs
on a weekly basis until we feel all critical issues are addressed. At
this time, we anticipate few API changes before the stable release, and
recommend testing your production applications against it.

23 August 2012

- Zend\Db
  - Now handles null values properly in execute mode.
  - Added SqlSrv integration tests (prompted by a bug report of issues with
    establishing a connection).
- Zend\Form
  - The FormButton helper now allows translation. However, to make this work, it
    now requires that the label value is set in the element.
  - Fixed an issue with the MultiCheckBox helper to ensure checked/unchecked
    values are properly populated.
  - The FormCheckbox view helper now requires that the element is a Checkbox
    element; this is done to ensure the required options are available.
- Zend\Log
  - The table name constructor option is now optional, allowing you to pass it
    in a configuration array.
  - Now allows using DateTime with the Db Writer.
- Zend\Http
  - Added ability to set the SSL capath option.
  - Added a check for the sslcapath being set if sslverifypeer is enabled when
    first connecting to an SSL-enabled site; an exception is thrown if all
    conditions are not met.
  - PhpEnvironment\Request object now falls back to '/' for the base path if the
    SCRIPT_FILENAME server variable is not present (true in PHP 5.4 web server
    and several others).
- Zend\I18n
  - Caching translations now works.
- Zend\Mvc
  - forward() plugin no longer results in double template rendering.
- Zend\ServiceManager
  - Now ensures that when $allowOverride is enabled that services registered
    with the same name overwrite properly.
- Zend\Validator
  - The Uri validator is now listed in the validator plugin manager.
  - The EmailAddress validator now allows setting custom error messages.
- General fixes
  - Removed all locations of error suppression remaining in the framework.
  - Synced the implementations of Zend\Mvc\Controller\Plugin\Url and

More than 20 pull requests for a variety of features and bugfixes were handled
since RC4, as well as around 30 documentation changes!


Zend Framework 2.0.0rc4
This is the fourth release candidate for 2.0.0. We will be releasing RCs
on a weekly basis until we feel all critical issues are addressed. At
this time, we anticipate few API changes before the stable release, and
recommend testing your production applications against it.

17 August 2012

- Zend\Db
  - RowGateway:  delete() now works; RowGateway objects now no longer duplicates
    the content internally leading to a larger than necessary memory footprint.
  - Adapter for PDO: fixed such that all calls to rowCount() will always be an
    integer; also fixed disconnect() from unsetting property
  - Zend\Validator\Db: fixed such that TableIdentifier can be used to promote
    schema.table identifiers
  - Sql\Select: added reset() API to reset parts of a Select object, also
    includes updated constants to refer to the parts by
  - Sql\Select and others: Added subselect support in Select, In Expression and
    the processExpression() abstraction for Zend\Db\Sql
  - Metadata: fixed various incorrect keys when refering to contstraint data in
    metadata value objects
- Zend\Filter
  - StringTrim filter now properly handles unicode whitespace
- Zend\Form
  - FieldsetInterface now defines the methods allowObjectBinding() and
  - New interface, FieldsetPrepareAwareInterface. Collection and Fieldset both
    implement this.
    - See zendframework#2184 for details
  - Select elements now handle options and validation more consistently with
    other multi-value elements.
- Zend\Http
  - SSL options are now propagated to all Socket Adapter subclasses
- Zend\InputFilter
  - Allows passing ValidatorChain and FilterChain instances to the factory
- Zend\Log
  - Fixed xml formatter to not display empty extra information
- Zend\Loader
  - SplAutoloader was renamed to SplAutoloaderInterface (consistency issue)
- Zend\Mvc
  - params() helper now allows fetching full parameter containers if no
    arguments are provided to its various methods (consistency issue)
- Zend\Paginator
  - The DbSelect adapter now works
- Zend\View
  - ViewModel now allows unsetting variables properly
- Security
  - Fixed issues in Zend\Dom, Zend\Soap, Zend\Feed, and Zend\XmlRpc with regards
    to the way libxml2 allows xml entity expansion from DOCTYPE entities when it
    is provided.

Around 50 pull requests for a variety of features and bugfixes were handled
since RC3, as well as almost 30 documentation changes!


Zend Framework 2.0.0rc2
This is the second release candidate for 2.0.0. We will be releasing RCs
on a weekly basis until we feel all critical issues are addressed. At
this time, we anticipate few API changes before the stable release, and
recommend testing your production applications against it.

01 August 2012

 - REALLY removed Zend\Markup from the repository (we reported it
   removed for RC1, and had in fact created the repository for it, but
   not removed it from the zf2 repository).
 - Addition of Hydrator strategies, to allow easier hydration of
   composed objects. The HydratorInterface remains unchanged, but the
   shipped hydrators now all implement both that and the new
 - Zend\View\Model\ViewModel::setVariables() no longer overwrites the
   internal variables container by default. If you wish to do so, it
   does provide an optional $overwrite argument; passing a boolean true
   will cause the method to overwrite the container.
 - Zend\Validator\Iban was expanded to include Single Euro Payments Area
   (SEPA) support
 - Zend\Mvc\Controller\ControllerManager now allows fetching controllers
   via DI. This is done via a new DiStrict abstract service factory,
   which only fetches services in a provided whitelist.
 - Zend\Json\Encoder now accepts IteratorAggregates.
 - Controller, Filter, and Validator plugin managers were fixed to no
   longer share instances.
 - Zend\Form was updated to only bind values that were actually provided
   in the data. Additionally, if a Collection has no entries, it will be
   removed from the validation group. Finally, elements with the name
   "0" (zero) are now allowed.
 - Zend\View\Helper\Doctype was updated to respond true to isRdfa() when
   the doctype is an HTML5 variant.
 - Zend\Navigation was fixed to ensure the navigation services is passed
   correctly between helpers. Additionally, a bug in Mvc::isActive() was
   fixed to ensure routes were properly seeded.
 - The GreaterThan and LessThan validators were updated to pass
   constructor arguments to the parents, for consistency with other
 - Log formatters are now responsible for formatting DateTime values in
   the log events.
 - The Console ViewManager was updated to extend from the standard HTTP
   version, and to use Config instead of Configuration, fixing several
   minor issues.
 - Zend\Version was moved to Zend\Version\Version (for consistency)
 - Zend\Debug was moved to Zend\Debug\Debug (for consistency)
 - All protected members that still had underscore prefixes were
   refactored to remove that prefix.
 - Identified and fixed all CS issues as identified by php-cs-fixer, and
   added php-cs-fixer to the Travis-CI build tasks.
 - ServiceManagerAwareInterface was removed from all but the most
   necessary locations, and replaced with ServiceLocatorAwareInterface.
 - Zend\Feed\Reader, Zend\Dom, Zend\Serializer\Wddx, and Zend\Soap were
   not properly protecting against XXE injections; these situations have
   now been corrected.

Around *70* pull requests for a variety of features and bugfixes were handled
since beta5!
Something went wrong with that request. Please try again.