Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


Zend Framework 2.1.3
- 3714: Zend\Stdlib\ArrayObject::offsetExists() returning by reference
- 3855: Fix #3852
- 3856: Simple route case insensitive


Zend Framework 2.1.2
- 3085: create controller via Zend\Mvc\Controller\ControllerManager
- 3469: ConnectionInterface docblock is wrong or implementation is wrong..
- 3506: [WIP] [#3113] Fix spelling in error validation messages
- 3636: If route has child routes and in URL has arbitrary query like "?lang=de"
  it does not work
- 3652: Query parameter ?action=somevalue will get 404 error
- 3683: Fix to make sure NotEmpty validator is not already set
- 3691: Fix for GitHub issue 3469
- 3698: Openssl error string
- 3699: Certain servers may not set a whitespace after a colon
  (Set-Cookie: header)
- 3701: Synced pt\_BR\Zend\_Validate.php with en\Zend\_Validate.php
- 3702: added new file: resources\languages\pt\_BR\Zend\_Captcha.php
- 3703: [WIP] Adding parallel testing ANT build configuration and related files
- 3705: Recent composer.json update of stdlib package
- 3706: clear joins and create without columns
- 3707: quoteIdentifier problem in sequence
- 3708: Filter\File\RenameUpload: wrap move\_uploaded\_file to be easly mocked
- 3712: Fix for URIs with a query string not matching
- 3713: Session Container Mismatch & Version Compare fixes for 5.3.3
- 3715: [#3705] Fix autoload.files setting in composer.json
- 3716: Added the Zend\Form decepence in composer.json for Zend\Mvc
- 3721: Created files for each component
- 3722: [Form] [DateTimeSelect] Filter, manager, and view helper fixes
- 3725: Use built-in php constants
- 3729: Zend\Barcode (Fixes #2862)
- 3732: Fix for #2531 - Multiplie navigation don't work
- 3733: Fix/select where
- 3735: [Form] [FormElementManager] don't overwrite form factory if already set
- 3742: Object+hydrator element annotation fix
- 3743: [#3739 & #3740] Using version-compare in accept header handler params.
- 3746: Fix bugs for some locales!
- 3757: Fixed a bug where mail messages were malformed when using the Sendmail
- 3764: Validator File MimeType (IsImage & IsCompressed)
- 3771: Zend\File\Transfer\Adapter\Http on receive : error "File was not found"  in ZF 2.1
- 3778: [#3711] Fix regression in query string matching
- 3782: [WIP] Zend\Di\Di::get() with call parameters ignored shared instances.
- 3783: Provide branch-alias entries for each component composer.json
- 3785: Zend\Db\Sql\Literal Fix when % is used in string
- 3786: Inject shared event manager in initializer
- 3789: Update library/Zend/Mail/Header/AbstractAddressList.php
- 3793: Resolved Issue: #3748 - offsetGet and __get should do a direct proxy to
- 3794: Implement query and fragment assembling into the HTTP router itself
- 3797: remove @category, @package, and @subpackage docblocks
- 3798: Remove extra semicolons
- 3803: Fix identical validator
- 3806: Remove obsolete catch statement
- 3807: Resolve undefined classes in phpDoc
- 3808: Add missing @return annotations
- 3813: Bug fix for GlobIterator extending service
- 3817: Add failing tests for Simple console route
- 3819: Allow form element filter to convert a string to array
- 3828: Cannot validate form when keys of collection in data are non consecutive
- 3831: Non-matching argument type for ArrayObject
- 3832: Zend\Db\Sql\Predicate\Predicate->literal() does not work with integer 0
  as $expressionParameters
- 3836: Zend\Db\Sql\Predicate\Predicate Fix for literal() usage
- 3837: Fix for legacy Transfer usage of File Validators
- 3838: Stdlib\ArrayObject & Zend\Session\Container Compatibility with ArrayObject
- 3839: Fixes #2477 - Implemented optional subdomains using regex


Zend Framework 2.1.1
- 2510: Zend\Session\Container does not allow modification by reference
- 2899: Can't inherit abstract function
- 3455: Added DISTINCT on Zend\Db\Sql\Select
- 3456: Connection creation added in Pgsql.php createStatement method
- 3608: Fix validate data contains arrays as values
- 3610: Form: rely on specific setter
- 3618: Fix bug when $indent have some string
- 3622: Updated Changelog with BC notes for 2.1 and 2.0.7
- 3623: Authentication using DbTable Adapter doesn't work for 2.1.0
- 3625: Missing instance/object for parameter route upgrading to 2.1.\*
- 3627: Making relative links in Markdown files
- 3629: Zend\Db\Select using alias in joins can results in wrong SQL
- 3638: Fixed method that removed part from parts in Mime\Message
- 3639: Session Metadata and SessionArrayStorage requestaccesstime fixes.
- 3640: [#3625] Do not query abstract factories for registered invokables
- 3641: Zend\Db\Sql\Select Fix for #3629
- 3645: Exception on destructing the SMTP Transport instance
- 3648: Ensure run() always returns Application instance
- 3649: Created script to aggregate return status
- 3650: InjectControllerDependencies initializer overriding an previously
  defined EventManager
- 3651: Hotfix/3650
- 3656: Zend\Validator\Db\AbstractDb.php and mysqli
- 3658: Zend\Validator\Db\AbstractDb.php and mysqli (issue: 3656)
- 3661: ZF HTTP Status Code overwritten
- 3662: Remove double injection in Plugin Controller Manager
- 3663: Remove useless shared in ServiceManager
- 3671: Hotfix/restful head identifier
- 3673: Add translations for Zend\Validator\File\UploadFile
- 3679: remove '\' character from Traversable
- 3680: Zend\Validator\Db Hotfix (supersedes #3658)
- 3681: [#2899] Remove redundant method declaration
- 3682: Zend\Db\Sql\Select Quantifier (DISTINCT, ALL, + Expression) support -
  supersedes #3455
- 3684: Remove the conditional class declaration of ArrayObject
- 3687: fix invalid docblock
- 3689: [#3684] Polyfill support for version-dependent classes
- 3690: oracle transaction support
- 3692: Hotfix/db parametercontainer mixed use


Zend Framework 2.1.0
- 2378: ZF2-417 Form Annotation Hydrator options support
- 2390: Expose formally protected method in ConfigListener
- 2405: [WIP] Feature/accepted model controller plugin
- 2424: Decorator plugin manager was pointing to an inexistent class
- 2428: Form develop/allow date time
- 2430: [2.1] Added the scrypt key derivation algorithm in Zend\Crypt
- 2439: [2.1] Form File Upload refactor
- 2486: The Upload validator might be broken
- 2506: Throwing exception in template (and/or layout) doesnt fails gracefully
- 2524: Throws exception when trying to generate bcrypt
- 2537: Create a NotIn predicate
- 2616: Initial ZF2 RBAC Component
- 2629: JsonStrategy should set response charset
- 2647: Fix/bcrypt: added the set/get BackwardCompatibility
- 2668: Implement XCache storage adapter (fixes #2581)
- 2671: Added fluent inteface to prepend and set method. Zend\View\Container\AbstractContainer
- 2725: Feature/logger factory
- 2726: Zend\Validator\Explode does not handle NULL
- 2727: Added ability to add additional information to the logs via processors.
- 2772: Adding cookie route. Going to open PR for comments.
- 2815: Fix fro GitHub issue 2600 (Cannot check if a table is read only)
- 2819: Support for ListenerAggregates in SharedEventManager
- 2820: Form plugin manager
- 2863: Handle postgres sequences
- 2876: memcached changes
- 2884: Allow select object to pass on select->join
- 2888: Bugfix dateformat helper
- 2918: \Zend\Mime\Mime::LINEEND causes problems with some SMTP-Servers
- 2945: SOAP 1.2 support for WSDL generation
- 2947: Add DateTimeSelect element to form
- 2950: Abstract row gatewayset from array
- 2968: Zend\Feed\Reader\Extension\Atom\Entry::getAuthors and Feed::getAuthors
  should return Collection\Author
- 2973: Zend\Db\Sql : Create NotIn predicate
- 2977: Method signature of merge() in Zend\Config\Config prevents mocking
- 2988: Cache: Added storage adapter using a session container
- 2990: Added note of new xcache storage adapter
- 3010: [2.1][File Uploads] Multi-File input filtering and FilePRG plugin update
- 3011: Response Json Client
- 3016: [develop] PRG Plugin fixes: Incorrect use of session hops expiration
- 3019: [2.1][develop] PRG Plugins fix
- 3055: Zend Validators complain of array to string conversion for nested array
  values that do not pass validation when using E\_NOTICE
- 3058: [2.1][File Upload] Session Progress fixes
- 3059: [2.1] Add reference to ChromePhp LoggerWriter in WriterPluginManager
- 3069: Hotfix/xcache empty namespace
- 3073: Documentation and code  mismatch
- 3084: Basic support for aggregates in SharedEventManager according to feedback...
- 3086: Updated constructors to accept options array according to AbstractWriter...
- 3088: Zend\Permissions\Rbac roles should inherit parent permissions, not child
- 3093: Feature/cookies refactor
- 3105: RFC Send Response Workflow
- 3110: Stdlib\StringUtils
- 3140: Tests for Zend\Cache\Storage\Adapter\MemcachedResourceManager
- 3195: Date element formats not respected in validators.
- 3199: [2.1][FileUploads] FileInput AJAX Post fix
- 3212: Cache: Now an empty namespace means disabling namespace support
- 3215: Check $exception type before throw
- 3219: Fix hook in plugin manager
- 3224: Zend\Db\Sql\Select::getSqlString(Zend\Db\Adapter\Platform\Mysql) doesn't
  work properly with limit param
- 3243: [2.1] Added the support of Apache's passwords
- 3246: [2.1][File Upload] Change file upload filtering to preserve the $\_FILES
- 3247: Fix zend test with the new sendresponselistener
- 3257: Support nested error handler
- 3259: [2.1][File Upload] RenameUpload filter rewrite w/option to use uploaded
- 3263: correcting ConsoleResponseSender's __invoke
- 3276: DateElement now support a string
- 3283: fix Undefined function DocBlockReflection::factory error
- 3287: Added missing constructor parameter
- 3308: Update library/Zend/Validator/File/MimeType.php
- 3314: add ContentTransferEncoding Headers
- 3316: Update library/Zend/Mvc/ResponseSender/ConsoleResponseSender.php
- 3334: [2.1][develop] Added missing Exception namespace to Sha1 validator
- 3339: Xterm's 256 colors integration for Console.
- 3343: add SimpleStreamResponseSender + Tests
- 3349: Provide support for more HTTP methods in the AbstractRestfulController
- 3350: Add little more fun to console
- 3357: Add default prototype tags in reflection
- 3359: Added filter possibility
- 3363: Fix minor doc block errors
- 3365: Fix trailing spaces CS error causing all travis builds to fail
- 3366: Zend\Log\Logger::registerErrorHandler() should accept a parameter to set
  the return value of the error_handler callback
- 3370: [2.1] File PRG plugin issue when merging POST data with nested keys
- 3376: Remove use of deprecated /e-modifier of preg_replace
- 3377: removed test failing since PHP>=5.4
- 3378: Improve code generators consistency
- 3385: render view one last time in case exception thrown from inside view
- 3389: FileExtension validor error in Form context
- 3392: Development branch of AbstractRestfulController->processPostData()
  doesn't handle Content-Type application/x-www-form-urlencoded correctly
- 3404: Provide default $_SESSION array superglobal proxy storage adapter
- 3405: fix dispatcher to catch legitimate exceptions
- 3414: Zend\Mvc\Controller\AbstractRestfulController: various fixes to Json
- 3418: [2.1] Additional code comments for FileInput
- 3420: Authentication Validator
- 3421: Allow to set arbitrary status code for Exception strategy
- 3426: Zend\Form\View\Helper\FormSelect
- 3427: `Zend\ModuleManager\Feature\ProvidesDependencyModulesInterface`
- 3440: [#3376] Better fix
- 3442: Better content-type negotiation
- 3446: Zend\Form\Captcha setOptions don't follow interface contract
- 3450: [Session][Auth] Since the recent BC changes to Sessions,
  Zend\Authentication\Storage\Session does not work
- 3454: ACL permissions are not correctly inherited.
- 3458: Session data is empty in Session SaveHandler's write function
- 3461: fix for zendframework/zf2#3458
- 3470: Session not working in current development?
- 3479: Fixed #3454.
- 3482: Feature/rest delete replace collection
- 3483: [#2629] Add charset to Content-Type header
- 3485: Zend\Db Oracle Driver
- 3491: Update library/Zend/Code/Generator/PropertyGenerator.php
- 3493: [Log] fixes #3366: Now Logger::registerErrorHandler() accepts continue
- 3494: [2.1] Zend\Filter\Word\* no longer extends Zend\Filter\PregReplace
- 3495: [2.1] Added Zend\Stdlib\StringUtils::hasPcreUnicodeSupport()
- 3496: [2.1] fixed tons of missing/wrong use statements
- 3498: add method to Zend\Http\Response\Stream
- 3499: removed "self" typehints in Zend\Config and Zend\Mvc
- 3501: Exception while createing RuntimeException in Pdo Connection class
- 3507: hasAcl dosn't cheks $defaultAcl Member Variable
- 3508: Removed all @category, @package, and @subpackage annotations
- 3509: Zend\Form\View\Helper\FormSelect
- 3510: FilePRG: replace array_merge with ArrayUtils::merge
- 3511: Revert PR #3088 as discussed in #3265.
- 3519: Allow to pull route manager from sl
- 3523: Components dependent on Zend\Stdlib but it's not marked in composer.json
- 3531: [2.1] Fix variable Name and Resource on Oracle Driver Test
- 3532: Add legend translation support into formCollection view helper
- 3538: ElementPrepareAwareInterface should use FormInterface
- 3541: \Zend\Filter\Encrypt and \Zend\Filter\Decrypt not working together?
- 3543: Hotfix: Undeprecate PhpEnvironement Response methods
- 3545: Removing service initializer as of zendframework/zf2#3537
- 3546: Add RoleInterface
- 3555: [2.1] [Forms] [Bug] Factory instantiates Elements directly but should be
  using the FormElementManager
- 3556: fix for zendframework/zf2#3555
- 3557: [2.1] Fixes for FilePRG when using nested form elements
- 3559: Feature/translate flash message
- 3561: Zend\Mail SMTP Fix Connection Handling
- 3566: Flash Messenger fixes for PHP < 5.4, and fix for default namespacing
- 3567: Zend\Db: Adapter construction features + IbmDb2 & Oracle Platform
- 3572: Allow to add serializers through config
- 3576: BC Break in Controller Loader, controllers no more present in controller
- 3583: [2.1] Fixed an issue on salt check in Apache Password
- 3584: Zend\Db Fix for #3290
- 3585: [2.1] Added the Apache htpasswd support for HTTP Authentication
- 3586: Zend\Db Fix for #2563
- 3587: Zend\Db Fix/Feature for #3294
- 3597: Zend\Db\TableGateway hotfix for MasterSlaveFeature
- 3598: Feature Zend\Db\Adapter\Profiler
- 3599: [WIP] Zend\Db\Sql Literal Objects
- 3600: Fixed the unit test for Zend\Filter\File\Encrypt and Decrypt
- 3605: Restore Zend\File\Transfer
- 3606: Zend\Db\Sql\Select Add Support For SubSelect in Join Table - #2881 &


Zend Framework 2.0.7
- 1992: [2.1] Adding simple Zend/I18n/Loader/Tmx
- 2024: Add HydratingResultSet::toEntityArray()
- 2031: [2.1] Added MongoDB session save handler
- 2080: [2.1] Added a ChromePhp logger
- 2086: [2.1] Module class map cache
- 2100: [2.1] refresh() method in Redirect plugin
- 2105: [2.1] Feature/unidecoder
- 2106: [2.1] Class annotation scanner
- 2125: [2.1] Add hydrator wildcard and new hydrator strategy
- 2129: [2.1] Feature/overrideable di factories
- 2152: [2.1] [WIP] adding basic table view helper
- 2175: [2.1] Add DateSelect and MonthSelect elements
- 2189: [2.1] Added msgpack serializer
- 2190: [2.1] [WIP] Zend\I18n\Filter\SlugUrl - Made a filter to convert text to
- 2208: [2.1] Update library/Zend/View/Helper/HeadScript.php
- 2212: [2.1] Feature/uri normalize filter
- 2225: Zend\Db\Sql : Create NotIn predicate
- 2232: [2.1] Load Messages from other than file
- 2271: [2.1] Ported FingersCrossed handler from monolog to ZF2
- 2288: Allow to create empty option in Select
- 2305: Add support for prev and next link relationships
- 2315: Add MVC service factories for Filters and Validators
- 2316: Add paginator factory & adapter plugin manager
- 2333: Restore mail message from string
- 2339: ZF2-530 Implement PropertyScanner
- 2343: Create Zend Server Monitor Event
- 2367: Convert abstract classes that are only offering static methods
- 2374: Modified Acl/Navigation to be extendable
- 2381: Method Select::from can accept instance of Select as subselect
- 2389: Add plural view helper
- 2396: Rbac component for ZF2
- 2399: Feature/unidecoder new
- 2411: Allow to specify custom pattern for date
- 2414: Added a new validator to check if input is instance of certain class
- 2415: Add plural helper to I18n
- 2417: Allow to render template separately
- 2648: AbstractPluginManager should not respond to...
- 2650: Add view helper and controller plugin to pull the current identity from ...
- 2670: quoteIdentifier() & quoteIdentifierChain() bug
- 2702: Added addUse method in ClassGenerator
- 2704: Functionality/writer plugin manager
- 2706: Feature ini adapter translate
- 2718: Chain authentication storage
- 2774: Fixes #2745 (generate proper query strings).
- 2783: Added methods to allow access to the routes of the SimpleRouteStack.
- 2794: Feature test phpunit lib
- 2801: Improve Zend\Code\Scanner\TokenArrayScanner
- 2807: Add buffer handling to HydratingResultSet
- 2809: Allow Zend\Db\Sql\TableIdentifier in Zend\Db\Sql\Insert, Update & Delete
- 2812: Catch exceptions thrown during rendering
- 2821: Added event to loadModule().
- 2822: Added the ability for FirePhp to understand 'extras' passed to \Zend\Log
- 2841: Allow to remove attribute in form element
- 2844: [Server] & [Soap] Typos and docblocks
- 2848: fixing extract behavior of Zend\Form\Element\Collection and added
  ability to use own fieldset helper within FormCollection-helper
- 2855: add a view event
- 2868: [WIP][Server] Rewrite Reflection API to reuse code from
  Zend\Code\Reflection API
- 2870: [Code] Add support for @throws, multiple types and typed arrays
- 2875: [InputFilter] Adding hasUnknown and getUnknown methods to detect and get
  unknown inputs
- 2919: Select::where should accept PredicateInterface
- 2927: Add a bunch of traits to ZF2
- 2931: Cache: Now an empty namespace means disabling namespace support
- 2953: [WIP] #2743 fix docblock @category/@package/@subpackage
- 2989: Decouple Zend\Db\Sql from concrete Zend\Db\Adapter implementations
- 2995: service proxies / lazy services
- 3017: Fixing the problem with order and \Zend\Db\Sql\Expression
- 3028: Added Json support for POST and PUT operations in restful controller.
- 3056: Add pattern & storage cache factory
- 3057: Pull zend filter compress snappy
- 3078: Allow NodeList to be accessed via array like syntax.
- 3081: Fix for Collection extract method updates targetElement object
- 3106: Added template map generator
- 3189: Added xterm's 256 colors
- 3200: Added ValidatorChain::attach() and ValidatorChain::attachByName() to
  keep consistent with FilterChain
- 3202: Added NTLM authentication support to Zend\Soap\Client\DotNet.
- 3218: Zend-Form: Allow Input Filter Preference Over Element Defaults
- 3230: Add Zend\Stdlib\Hydrator\Strategy\ClosureStrategy
- 3241: Reflection parameter type check
- 3260: Zend/Di, retriving same shared instance for different extra parameters
- 3261: Fix sendmail key
- 3262:  Allows several translation files for same domain / locale
- 3269: A fix for issue #3195. Date formats are now used during validation.
- 3272: Support for internationalized .IT domain names
- 3273: Parse docblock indented with tabs
- 3285: Fixed wrong return usage and added @throws docblock
- 3286: remove else in already return early
- 3288: Removed unused variable
- 3292: Added Zend Monitor custom event support
- 3295: Proposing removal of subscription record upon unsubscribe
- 3296: Hotfix #3046 - set /dev/urandom as entropy file for Session
- 3298: Add PROPFIND Method to Zend/HTTP/Request
- 3300: Zend\Config - Fix count after merge
- 3302: Fixed #3282
- 3303: Fix indentation, add trailing ',' to last element in array
- 3304: Missed the Zend\Text dependency for Zend\Mvc in composer.json
- 3307: Fix an issue with inheritance of placeholder registry
- 3313: Fix buffering getTotalSpace
- 3317: Fixed FileGenerator::setUse() to ignore already added uses.
- 3318: Fixed FileGenerator::setUses() to allow passing in array of strings.
- 3320: Change @copyright Year : 2012 with 2013
- 3321: remove relative link in
- 3322: remove copy variable for no reason
- 3324: enhance strlen to improve performance
- 3326: Minor loop improvements
- 3327: Fix indentation
- 3328: pass on the configured format to the DateValidator instead of hardcoding it
- 3329: Fixed DefinitionList::hasMethod()
- 3331: no chaining in form class' bind method
- 3333: Fixed Zend/Mvc/Router/Http/Segment
- 3340: Add root namespace character
- 3342: change boolean to bool for consistency
- 3345: Update library/Zend/Form/View/Helper/FormRow.php
- 3352: ClassMethods hydrator and wrong method definition
- 3355: Fix for GitHub issue 2511
- 3356: ZF session validators
- 3362: Use CamelCase for naming
- 3369: Removed unused variable in Zend\Json\Decoder.php
- 3386: Adding attributes for a lightweight export
- 3393: [Router] no need to correct ~ in the path encoding
- 3396: change minimal verson of PHPUnit
- 3403: [ZF-8825] Lower-case lookup for "authorization" header
- 3409: Fix for broken handling of
  Zend\ServiceManager\ServiceManager::shareByDefault = false (Issue #3408)
- 3410: [composer] Sync replace package list
- 3415: Remove import of Zend root namespace
- 3423: Issue #3348 fix
- 3425: German Resources Zend_Validate.php updated.
- 3429: Add __destruct to SessionManager
- 3430: SessionManager: Throw exception when attempting to setId after the
  session has been started
- 3437: Feature/datetime factory format
- 3438: Add @method tags to the AbstractController
- 3439: Individual shared setting does not override the shareByDefault setting
  of the ServiceManager
- 3443: Adding logic to check module dependencies at module loading time
- 3445: Update library/Zend/Validator/Hostname.php
- 3452: Hotfix/session mutability
- 3473: remove surplus call deep namespace
- 3477: The display_exceptions config-option is not passed to 404 views.
- 3480: [Validator][#2538] hostname validator overwrite
- 3484: [#3055] Remove array to string conversion notice
- 3486: [#3073] Define filter() in Decompress filter
- 3487: [#3446] Allow generic traversable configuration to Captcha element
- 3492: Hotfix/random crypt test fail
- 3502: Features/port supermessenger
- 3513: Fixed bug in acl introduced by acca10b
- 3520: Replace all is\_null($value) calls with null === $value
- 3527: Explode validator: allow any value type to be validated
- 3530: The hasACL and hasRole don't check their default member variables
- 3550: Fix for the issue #3541 - salt size for Encrypt/Decrypt Filter
- 3562: Fix: Calling count() results in infinite loop
- 3563: Zend\Db: Fix for #3523 changeset - composer.json and stdlib
- 3571: Correctly parse empty Subject header
- 3575: Fix name of plugin referred to in exception message
- 3579: Some minor fixes in \Zend\View\Helper\HeadScript() class
- 3593: \Zend\Json\Server Fix \_getDefaultParams if request-params are an
  associative array
- 3594: Added contstructor to suppressfilter
- 3601: Update Travis to start running tests on PHP 5.5
- 3604: fixed Zend\Log\Logger::registerErrorHandler() doesn't log previous


Zend Framework 2.0.6
19 Dec 2012

- 2885: Zend\Db\TableGateway\AbstractTableGateway won't work with Sqlsrv
  db adapter (zendframework#2885)
- 2922: Fix #2902 (zendframework#2922)
- 2961: Revert PR #2943 for 5.3.3 fix
- 2962: Allow Accept-Encoding header to be set explicitly by http
  request (zendframework#2962)
- 3033: Fix error checking on Zend\Http\Client\Adapter\Socket->write().
- 3040: remove unused 'use DOMXPath' and property $count and $xpath
- 3043: improve conditional : reduce file size
- 3044: Extending Zend\Mvc\Router\Http\Segment causes error
- 3047: Fix Zend\Console\Getopt::getUsageMessage()
- 3049: Hotfix/issue #3033
- 3050: Fix : The annotation @\Zend\Form\Annotation\AllowEmpty declared
  on does not accept any values
- 3052: Fixed #3051 (zendframework#3052)
- 3061: changed it back 'consist' => the 'must' should be applied to all
  parts of the sentence
- 3063: hotfix: change sha382 to sha384 in
- 3070: Fix default value unavailable exception for in-build php classes
- 3074: Hotfix/issue #2451 (zendframework#3074)
- 3091: console exception strategy displays previous exception message
- 3114: Fixed Client to allow also empty passwords in HTTP
  Authentication. (zendframework#3114)
- 3125: #2607 - Fixing how headers are accessed
- 3126: Fix for GitHub issue 2605
- 3127: fix cs: add space after casting
- 3130: Obey PSR-2 (zendframework#3130)
- 3144: Zend\Form\View\Helper\Captcha\AbstractWord input and hidden
  attributes (zendframework#3144)
- 3148: Fixing obsolete method of checking headers, made it use the new
  method. (zendframework#3148)
- 3149: Zf2634 - Adding missing method Client::encodeAuthHeader
- 3151: Rename variable to what it probably should be
- 3155: strip duplicated semicolon
- 3156: fix typos in docblocks
- 3162: Allow Forms to have an InputFilterSpecification
- 3163: Added support of driver\_options to Mysqli DB Driver
- 3164: Cast $step to float in \Zend\Validator\Step
- 3166: [#2678] Sqlsrv driver incorrectly throwing exception when
  $sqlOrResource... (zendframework#3166)
- 3167: Fix #3161 by checking if the server port already exists in the
  host (zendframework#3167)
- 3169: Fixing issue #3036 (zendframework#3169)
- 3170: Fixing issue #2554 (zendframework#3170)
- 3171: hotfix : add  '$argName' as 'argument %s' in sprintf ( at 1st
  parameter ) (zendframework#3171)
- 3178: Maintain priority flag when cloning a Fieldset
- 3184: fix misspelled getCacheStorge()
- 3186: Dispatching to a good controller but wrong action triggers a
  Fatal Error (zendframework#3186)
- 3187: Fixing ansiColorMap by removing extra m's showed in the console
- 3194: Write clean new line for writeLine method (no background color)
- 3197: Fix spelling error (zendframework#3197)
- 3201: Session storage set save path
- 3204: [wip] Zend\Http\Client makes 2 requests to url if
  setStream(true) is called
- 3207: dead code clean up.
- 3208: Zend\Mime\Part: Added EOL paramter to getEncodedStream()
- 3213: [#3173] Incorrect creating instance
  Zend/Code/Generator/ClassGenerator.php by fromArray
- 3214: Fix passing of tags to constructor of docblock generator class
- 3217: Cache: Optimized Filesystem::setItem with locking enabled by
  writing the... (zendframework#3217)
- 3220: [2.0] Log Writer support for MongoClient driver class
- 3226: Licence is not accessable via web
- 3229: fixed bug in DefinitionList::hasMethod()
- 3234: Removed old Form TODO since all items are complete
- 3236: Issue #3222 - Added suport for multi-level nested ini config
  variables (zendframework#3236)
- 3237: [BUG] Service Manager Not Shared Duplicate new Instance with
  multiple Abstract Factories
- 3238: Added French translation for captcha
- 3250: Issue #2912 - Fix for LicenseTag generation
- 3252: subject prepend text in options for Log\Writer\Mail
- 3254: Better capabilities surrounding console notFoundAction


Zend Framework 2.0.5
- 3004: Zend\Db unit tests fail with code coverage enabled
- 3039: combine double if into single conditional
- 3042: fix typo 'consist of' should be 'consists of' in singular
- 3045: Reduced the #calls of rawurlencode() using a cache mechanism
- 3048: Applying quickfix for zendframework/zf2#3004
- 3095: Process X-Forwarded-For header in correct order


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

- 2808: Add serializer better inheritance and extension
- 2813: Add test on canonical name with the ServiceManager
- 2832: bugfix: The helper DateFormat does not cache correctly when a pattern is
  set. (zendframework#2832)
- 2837: Add empty option before empty check
- 2843: change self:: with static:: in call-ing static property/method
- 2857: Unnecessary path assembly on return in
  Zend\Mvc\Router\Http\TreeRouteStack->assemble() line 236
- 2867: Enable view sub-directories when using ModuleRouteListener
- 2872: Resolve naming conflicts in foreach statements
- 2878: Fix : change self:: with static:: in call-ing static property/method()
  in other components ( all ) (zendframework#2878)
- 2879: remove unused const in Zend\Barcode\Barcode.php
- 2896: Constraints in Zend\Db\Metadata\Source\AbstractSource::getTable not
  initalised (zendframework#2896)
- 2907: Fixed proxy adapter keys being incorrectly set due Zend\Http\Client
- 2909: Change format of Form element DateTime and DateTimeLocal
- 2921: Added Chinese translations for zf2 validate/captcha resources
- 2924: small speed-up of Zend\EventManager\EventManager::triggerListeners()
- 2929: SetCookie::getFieldValue() always uses urlencode() for cookie values,
  even in case they are already encoded
- 2930: Add minor test coverage to MvcEvent
- 2932: Sessions: SessionConfig does not allow setting non-directory save path
- 2937: preserve matched route name within route match instance while
  forwarding... (zendframework#2937)
- 2940: change 'Cloud\Decorator\Tag' to 'Cloud\Decorator\AbstractTag'
- 2941: Logical operator fix : 'or' change to '||' and 'and' change to '&&'
- 2952: Various Zend\Mvc\Router\Http routers turn + into a space in path
  segments (zendframework#2952)
- 2957: Make Partial proxy to view render function
- 2971: Zend\Http\Cookie undefined self::CONTEXT_REQUEST
- 2976: Fix for #2541 (zendframework#2976)
- 2981: Controller action HttpResponse is not used by SendResponseListener
- 2983: replaced all calls to $this->xpath with $this->getXpath() to always
  have... (zendframework#2983)
- 2986: Add class to file missing a class (fixes #2789)
- 2987: fixed Zend\Session\Container::exchangeArray
- 2994: Fixes #2993 - Add missing asterisk to method docblock
- 2997: Fixing abstract factory instantiation time
- 2999: Fix for GitHub issue 2579
- 3002: update master's resources/ja Zend_Validate.php message
- 3003: Adding tests for zendframework/zf2#2593
- 3006: Hotfix for #2497 (zendframework#3006)
- 3007: Fix for issue 3001 Zend\Db\Sql\Predicate\Between fails with min and max
  ... (zendframework#3007)
- 3008: Hotfix for #2482 (zendframework#3008)
- 3009: Hotfix for #2451 (zendframework#3009)
- 3013: Solved Issue 2857 (zendframework#3013)
- 3025: Removing the separator between the hidden and the visible inputs. As
  the... (zendframework#3025)
- 3027: Reduced #calls of plugin() in PhpRenderer using a cache mechanism
- 3029: Fixed the pre-commit script, missed the fix command
- 3030: Mark module as loaded before trigginer EVENT_LOAD_MODULE
- 3031: Zend\Db\Sql Fix for Insert's Merge and Set capabilities with simlar keys


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!


*Zend Framework 2.0.0rc1*
This is the first 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 no API changes before the stable release, and
recommend testing your production applications against it.

25 July 2012

 - Documentation
   - is now in a new repository,
   - Documentation has been converted from DocBook5 to ReStructured Text
     (reST or rst).
 - Coding standards fixes
   - We are (mostly) PSR-2 compliant at this time
 - Moved all Service components, include Cloud, GData, OAuth, OpenID,
   and Rest to separate repositories under the zendframework
   organization on GitHub. This will allow them to be versioned
   separately, which allows them to break backwards compatibility when
   necessitated by API changes.
 - Removed Zend\InfoCard as InfoCard has been declared obsolete by
 - Removed Zend\Registry; without the singleton nature, it was confusing
   and no longer relevant.
 - Removed Zend\Test component. Most features are now part of PHPUnit,
   and the others were ZF1-specific.
 - Removed Zend\Wildfire, as its API was specific to ZF1, and because we
   can easily leverage FirePHP at this time.
 - Removed Zend\DocBook, as it was primarily to assist in creating
   DocBook5 skeletons for the manual; since we've moved to rst, this is
   no longer relevant.
 - Removed Zend\Dojo, as the implementation was ZF1 specific, and
   out-of-date with recent Dojo releases.
 - Moved Amf, Markup, Pdf, Queue, Search, and TimeSync to separate
   repositories, as their APIs are not yet stable. PDF will be released
   with 2.0.0rc1, but only to provide a dependency for Zend\Barcode.
 - Renamed any classes, properties, or methods referencing the word
   "configuration" to read "config" instead; this provides consistency
   internally, and with the Zend\Config component.
 - Moved Zend\Acl to Zend\Permissions\Acl.
 - Console
   - Added features for console routing, providing more flexibility over the
     traditional Getopt methodology.
   - Added colorization, tables, prompts, and a variety of other interactive
   - Added ability to use controllers to respond to console routes.
 - Crypt, Math, Filter\Encrypt and Filter\Decrypt
   - Random number generation was consolidated to Zend\Math.
   - Removed the Mcrypt adapter in Filter and replaced with a
     BlockCipher algorithm.
 - DB
   - Metadata now understands enums and sets
   - Added Replace SQL statement type
   - AbstractRowGateway provides more cohesive access to field values.
 - EventManager
   - The first call to setSharedManager() will now seed the
     StaticEventManager, in order to match user expectations that the
     shared event manager is the same everywhere.
 - Form
   - Select-style elements now have options populated as value => label
     pairs instead of label => value pairs. This is done to ensure that
     option values are unique.
   - Added getValue() and setValue() to the ElementInterface to make a
     semantic distinction between an element value and attributes. This
     allows for easier handling of non-string or calculated values, such
     as those found in the Csrf and DateTime-family of elements.
   - getMessages() now omits any elements that have an empty messages
   - Allows removing elements from Collections
   - Fixed default validators for MultiCheckbox and Radio elements
   - Custom options are now allowed for all elements, fieldsets, and
   - Labels and several other view helpers are now translator-capable
 - Http
   - set/getServer() and set/getEnv() were removed from Http\Request
     and now part of Http\PhpEnvironment\Request
   - set/getFile() methods in Http\PhpEnvironment\Request
     were renamed to set/getFiles(). Also above methods
   - When submitted form has file inputs with brackets (name="file[]")
     $fileParams parameters in Http\PhpEnvironment\Request will be
     re-structured to have the same look as query/post/server/envParams
   - each of get(Post|Query|Headers|Files|Env|Server) were provided with
     two optional arguments, a specific key to retrieve, and a default
     value to return if not found.
   - Accept header parsing is more robust with regards to priority.
 - InputFilter
   - Added ability to retrieve input objects
 - I18n
   - Moved Zend\I18n\Validator\Iban to Zend\Validator\Iban
     and replaced the option "locale" with "country_code"
 - Json
   - Enabled a number of additional flags for json_encode
 - Loader
   - Removed the PrefixPathLoader, and replaced all usages of it in the
     framework with custom AbstractPluginManager implementations; this
     includes Zend\Feed, Zend\Text, and Zend\File\Transfer.
 - Log
   - Added a MongoDB log writer
   - Added a FirePHP log writer
   - Refactored how filters are instantiated and managed to use an
     AbstractPluginManager instance.
 - Mail
   - Added a MessageId header class
 - ModuleManager
   - Made it possible to substitute alternate ServiceListener
   - Moved default service configuration from the ModuleManager to the
 - MVC
   - Fixed a potential security issue in the ControllerLoader whereby
     arbitrary, non-controller classes could be instantiated. This
     involves removing the ability to fetch controllers via the DI Proxy
     (a minor backwards compatibility break).
   - Restful controller now provides a simpler way to marshal input data
     and override the default behavior.
   - Most View-related services were moved to their own factories to
     allow easier overriding by developers.
   - New PostRedirectGet plugin, to simplify PRG strategies for form
 - Serializer was refactored to make better use of PHP 5.3 features and
   to simplify the API.
 - ServiceManager
   - Allow passing the SM instance to initializers
   - Allow specifying the classname of an InitializerInterface
     implementation to addInitializer()
 - Validator
   - ValidatorChain now has a getValidators() method
   - InArray validator now does context-aware strict checks to prevent
     false positive matches, fixing a potential security vulnerability.
 - View
   - New AbstractTranslatorHelper, for helpers that should allow

Almost *200* pull requests for a variety of features and bugfixes were handled
since beta5!


*Zend Framework 2.0.0beta5*
6 July 2012


This is the fifth and last in a series of planned beta releases. The
beta release cycle has followed the "gmail" style of betas, whereby new
features have been added in each new release, and BC has not been

Following this release, we plan to perform some repository cleanup, a
standards audit, and documentation migration. Once these tasks are
complete, we will prepare our first Release Candidate (RC).

PLEASE NOTE: this beta includes a number of breaks from the previous
beta. Please read the notes below prefixed with "BC BREAK" for specific
breakages. The ZendSkeletonApplication typically reflects any BC changes
that have been made, and is a good resource.

 - Escaper component (Padraic Brady)
    - Provides context-specific escaping mechanisms for HTML content,
      HTML attributes, URLs, CSS, and JavaScript.
    - BC BREAK: The escape() view helper was removed, and replaced with
      escapeHtml(), escapeHtmlAttr(), escapeJs(), escapeCss(), and
      escapeUrl() implementations.
 - New I18n component (Ben Scholzen, Chris Martin, Dennis Portnov,
   Matthew Weier O'Phinney)
    - New component leveraging PHP's ext/intl extension to provide
      internationalization (i18n) and localization (L10n) features and
      capabilities to applications.
        - DateTime, DateTimezone, IntlDateFormatter
        - Locale
        - NumberFormatter
    - BC BREAK: REMOVES the following components:
        - Zend\Currency
        - Zend\Date
        - Zend\Locale
        - Zend\Measure
        - Zend\Translator
        - All filters, validators, and view helpers that relied on the
        - Zend\I18n\Translator, including support for gettext and
          PHP-array-based translations (more are planned).
        - Zend\I18n\Filter, containing localized filtering capabilites
          for Alnum (alphanumeric), Alpha (alphabetic), and NumberFormat
          (numerical strings).
        - Zend\I18n\Validator, containing localized validation
          capabilities for Alnum (alphanumeric), Alpha (alphabetic),
          Iban (international bank account number standard), Int
          (integer), and PostCode (localized postal codes).
        - Zend\I18n\View, containing localized view helpers for
          CurrencyFormat, DateFormat, NumberFormat, Translate, and
 - Db layer additions (Ralph Schindler, Rob Allen, Guillaume Metayer,
   Sascha Howe, Chris Testroet, Evan Coury, Ben Youngblood)
    - Metadata support
    - Postgresql adapter/driver
    - New HydratingResultSet, allowing the ability to specify a custom
      hydrator (from Zend\Stdlib\Hydrator) for hydrating row objects.
    - Many bugfixes and stabilizations
 - Form additions (Matthew Weier O'Phinney, Michaël Gallego, Yanick Rochon)
    - Annotations support: Ability to use annotations with a domain
      object in order to define a form, fieldsets, elements, inputs and
      input filters, and more.
    - Hydration of fieldsets; fieldsets may compose their own hydrators
      if desired.
    - Collection support; allows multiple instances of the same
      fieldset. As an example, you might have an interface that
      allows adding a set of form elements via an XHR call; on the
      backend, these would be defined as a collection, allowing
      arbitrary numbers of these fieldsets to be submitted.
    - New view helpers covering most HTML5-specific element types, most
      XHTML-specific element types. Additionally, a number of the
      HTML5-specific element types now have Element implementations to
      create turn-key solutions that include validation and filtering.
    - BC BREAK: Options support. Many attributes were being used not as
      HTML attributes but to define behavior. The ElementInterface now
      has an accessor and mutator for options. Examples of options
      include labels for non-radio/checkbox/select elements, the CAPTCHA
      adapter for CAPTCHA elements, CSRF tokens, etc. If you were
      defining labels in your forms, please move the label and label
      attributes definitions from the "attributes" to the "options" of
      the element, fieldset, or form.
    - BC BREAK: new interface, ElementPrepareAwareInterface, defining
      the method "prepareElement(Form $form)". The FieldsetInterface,
      and, by extension, FormInterface, extend this new interface. It is
      used to allow preparing elements prior to creating a
 - MVC additions (Kyle Spraggs, Evan Coury, Matthew Weier O'Phinney)
    - New "Params" controller plugin. Allows retrieving query, post,
      cookie, header, and route parameters. Usage is
      $this->params()->fromQuery($name, $default).
    - New listener, Zend\Mvc\ModuleRouteListener. When enabled, if a
      route match contains a "\__NAMESPACE__" key, that namespace value
      will be prepended to the value of the "controller" key. This
      should typically be used in the root route for a given module, to
      ensure controller names do not clash.
    - Bootstrap simplification. A new "init()" method was created that
      accepts the path to a configuration file, and then creates and
      bootstraps the application; this eliminates all common boilerplate
      for the bootstrap scripts.
 - Hydrator changes (Adam Lundrigan)
    - BC BREAK: the ClassMethods hydrator now assumes by default that
      it should convert between underscore_separated names and
 - BC BREAK: Doctrine Annotations Parser (Matthew Weier O'Phinney, Marco
   Pivetta, Guilherme Blanco)
    - Zend\Code\Annotation now has a dependency on Doctrine\Common for
      its annotation parser.
    - Annotations now conform to Doctrine's standards by default, but
      the AnnotationManager in ZF2 allows attaching alternate parsers
      for specific annotation types.
 - BC BREAK: Removal of Plugin Broker usage (Matthew Weier O'Phinney,
   Evan Coury)
    - All uses of the Plugin Broker / Plugin Class Locator combination
      were removed. A new class, Zend\ServiceManager\AbstractPluginManager,
      was created and used to replace all previous usages of the plugin
      broker. This provides more flexibility in creation of plugins, as
      well as reduces the number of APIs developers need to learn.
    - Configuration of plugin managers is now done at the top-level. All
      plugin manager configuration follows the format utilized by
      Zend\ServiceManager\ServiceConfiguration, and
      Zend\ModuleManager\Listener\ServiceListener has been updated to
      allow informing it of plugin manager instances it should manage,
      as well as the configuration key to utilize.
 - BC BREAK: Coding Standards (Maks3w, Sascha Prolic, Rob Allen)
    - Renamed most abstract classes to prefix them with the term
      "Abstract". In particular, ActionController and RestfulController
      are now AbstractActionController and AbstractRestfulController.
    - Renamed getters in HTTP, EventManager, and Mail components. These
      components were using accessors such as "events()", "query()",
      "headers()", etc. All such accessors were renamed to prepend
      "get", and, in the case of "events()", renamed to indicate the
      actual object retrieved ("getEventManager()").
 - SECURITY FIX: XmlRpc (Matthew Weier O'Phinney)
    - A security issue arising from XML eXternal Entity (XXE) injection
      was patched; see

Over *400* pull requests for a variety of features and bugfixes were handled
since beta4!


Zend Framework 2.0.0beta4

This is the fourth 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 _approximately_ every six weeks.

Once the established milestones have been reached and the featureset has reached
maturity and reasonable stability, we will freeze the API and prepare for
Release Candidate (RC) status. At this time, we are only planning for one more
beta release (beta5) before starting the RC process.

PLEASE NOTE: this beta includes a large number of breaks from the previous beta,
due to introduction of the ServiceManager, changes to the EventManager, renaming
of the ModuleManager, rewrite of the Form component (and removal of the Dojo
component), and several changes in the View layer. Please consult the
ZendSkeletonApplication to get an idea of the changes necessary to make your
application work with beta4.

 - Config component (Enrico Zimuel)
    -  Added reader and writer implementations for JSON and YAML configuration
 - Crypt and Math (Enrico Zimuel)
    - Creates a generic API for string and stream en/decryption
    - Provides bcrypt support
    - Provides BigInteger support
    - Provides common methodology surrounding credential encryption and hashing
 - Db layer (Ralph Schindler)
    - Zend\Db\Adapter: added buffer() to the ResultInterface, added that feature
      to Mysqli Result object
    - Zend\Db\Adapter: added ability to subselect Sqlite for returning a true
    - Zend\Db\Adapter: added API to return helper closures from the Adapter API
    - Renamed "database" to "schema" in all usages across Zend\Db
    - Zend\Db\Adapter: Various fixes for PDO connection parameters
    - Zend\Db\Sql: created a shared AbstractSql implementation to share
      expression processing
    - Zend\Db\Sql: created a more robust "Expression" object for use in Select
      and Predicates
    - Zend\Db\Sql: created an internal workflow and architecture to handle the
      creation of platform specific queries
    - Zend\Db\Sql: implemented limit() and offset() API to Select
    - Zend\Db\Sql: added having(), order() to SELECT API
    - Zend\Db\Sql: added alias support to Select::columns()
    - Zend\Db\TableGateway: reorganized AbstractTableGateway and TableGateway,
      removed other extensions in favor of "Features"
    - Zend\Db\TableGateway: created a "Features" API in TableGatway to promote
      horizontal extension of TableGatway
 - Di (Ralph Schindler, Marco Pivetta)
    - Added method injectDependencies($instance), to allow injecting an object
      after an instance is already available (used in the ServiceManager)
    - Various fixes based on issue reports
 - Dojo
    - REMOVED. Support was for out-dated versions of Dojo, and with the new Form
      rewrite, it needs to be completely rewritten. This is targetted for post
      2.0.0 at this time.
 - EventManager (Matthew Weier O'Phinney)
    - New SharedEventManager, a non-static version of the original
    - StaticEventManager now extends SharedEventManager and implements a
      singleton pattern
    - New ServiceManager creates a shared instance of SharedEventManager and
      injects it in a non-shared EventManager instance per service; static usage
      is discouraged at this time.
    - attachAggregate() now accepts an optional $priority, which, when present,
      will be passed to the ListenerAggregate, allowing specifying a priority
      during attachment of its events.
    - EventManager now can handle arrays of events as well as wildcard events
    - SharedEventManager now can handle arrays of contexts, wildcard contexts,
      and arrays/wildcard events.
 - Form (Matthew Weier O'Phinney, Kyle Spraggs, Guilherme Blanco)
    - Complete rewrite
    - Elements compose a name and attributes
    - Fieldsets compose a name, attributes, and elements and fieldsets
    - Forms compose a name, attributes, elements, fieldsets, an InputFilter, and
      optionally a Hydrator and bound object.
    - New form view helpers accept the Form objects in order to generate markup.
    - Object binding allows direct binding of model data to and from the Form.
 - InputFilter (Matthew Weier O'Phinney)
    - New component for object-oriented creation of input filters
    - Input objects compose filter and validator chains, as well as metadata
      such as required, allow empty, break on failure, and more.
    - InputFilter objects compose Input and InputFilter objects, and allow
      validating the entire set or specified validation groups.
 - Log (Enrico Zimuel, Benoit Durand)
    - Refactored to provide more flexibility
    - Adds API discoverability (instead of method overloading)
    - Uses the PluginBroker for loading writers and formatters
    - Uses PriorityQueue to manage writer priority
    - Uses FilterChain for filtering messages
    - Adds a renderer for exceptions, a JSON formatter, and additional interfaces
 - Mail (Enrico Zimuel)
    - Allow batch sending via the SMTP transport
 - ModuleManager (Evan Coury, Matthew Weier O'Phinney)
    - Renamed from "Module" to "ModuleManager"
    - Renamed "Consumer" subnamespace to "Feature"
    - Added new listeners:
      - OnBootstrapListener (Module classes defining onBootstrap() will have
        that method attached as a listener on the Application bootstrap event)
      - LocatorRegistrationListener (Module classes implementing the
        LocatorRegisteredInterface feature will be injected in the
      - ServiceListener (Module classes defining getServiceConfiguration() will
        have that method called, and the configuration merged; once all modules
        are loaded, that merged configuration will be passed to the
 - MVC (Matthew Weier O'Phinney, Ralph Schindler, Evan Coury)
    - Removed Bootstrap class and rewrote Application class
      - Composes a ServiceManager, and simply fires events
    - Added RouteListener and DispatchListener classes, implementing the default
      route and dispatch strategies.
    - Created a new "Service" subnamespace, with ServiceManager configuration
      and factories for the default MVC services.
    - Created a new "ViewManager" class, which triggers on the bootstrap event,
      at which time it creates the various objects of the view layer and wires
      them together as well as registers them with the appropriate events.
    - InjectTemplateListener now uses the controller namespace to further
      namespace the view template; the default is now
      "<normalized top-level namespace>/<normalized controller name>/<action>"
 - ServiceManager component (Ralph Schindler, Matthew Weier O'Phinney)
    - Highly performant, programmatic service creation
    - Largely replaces DI, but can also consume Zend\Di
    - Allows:
      - Service registration
      - Lazy-loaded service objects
      - Service factories
      - Service aliasing
      - Abstract (fallback) factories
      - Initializers (manipulate instances after creation)
    - Fully integrated in the MVC solution
 - Renamed interfaces (Gabriel Baker, Sascha Prolic, Maks3w)
   - Most, if not all, interfaces were renamed to suffix with the word
     "Interface". This is to promote discovery of interfaces, as well as make
     naming simpler.
   - Exceptions are affected by this as well. Exception marker interfaces were
     renamed to ExceptionInterface and pushed into the Exception subnamespace of
     each component
 - Composer support (Rob Allen, Marco Pivetta, Kyle Spraggs)
   - Zend Framework is now installable via Composer (, as
     are each of its individual components
 - Travis CI integration (Marco Pivetta, Maks3w)
   - ZF2 is tested on each commit by

Over *400* pull requests for a variety of features and bugfixes were handled
since beta3!


This is the third 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 approximately every six weeks.

Once the established milestones have been reached and the featureset has
reached maturity and reasonable stability, we will freeze the API and
prepare for Release Candidate status.


- Refactored Config component (Ben Scholzen, Artur Bodera, Enrico Zimuel, Evan Coury)
  - All readers moved under Zend\Config\Reader
    - JSON and YAML readers removed until beta4
    - New API:
      $xml = new Zend\Config\Reader\Xml();
      $config = new Zend\Config\Config($xml->fromFile($filename);

      $xml     = new Zend\Config\Reader\Xml();
      $config = $xml->fromFile($filename, true);

      or, simpler:
      $config = Zend\Config\Factory::fromFile($filename);
    - All constant injection removed from readers
      - New Processor API allows processing the retrieved configuration to do
        optional injection/manipulation of configuration values.
    - Ability to import other configuration files within a configuration file
  - Factory added, to simplify retrieving configuration from any configuration
    format supported.
- New View layer (Matthew Weier O'Phinney)
  - View layer is now:
    - Models, for aggregating and representing data to render; models may be
      nested to represent complex view hierarchies
    - Renderers, which render templates, using either variables provided or
    - Resolvers, which resolve template names to resources a renderer may
    - View, which allows attaching strategies for determining the renderer to
      use, as well as how to inject the response when done.
  - Old Zend_View is now Zend\View\Renderer\PhpRenderer
    - Composes a Resolver, a PluginBroker (for helpers), a Variables container
      (for aggregating variables to pass to the view script), and a FilterChain
      (for output filtering).
    - render() now accepts View\Models
    - allows rendering stacks of templates under the same variable scope, via
      the addTemplate() mechanism
    - moves escaping to an Escape view helper; no auto-escaping is enabled
  - MVC integration
    - Strategy listeners for:
      - Handling and returning 404 pages
      - Handling and returning error pages due to exceptions
      - RAD support for creation and injection of view models from action
        controller return values
    - Addition of a "render" event, executing after "dispatch" and before
- New Db layer (Ralph Schindler)
  - Complete rewrite from the ground up.
  - New architecture features low-level drivers, which also provide access to
    the PHP resource being consumed; adapters, which provide basic abstraction
    for common CRUD operations; new SQL abstraction layer, with full predicate
    support; abstraction for ResultSet's, with the ability to cast rows to
    specific object types; abstraction for SQL metadata; and a revised Table and
    Row Data Gateway.
- New Zend\Service\AgileZen component (Enrico Zimuel)
  - Support for the full AgileZen ( API
  - Developed for use with
- PHP 5.4 support
  - A number of issues when running ZF2 under PHP 5.4 were identified and
- Other components that received attention:
  - Zend\GData (Maks3w)
  - Zend\Navigation (Kyle Spraggs, Frank Brückner)
  - Zend\Session (Mike Willbanks)
  - Zend\Service\Technorati (Maks3w)
  - Zend\Service\StrikeIron (Maks3w)
  - Zend\Service\Twitter (Maks3w)
  - Zend\Http\Header\Accept* (Matthew Weier O'Phinney, Enrico Zimuel)
    - Adds support for q priority, level identifiers, and wildcard media and
      submedia types
  - Zend\Ldap (Maks3w, Stefah Gehrig)
  - Zend\Oauth (bakura10)
  - Zend\Mvc and Zend\Module (Evan Coury, many others)

Around 200 pull requests for a variety of features and bugfixes were handled
since beta2.


Zend Framework 2.0.0beta2


This is the second 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 approximately every six weeks.

Once the established milestones have been reached and the featureset has
reached maturity and reasonable stability, we will freeze the API and
prepare for Release Candidate status.


- Refactored Mail component
  - Does not change existing Storage API, except:
    - Zend\Mail\MailMessage was moved to Zend\Mail\Storage\MailMessage
    - Zend\Mail\MailPart was moved to Zend\Mail\Storage\MailPart
    - Zend\Mail\Message was moved to Zend\Mail\Storage\Message
    - Zend\Mail\Part was moved to Zend\Mail\Storage\Part
  - Zend\Mail\Mail was renamed to Zend\Mail\Message
    - Encapsulates a mail message and all headers
    - MIME messages are created by attaching a Zend\Mime\Message object as the
      mail message body
  - Added Zend\Mail\Address and Zend\Mail\AddressList
    - Used to represent single addresses and address collections, particularly
      within mail headers
  - Added Zend\Mail\Header\* and Zend\Mail\Headers
    - Representations of mail headers
  - Zend\Mail\Transport interface defines simply "send(Message $message)"
    - Smtp, File, and Sendmail transports rewritten to consume Message objects,
      and to introduce Options classes.
- Refactored Zend\Cache
  - Completely rewritten component.
  - New API features storage adapters and adapter plugins for implementing cache
    storage and features such as serialization, clearing, and optimizing.
    - Current adapters include filesystem, APC, memcached, and memory.
    - All adapters can describe capabilities.
    - Plugins are implemented as event listeners.
  - New "Pattern" API created to simplify things like method, class, object, and
    output caching.
- MVC updates
  - Zend\Module\Manager was stripped of most functionality; it now simply
    iterates requested modules and triggers events.
  - Former manager functionality such as class loading and instantiation,
    "init()" triggering, configuration gathering, and autoloader seeding were
    moved to event listeners.
  - Post-module loading configuration globbing support was added.
    - Simplifies story of overriding module configuration.
  - Recommended filesystem no longer uses plurals for directory names.
  - Recommendations now include a chdir(__DIR__ . '/../') from the
    public/index.php file, and specifying configuration paths to be relative to
    application directory.

In addition, over 100 bug and feature requests were handled since beta1.


Zend Framework 2.0.0beta1

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.

Once the established milestones have been reached and the featureset has
reached maturity and reasonable stability, we will freeze the API and
prepare for Release Candidate status.


- 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.
- 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.
- Introduces new packaging system, allowing the usage of Pyrus
  ( to install individual components and/or groups
  of components.


Zend Framework 2.0.0dev4
Fourth development snapshot for Zend Framework 2.0.

This snapshot includes:

 - The "Dispatchable" and related interfaces (Zend\Stdlib\Dispatchable,
   MessageDescription, RequestDescription, and ResponseDescription)

 - A fully refactored HTTP component
   - Rewritten URI component, with better and more extensible support
     for an array of different URI schemas, as well as more flexible
     path and parameter decomposition and serialization.

   - Adds HTTP versions of the Stdlib Request and Response interfaces,
     along with full-fledged support for standard HTTP headers.

   - A rewritten HTTP client that consumes Http\Request objects and
     produces Http\Response objects.

   - Two additional HTTP client implementations that provide a
     convenience API around the base HTTP client. One is static, and
     allows for simple one-off requests:

         $response = ClientStatic::get($uri);
         $response = ClientStatic::post(
            array('foo' => 'bar'),
            array('Content-Type' => ClientStatic::ENC_URENCODED)

     The other largely mimics the Zend Framework 1.X HTTP client, and
     proxies functionality to the Request object when appropriate.

 - Updated all docbook sources to DocBook 5 formatting standards.

 - Merging of more than 50 pull requests made by community members,
   ranging from one-liner documentation changes to sweeping fixes to the
   testing repository (including fixing most assertions deprecated in
   PHPUnit 3.5.0).

We will be refactoring all components using the HTTP client in an
upcoming milestone to ensure they continue to work, and will also
post a blog entry and documentation page containing tips.

This snapshot should NOT be used in production, as it is considered
pre-pre alpha quality.


Tagged 2.0.0dev3
- EventManager
- Initial DI component


Zend Framework 2.0.0dev2
Second development milestone for Zend Framework 2.0.

This snapshot concludes two parallel milestones:

 - "Autoloading and Plugin Loading"
 - "Exceptions"

See the milestones page for full details:

The basic functionality added at this point include:

 - Several autoloading strategies, including class maps and PSR-0 style
   autoloading that uses explicit paths instead of the include_path.
 - Tools for generating class maps.
 - Removal of Zend\Loader::loadClass() and Zend\Loader\Autoloader in
   favor of the new solutions
 - Refactoring of the Resource autoloader to conform with the new
   autoloader interface
 - Addition of several plugin class resolution interfaces
 - Addition of an aliasing plugin class resolver
 - Refactoring of PluginLoader to PrefixPathLoader and usage of SplStack
 - Addition of a Broker interface, and a generic implementation,
 - Refactoring of all components that used PluginLoader previously to
   use class alias plugin resolvers with plugin brokers
 - Refactoring of Zend\View to make use of a plugin broker and filter

Several pieces were left to refactor later, including:

 - Zend\Cache (in progress)
 - Zend\Form (likely will replace filters with FilterChain, validators
   with ValidatorChain, and implement a different rendering strategy)
 - View helpers (a "direct" strategy method is no longer necessary using
   a brokering strategy)

This snapshot should NOT be used in production, as it is considered
pre-pre alpha quality.


Zend Framework 2.0.0dev1
First development milestone for ZF 2.0.0.

At this time, the ZF Quick Start can be completely implemented in ZF2, and a
reference application containing authentication, ACLs, FlashMessenger, Markup,
and more has been tested. While ZF2 cannot be considered of production quality,
it is in a usable state at this time.

- require_once calls stripped
- test suite refactored to remove AllTests.php files, unused test classes/files,
  and refactor conditional tests
- ZF library switched to utilize PHP namespaces instead of vendor prefixes
- Rewritten Zend\Session component
- Added Zend\Stdlib component, with several utility classes, including:
  - FilterChain interface and reference implementation
  - Serializeable versions of SplQueue, SplStack, and SplPriorityQueue
- Added Zend\SignalSlot, to standardize observers throughout framework; utilized
  internally in Zend\Session implementation for validation chains
- Slight refactoring of Zend\Filter and Zend\Validation to separate chain and
  static call implementations
- Renaming of several components (see working/PHPNamespacer-MappedClasses.xml
  for details)
- Moved to Git for version control
Something went wrong with that request. Please try again.