Tags: grizk/zf2
Tags
Zend Framework 2.0.0 ==================== This is the first stable release of the new version 2 release branch. 04 September 2012 NEW IN ZEND FRAMEWORK 2 ----------------------- 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 interface. - 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 well. - 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 transports. - 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
object.
- 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
element
- 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
interfaces.
- 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"
exception.
- 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
"translation_file_patterns".
- 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:
http://zend-framework-community.634137.n4.nabble.com/Change-to-Zend-Mvc-Application-s-event-identifiers-tp4656517.html
- 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
Zend\View\Helper\Url.
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
allowValueBinding().
- 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 StrategyEnabledInterface. - 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 validators. - 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,
https://github.com/zendframework/zf2-documentation
- 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
MicroSoft.
- 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
features.
- 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
array.
- Allows removing elements from Collections
- Fixed default validators for MultiCheckbox and Radio elements
- Custom options are now allowed for all elements, fieldsets, and
forms.
- 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
implementations
- Moved default service configuration from the ModuleManager to the
ServiceListener
- 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
submissions.
- 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
translations.
Almost *200* pull requests for a variety of features and bugfixes were handled
since beta5!
*Zend Framework 2.0.0beta5*
6 July 2012
THIS RELEASE IS A DEVELOPMENT RELEASE AND NOT INTENDED FOR PRODUCTION USE.
PLEASE USE AT YOUR OWN RISK.
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
guaranteed.
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.
- LEVERAGES:
- 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
above.
- PROVIDES:
- 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
TranslatePlural.
- 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
representation.
- 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
camelCase.
- 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 http://framework.zend.com/security/advisory/ZF2012-01
Over *400* pull requests for a variety of features and bugfixes were handled
since beta4!
Zend Framework 2.0.0beta4
THIS RELEASE IS A DEVELOPMENT RELEASE AND NOT INTENDED FOR PRODUCTION USE.
PLEASE USE AT YOUR OWN RISK.
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
count()
- 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
- 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
ServiceManager)
- 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
ServiceManager)
- 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 (http://packagist.org/), as
are each of its individual components
- Travis CI integration (Marco Pivetta, Maks3w)
- ZF2 is tested on each commit by http://travis-ci.org/
Over *400* pull requests for a variety of features and bugfixes were handled
since beta3!
PreviousNext