ez components / resources / news archive / ez components 2008.2

eZ Components 2008.2

Author: Derick Rethans
Date: 2009-01-05 12:57

The development team is happy to announce the release of the seventh major version of eZ Components: version 2008.2.

New Components

The main new development of this release is focused on the MvcTools (and accompanying) components.


The MvcTools component implements the tools for a framework. Instead of dedicating the structure of the application, it provides a dispatcher, two request parsers (one for HTTP, and one for e-mail message through the Mail component), two routing methods, two views handlers (one through plain PHP scripts, and one through the Template component) and a response writer for HTTP. The tools that are currently implemented, will in later releases be used by a Framework component.

There are currently two example applications available in the eZ Components SVN repository. A simple HelloMvc application, as well as a more advance application called TheWire that implements a twitter like internal-messaging system. The HelloMvc application is also described in the MvcTools tutorial.

Other Improvements

Other important improvements in this release include support for more formats in the Document component and support for Webdav locking and authentication.


The Document component enables you to convert documents between different formats. Previously, it would convert ReST to XHTML and DocBook. DocBook is an intermediate format for most of the conversions. In this release more formats are implemented, such as three different wiki formats (Confluence, Creole and DokuWiki), the eZ Publish XML formats, as well as reading XHTML (before it could only output to XHTML) and writing ReST (before it could only parse ReST). The wiki parser can easily be extended for other wiki formats.


The Webdav component now supports authentication and authorization as well as support for integration of authentication mechanisms into your already existing systems. In addition, it supports shared and exclusive write locks, even with your custom storage back-ends.


For this release, the development team addressed 55 bugs, implemented 43 new features and completed 14 tasks - 112 issues in total.


You can download the eZ Components bundle on the download page. Updated documentation is available on the documentation page. Please note that eZ Components requires PHP 5.2.1 or higher, but a more recent version such as 5.2.8 is recommended.

Users of the PEAR installer can upgrade to the new version with this command:

pear upgrade ezc/ezcomponents

General installation instructions can be found here.


The full changelog follows:


1.3.1 - Monday 15 December 2008

  • Fixed issue #13517: Not possible to add directories to an archive on Windows.


1.2.3 - Monday 01 December 2008

  • Fixed issue #14003: split() is deprecated in PHP 5.3.

1.2.2 - Monday 10 November 2008

  • Fixed issue #13810: Added different exception classes for different cases.

1.2.1 - Monday 06 October 2008

  • Avoid a notice caused by opening a Typekey keys file from an unreachable host.


1.6 - Monday 05 January 2009

  • Added a workaround for a segfault in call_user_func() in PHP 5.2.x.

1.6rc1 - Monday 15 December 2008

  • Implemented issue #12542: Refactored the ezcBaseFile::findRecursive() method into the ezcBase::walkRecursive() method so that you can setup your own callbacks to "do things". The findRecursive() method is now implemented through this.
  • Fixed issue #14091: Incorrect documentation for ezcBaseConfigurationInitializer.

1.6beta1 - Monday 01 December 2008

  • Added the exception class ezcBaseFunctionalityNotSupportedException.

1.5.2 - Monday 06 October 2008

  • Fixed an issue in ezcBaseFile::removeRecursive, where the parent directory could not be written to. We now make sure nothing is deleted until we're sure everything can be deleted.

1.5.1 - Monday 04 August 2008

  • Fixed issue #13370: Infinitive loop in ezcBaseFile::calculateRelativePath().
  • Implemented issue #11865: Different development modes.


1.3.2 - Monday 15 December 2008

  • Fixed bug #14087: ezcConfigurationManager::reset() does not reset the cached configuration objects.

1.3.1 - Monday 06 October 2008

  • Implemented issue #12523: Offer hasConfigFile() in ezcConfigurationManager.
  • Fixed bug #13458: Problems with fetching out-of-range integers in configuration files.


1.5rc1 - Monday 15 December 2008

  • Fixed issue #14078: ezcConsoleDialog implementations now throw an ezcConsoleDialogAbortException, if the user closes STDIN (<CTRL>-D).

1.5beta1 - Monday 01 December 2008

  • Implemented feature #12567: All help generation methods now support grouping of options.
  • Implemented feature #13240: ezcConsoleProgressbar now allows to specify $minVerbosity and $maxVerbosity options.


1.4.2 - Monday 05 January 2009

  • Fixed issue #14197: ezcQuerySubselect API doc has some typos and words left away.

1.4.1 - Monday 01 December 2008

  • Fixed issue #14014: Typo in documentation for ezcQueryUpdate.


1.4.2 - Monday 05 January 2009

  • Added missing support for the MySQL bit datatype.

1.4.1 - Monday 01 December 2008

  • Fixed issue #13460: Documentation issues.


1.1 - Monday 05 January 2009

  • Fixed issue #14136: Errors in some file docblocks
  • Fixed issue #14185: Invalid docbook markup created for table cells in wiki visitor
  • Fixed issue #14188: ezcDocumentEzXml::getAsDocbook() returns an ezcDocumentEzXml rather than ezcDocumentDocbook
  • Fixed issue #14208: Invalid docubook markup: Attributes used in wrong case
  • Fixed issue #14210: Docbook: literallayout class should be "normal" instead of "Normal"
  • Fixed issue #14211: Docbook markup: citation and attribution contents should not be wrapped inside a paragraph
  • Added support for reading three wiki formats: Confluence, Creole and DokuWiki.
  • Added support for writing the Creole wiki format.
  • Added support for reading XHTML.
  • Added support for reading and writing eZ Publish XML formats.
  • Added support for writing RST.

1.1alpha1 - Monday 10 November 2008

  • Implemented feature #12339: Add support for eZXml markup.
  • Implemented feature #12340: Add support for wiki markup.
  • Implemented feature #13083: Read and write XHTML format.
  • Implemented feature #13084: Write RST format.
  • Implemented feature #13322: Possibility to reference a stylesheet for use with XHTML output of reST documents.
  • Fixed issue #13727: Autoenumerated enumerated lists parsed as paragraphs.

1.0.2 - Monday 04 August 2008

  • Fixed issue #13326: Paragraph order mixed up with blockquotes in bullet lists.
  • Fixed issue #13327: Emphasis closing node wrongly recognized as opening node.

1.0.1 - Tuesday 08 July 2008

  • Fixed issue #13200: Problem with multiple headers with the same name, when generating table of contents in an rst document.
  • Fixed issue #13220: Support for row seperators in simple table bodies missing.
  • Fixed issue #13237: Whitespaces before single word named external references are skipped.
  • Fixed issue #13238: Whitespaces at line ends, with markup as last element are skipped.
  • Fixed issue #13239: Named external references with literal markup in destination nodes are not found.
  • Fixed issue #13265: Handle inline literals correctly.
  • Fixed issue #13266: Parse error on no newlines at the end of input text.
  • Fixed issue #13267: Trim surrounding whitespaces in title strings.


1.2rc1 - Monday 15 December 2008

  • Fixed issue #14055: Parsing an empty string raises a warning.

1.2beta1 - Monday 01 December 2008

  • Fixed issue #13963: error with setting directly the item property enclosure.
  • Fixed issue #14003: split() is deprecated in PHP 5.3.

1.2alpha1 - Monday 10 November 2008

  • Implemented feature feature #13174: Add tutorial information for parsing feeds which require authentication.

1.1.1 - Monday 06 October 2008

  • Fixed issue #13570: Use internal libxml error handling.


1.4rc1 - Monday 15 December 2008

  • Implemented feature #014010: Possibility to set x/y offsets for highlightValue. (Initial patch by Markus Lervik)

1.4alpha1 - Monday 10 November 2008

  • Implemented feature #13103: Different axes end styles.
  • Implemented feature #13102: Axes not extending beyond zero in line charts
  • Implemented feature #11981: Provide option for exact axis label renderer to put last value outside of the normal label boundings
  • Fixed issue #13253: Division by zero when trying to render stacked bars.
  • Fixed issue #13361: Provided workaround for ext/GD bug:
  • Fixed issue #13595: majorStep overridden if min and max are both set


1.0.1 - Monday 10 November 2008

  • Documented issue #13877: PDO by default lowercases column names.


1.6 - Monday 05 January 2009

  • Fixed issue #14220: File attachments mess up emails without body text.

1.6rc1 - Monday 15 December 2008

  • Fixed issue #14025: Problem with ezcMailComposer::addAttachment when use the fifth param to change the file name.

1.6beta1 - Monday 01 December 2008

  • Fixed issue #14009: ezcMailTools::validateEmailAddressMx() uses wrong HELO domain name.
  • The function ezcMailTools::validateEmailAddressMx() throws an exception if there is no support for getmxrr() and checkdnsrr().
  • Altered the ezcMailTools::validateEmailAddress() regexp to protect against locale issues.

1.6alpha1 - Monday 10 November 2008

  • Implemented issue #13383: Add a method to extract/change/replace entities in HTML mail with the CID elements replaced.
  • Implemented feature feature #13539: Add new mail parser option fileClass.
  • Fixed issue #13878: Endless loop in ezcMailParser.

1.5.2 - Monday 06 October 2008

  • Fixed an issue that caused the part boundaries from e-mail messages not being correctly set in the parsed mail structure. Instead an auto-generated one was used.
  • Fixed issue #13553: Documented how to access the raw value of headers.
  • Implemented feature feature #13538: Added possibility to set a custom message in mail multiparts for e-mail clients missing MIME support.

1.5.1 - Monday 04 August 2008

  • Fixed issue #13329: ezcMail fetchParts() no longer generates an error when parsing a mail with an empty body.
  • Fixed a special case in sortFromOffset() where $range was undefined.
  • Fixed an issue with duplicate properties arrays in mail part descendants.


1.0 - Monday 05 January 2009

  • Refactored HTTP response writer to allow for user-defined status objects to be used.

1.0rc1 - Monday 15 December 2008

  • Fixed issue #13920: Cookies are part of response, but not of request.
  • Fixed issue #14041: MVC tutorial improvement by clarifying the createFatalRedirectRequest dispatcher configuration method.

1.0beta1 - Monday 01 December 2008

  • Fixed issue #13918: Http Request Parser is missing DELETE.
  • Fixed issue #14003: split() is deprecated in PHP 5.3.
  • Implemented issue #13919: Added the runPreRoutingFilters() method to the ezcMvcDispatcherConfiguration interface and ezcMvcDispatcherConfigurable dispatcher, to be called after request generation, but before routing. This change breaks BC as it adds a new method to the ezcMvcDispatcherConfiguration interface.
  • Implemented issue #13921: The ezcMvcConfigurableDispatcher now throws exceptions if the configuration does not return objects of the expected class.
  • Implemented issue #13926: Split ezcMvcDispatcherConfigurable::run() into smaller parts.

1.0alpha2 - Monday 10 November 2008

  • Split out controller creation in the ezcMvcConfigurableDispatcher into its own method (createController()) for easier customization of controller loading.
  • Fixed a bug where path elements where not urldecoded().
  • Added support for installation prefixes to the router, to the request parsers to aid installation outside of the top-directory of a virtual host.
  • Added the ezcMvcCatchAllRoute to allow fall back routes to a controller and an action with a pre-formatted name.
  • Refactored ezcMvcController to allow easier overloading by inherited classes.
  • Fixed a bug in action method name generation in the controller.
  • Fixed a bug where the Content-Language header could not be set to anything else but en-GB with the HTTP response writer.
  • Fixed issue #13772: Changed the controller to require an action method.
  • Fixed issue #13773: Added a check for the return type for controller actions, and throw an exception when it's neither an ezcMvcResult or ezcMvcInternalRedirectObject.
  • Fixed issue #13788: array_key_exists() function receives parameters in wrong order.
  • Fixed issue #13845: Added tests for the __set_state() structs methods.
  • Fixed issue #13853: Added the missing exception ezcMvcActionNotFoundException.
  • Fixed issue #13901: Exceptions thrown in controllers are not catched for createFatalRedirectRequest with the configurable dispatcher.

1.0alpha1 - Monday 06 October 2008

  • Initial release of this package.


1.0beta1 - Monday 01 December 2008

  • Fixed issue #14003: split() is deprecated in PHP 5.3.

1.0alpha1 - Monday 06 October 2008

  • Initial release of this package.


1.5beta1 - Monday 01 December 2008

  • Fixed issue #13463: Enhanced documentation for clarity about state array indices.

1.5alpha1 - Monday 10 November 2008

  • Implemented issue #13218: Add lazy initialization to PersistentObject component.
  • Implemented issue #13558: Small optimizations in the load handler.


1.0.2 - Monday 01 December 2008

  • Fixed issue #13908: Search component's SolR handler should respect HTTP status codes. (Initial patch by Alexander M. Turek).

1.0.1 - Monday 10 November 2008

  • Fixed issue #13891: ezcSearchNetworkException is used, but does not exist.
  • Fixed issue with sending incorrect HTTP requests to Solr.
  • Fixed issue with regards to respecting HTTP Connection: close headers when talking to Solr.


1.3.1 - Monday 04 August 2008

  • Implemented issue #13187: Updated tutorial to clarify cache keys.


1.1.2 - Monday 15 December 2008

  • Fixed issue #14124: A fatal error was thrown when a visitor was used on an empty tree.

1.1.1 - Monday 04 August 2008

  • Fixed an issue that the autoId property of ezcTree could not be read, although it was a read/write property.
  • Fixed issue #13156 (allow the ezcTreeXmlDataStore (or its Internal implementation) to have deferred file saving).
  • Fixed issue #13331: Renaming a node when using ezcTreeXml corrupts the XML.


1.1.1 - Monday 15 December 2008

  • Fixed issue #14003: split() is deprecated in PHP 5.3.


1.2.2 - Monday 04 August 2008

  • Fixed issue #13235: ezcUrlTools::getCurrentUrl() no longer duplicates port number.


1.4alpha1 - Monday 10 November 2008

  • Implemented issue #12057: Change the $propertyValues' visibility from private to protected in ezcInputForm.


1.1rc1 - Monday 15 December 2008

  • Fixed issue 13251#: Tested Webdav component with BitKinex 3.0.2. Works fine, except for locking, which seems to be broken in the client (same problems with Apache mod_dav).

1.1alpha1 - Monday 17 November 2008

  • Implemented feature #12286: The WebDAV component now supports locking (WebDAV compliance class 2) through the lock plugin.
  • Implemented feature #13344: Authentication / authorization support for Webdav.
  • Fixed issue #13462: The backend methods DELETE and PROPPATCH do now return the RFC conform multi status responses on error and these get serialized correctly by the transport.

1.0.1 - Monday 04 August 2008

  • Fixed issue #13313: Webdav does now correctly identify recent Nautilus version.
  • Fixed issue #13389: ezcWebdavBasicPathFactory does now perform sanity checks on the given base URI during construction.
  • Fixed documentation.
  • Renamed ezcWebdavResourceTypeProperty::TYPE_RESSOURCE to ezcWebdavResourceTypeProperty::TYPE_RESOURCE as required by review. ezcWebdavResourceTypeProperty::TYPE_RESSOURCE is still kept for BC reasons.
  • Renamed ezcWebdavTransport->retreiveBody() to ezcWebdavTransport->retrieveBody().


1.3 - Monday 05 January 2009

  • Changed the Loop node to allow more than two incoming and outgoing nodes.

1.3beta1 - Monday 01 December 2008

  • Added RelaxNG grammar for the XML-based workflow definition language.

1.3alpha1 - Monday 10 November 2008

  • Implemented ezcWorkflow::reset() to reset a workflow.
  • Implemented issue #13182: ezcWorkflowNodeInput::execute() should check variable conditions.
  • Implemented issue #13204: Implement ezcWorkflowConditionInArray.
  • Fixed issue #13467: Workflow Visualization missed end node.
  • Fixed issue #13478: Canceling execution does not remove execution completely.
  • Fixed a warning in ezcWorkflowExecution::unsetVariable().


1.3beta1 - Monday 01 December 2008

  • Fixed issue #13988: isSuspend() returns null value after load execution from database.

1.3alpha1 - Monday 10 November 2008

  • Implemented issue #13203: Support for prefixing the table names.

Author: Derick Rethans

Published: January 5th, 2009