Path

ez components / resources / news archive / ez components 2008.1


eZ Components 2008.1

Author: Derick Rethans
Date: 2008-06-16 08:57

The development team is happy to announce the release of the sixth major version of eZ Components: version 2008.1. Starting from this version, eZ Components requires PHP 5.2.1.

New Components

In this release, there are three new components.

Document

The Document component enables you to convert documents between different formats. At the moment, it will convert ReST to XHTML and DocBook. DocBook will be the intermediate format for most of the conversions. However, the component allows shortcuts so that a conversion from ReST to XHTML does not first have to go through DocBook. ReST is the format that the eZ Components team uses to write all the tutorials and website documents, including this news item. In the next release, more formats will be supported, such as eZ Publish's XML format.

Feed

The Feed component parses and generates RSS1, RSS2 and ATOM feeds. RSS and ATOM feeds are often used to provide an easy way to publish frequently updated content, such as news items, podcasts, and so on. The Feed component supports many additional modules that live on top of those feeds, including iTunes (for podcasts), CreativeCommons (for licensing) and DublinCore (for content classification).

Search

The new Search component provides a unified interface to different search engine back-ends, quite similar to what the Database and PersistentObject components provide for database access. At the moment, only a Solr back-end is supported. Solr provides a powerful search engine based on the Lucene Java search library. Support for more engines will follow in subsequent releases.

Other Improvements

Main improvements in this release include an integration between the Translation and Template components to provide cached translated strings; complex datatypes, multiple relations to the same class, and binary data support in the PersistentObject component; integration between the Workflow and SignalSlot components; Cairo driver support for the Graph component; and hierarchical caching in the Cache component.

For this release, the development team addressed 60 bugs, implemented 51 new features and completed 66 tasks - 177 issues in total.

Upgrading

You can download the eZ Components bundle on the download page. Updated documentation is available on the documentation page. Please note that eZ Components now requires PHP 5.2.1 or higher.

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.

Changelog

The full changelog follows:

Archive

1.3rc1 - Tuesday 10 June 2008

  • Fixed issue #13137: Subsequent files where seen as hardlinks on Windows because inodes do not exist.

1.3alpha1 - Monday 05 May 2008

  • Implemented issue #12818: Add the possibility to open archives in read-only mode.

Authentication

1.2beta1 - Tuesday 27 May 2008

  • Fixed issue #12992: LDAP registerFetchData() now correctly uses normal case attributes (eg. 'displayName').

1.2alpha1 - Monday 05 May 2008

  • Implemented feature feature #12935: Added the returnUrl OpenID option to customize the return URL on OpenID authentification.
  • Fixed the issue where a failed connection to an LDAP server would not be detected.

Base

1.5beta1 - Tuesday 27 May 2008

  • Added the ezcBasePersistable interface that can be used to ensure that the object implementing this interface can be used with PersistentObject and Search.

1.5alpha2 - Tuesday 13 May 2008

  • Fixed a bug in ezcBaseFile::findRecursive that prevented you from passing an empty array to collect statistics.
  • Changed ezcBase::getInstallationPath() so that it always returns a trailing directory separator.

1.5alpha1 - Monday 07 April 2008

  • Implemented issue #8529: Added a by-reference argument to ezcBaseFile::findRecursive that returns statistsics (count and total size) of all files that are returned by this function.
  • Implemented issue #11506: Added the static method ezcBase::getInstallationPath().
  • Implemented issue #12694: replace reflection test for class type with spl function.

Cache

1.4rc1 - Tuesday 10 June 2008

  • Fixed issue #13053: Fixed calculation of remaining life time in all storage classes and with that resolved the strange behavior in the Memcach storage.
  • Fixed issue #13112: Corrected the tutorial text.
  • Fixed issue #13119: Replaced references to /tmp with createTempDir() calls.

1.4beta1 - Tuesday 27 May 2008

  • Fixed issue #12993: Hierarchical caching does not prune items in the correct situation. Note that the internal structure of the stack meta data changed drastically with this fix. You need to reset() the whole storage after this update.

1.4alpha1 - Monday 05 May 2008

  • Implemented feature #12587: Hierachic caching for the Cache component. The class ezcCacheStack and related classes provide that feature.
  • Fixed issue #12666: ezcCacheStorageMemcache potentially creates multiple connections to the same memcached server.

Configuration

1.3alpha1 - Monday 05 May 2008

  • Implemented issue #12694: replace reflection test for class type with spl function.
  • Implemented issue #12911: Added the hasGroup() and getSettingsInGroup() methods to ezcConfigurationManager to allow for fetching of all settings in a group. (Patch by James Pic)

1.2.1 - Monday 03 March 2008

  • Fixed issue #12477: missing backslash in file format part of configuration component tutorial.

ConsoleTools

1.4rc1 - Tuesday 10 June 2008

  • Fixed issue #13118: Class::method() replaced by Class->method() for object method calls and attribute accesses where appropriate.

1.4alpha1 - Monday 05 May 2008

  • Implemented issue #10765: ezcConsoleQuestionDialog::YesNoQuestion does not accept "Yes" or "yes" / "no", "No" as valid answer. A new validator (ezcConsoleQuestionMappingValidator) was introduced for this, which extends ezcConsoleQuestionCollectionValidator and is now used for the yes-no-question.
  • Implemented issue #10791: ezcConsoleTable should implement __toString.
  • Implemented issue #10838: ezcConsoleOutputFormats should implement Iterator and Countable.
  • Fixed issue #12561: getSynopsis() bugs when at least 2 options don't have short-names.
  • Fixed issue #12623: console menu dialog handles unexisting options wrong.
  • Fixed issue #12624: Wrong text in documentation of eZConsoleDialogViewer.
  • Fixed issue #12625: console tools lacks documentation on targets.
  • Fixed issue #12626: Type "ta" in ezconsoleoutput documentation.
  • Fixed issue #12628: Missing space in ezcConsoleInput::getHelp API doc.
  • Fixed issue #12629: Method name not replaced with link in ezcConsoleMenuDialog::display() API doc.
  • Fixed issue #12630: Add link to ezcDialogNoValidResultException in ezcConsoleDialog::getResult() API doc.
  • Fxied issue #12636: ezcConsoleOutput->outputLine() prints EOL always to STDOUT instead of the defined target.

Database

1.4 - Monday 16 June 2008

  • Fixed issue #13188: Sub select queries are no more quoted in SQLite IN statements.

1.4beta1 - Tuesday 27 May 2008

  • Fixed issue #12150: Connect to MSSQL database fails due to wrong driver specification.

1.4alpha1 - Monday 05 May 2008

  • Implemented issue #10753: ezcDbQuery should implement __toString().
  • Implemented issue #12540: subselect support for other query types besides SELECT.

DatabaseSchema

1.4rc1 - Tuesday 10 June 2008

  • Fixed issue #12937: PersistentObject definition writer now creates correct PHP type definition for non-number primary keys.
  • Fixed issue #13072: SQLite schema reader does not work with uppercase type names.

1.4beta1 - Tuesday 27 May 2008

  • Changed the class name ezcDbSchemaNonUniqueIndexNameValidator to ezcDbSchemaUniqueIndexNameValidator.
  • Changed ezcDbSchemaDbReader back to an interface, and created a common SQL reader class that implements the common methods.
  • Moved ezcDbSchema*Reader/getReaderType() to the new common SQL reader class ezcDbSchemaCommonSqlReader.
  • Created a common method ezcDbSchemaCommonSqlReader::processSchema() that iterates over all the tables and gathers information about them and their indexes.

1.4alpha1 - Monday 05 May 2008

  • Implemented issue #10069: DatabaseSchema only for particular tables.
  • Implemented issue #10364: Added support for table name prefixes.
  • Implemented issue #11562: Schema validator for duplicate index names.
  • Implemented issue #12694: Replace reflection test for class type with SPL function.
  • Fixed bug #12538: No warning is thrown when an unsupported type is found while reading from a database, or writing to a database.

Debug

1.2alpha1 - Monday 03 March 2008

  • Implemented enhancement #10701: Getting a readable backtrace. The ezcDebug->log() method now allows you to selectively add a stack trace to debug log messages. The new ezcDebugOptions class allows to globally switch on stack traces for all log messages.
  • Fixed issue #12427: Changed output rendering of the debug formatter to not include a stylesheet by default, but instead the formatter now includes easy overridable CSS classes.

Document

1.0 - Monday 16 June 2008

  • Fixed issue #13164: Handle dense enumerated lists.

1.0rc1 - Tuesday 10 June 2008

  • Fixed issue #13167: Correctly handle indetation change after definition lists.
  • Fixed issue #13166: Handle embeddded URLs in inline references.

1.0alpha1 - Tuesday 13 May 2008

  • Initial release of this package.

EventLog

1.3alpha3 - Tuesday 13 May 2008

  • Fixed issue #13008: ezcLogFileWriter::openFile() throws wrong Exception.

1.3alpha2 - Monday 05 May 2008

  • Implemented feature #12907: Using both trigger_error() and all available error types. (Patch by James Pic)
  • Implemented feature: Trim spaces around source.

1.3alpha1 - Monday 07 April 2008

  • Implemented feature #12503: Ability to disable log rotation by setting the max log file option to the constructor to false.

Execution

1.1.1 - Monday 16 June 2008

  • Implemented issue #12694: Replace reflection test for class type with SPL function.

Feed

1.1rc1 - Tuesday 10 June 2008

  • ATOM generator considers feed entry links without the rel attribute set as rel="alternate" by default.
  • Fixed issue #13109: Fixed RSS1 (RDF) parsing when the "resource" attribute is specified as "rdf:resource".
  • Fixed iTunes module elements handling if using a different prefix than 'itunes'.
  • Fixed issue #13110: Added redirection support for feed URLs returning the 301, 302 and 307 HTTP headers.

1.1beta1 - Tuesday 27 May 2008

  • Removed ezcFeedCanNotParseException class, using ezcFeedParseErrorException instead.
  • Changed protected methods and variables from processor classes to private.
  • Changed get() and set() functions from ezcFeedProcessor into __get() and __set(), and added __isset().
  • Added the registerFeed() and registerModule() functions to ezcFeed.
  • Removed plural properties from ezcFeed (authors, categories, contributors, items, links).
  • Added feed element types (person, category, link, image, etc) to specify different feed and module elements.
  • Removed the method set() from ezcFeed and ezcFeedItem.
  • Removed the class ezcFeedTools.
  • Renamed ezcFeedItem to ezcFeedEntryElement.
  • Added a feed type to the ezcFeed method generate() to specify the output feed type, and made the ezcFeed constructor feed type argument optional.
  • The properties are stored in ezcFeed and are assigned in the same way without being dependent on the feed type.

1.1alpha1 - Monday 07 April 2008

  • Reorganized internal structure of classes.
  • Added ezcFeedSchema to define different feed types.
  • Added ezcFeedElement instead of ezcFeedItem.
  • Added support for XML attributes for feeds.
  • Added regression tests based on the ones from Template.
  • In RSS2 the title, link and description nodes of item nodes are not all required, but at least one of title or description nodes is required.
  • Added support for RSS2 enclosure and tutorial on how to use it for creating and parsing podcasts.
  • Completed support for creating and parsing RSS2 feeds.
  • Completed support for creating and parsing RSS1 feeds.
  • Completed support for creating and parsing ATOM feeds.
  • Added the getContentType() method in ezcFeed to return its Content-Type.
  • Added support for ATOM xml:lang attribute.
  • The RSS1 about attribute is accessed as id through ezcFeed.
  • Added support for the Content module.
  • Added support for the DublinCore module.
  • Fixed issue #12557: added parse support for version 0.91 and 0.92 RSS feeds, which are considered as RSS2 feeds.
  • Added support for the iTunes module.
  • Added support for the CreativeCommons module.
  • Added the required xmlns attribute when creating RSS1 feeds.
  • Added parse support for version 0.93 and 0.94 RSS feeds.
  • The RSS2 guid item attribute is accessed as id through ezcFeed.
  • Added a feed creator example application.
  • Changed the method ezcFeedTools::prepareDate() to return a DateTime object - PHP 5.2 is required now.
  • Added generator information for ATOM when generating the feed.

1.0beta1 - Monday 18 December 2006

  • Added the ezcFeed::parseContent() method that parses a feed contained in a variable.

1.0alpha1 - Tuesday 24 October 2006

  • Initial release of this package.

Graph

1.3rc1 - Tuesday 10 June 2008

  • Fixed issue #12581: Wrong axis captions in bar charts with manual min/max values

1.3alpha1 - Monday 05 May 2008

  • Implemented feature #10829: Get resource from driver.
  • Implemented feature #10957: Embed glyphs for exact SVG font width estimation. (Patch by Freddie Witherden)
  • Implemented feature #11979: Line width configurable per data set.
  • Implemented feature #12382: Enhance line chart to allow invisible lines.
  • Fixed issue #12483: Average dataset does not work with a single value.

1.2.1 - Monday 21 January 2008

  • Implemented feature #9407: Cairo driver.
  • Fixed issue #11777: Optionally independent axis font configuration.
  • Fixed issue #12254: Bad property-check for strokeLineJoin in SVG driver.
  • Fixed issue #12295: Broken automatic scaling with manually set min value, not divisible by major step.
  • Fixed issue #12326: Per datapoint colors not used with bar charts.
  • Fixed issue #12405: Highlightfontsize reduced when padding > 0 in highlight font options.

ImageAnalysis

1.1.3 - Monday 05 May 2008

  • Fixed bug #12638: ezcImageAnalyzerImagemagickHandler::checkImagemagick method missing SunOS in switch.

ImageConversion

1.3.5 - Monday 16 June 2008

  • Fixed issue #13134: Fixed array_splice() call in ezcImageTransformation->addFilter().

1.3.4 - Monday 05 May 2008

  • Fixed issue #12592: New thumbnail filter. Documentation about the scale() filter has been added to the thumbnail filters.
  • Fixed issue #12667: ezcImageConverter doesn't pass saveOptions to ezcImageTransformation.
  • Fixed issue #12671: Unhandled exception in ezcImageTransformation. Checks to avoid double throwing of exceptions have been introduced. Additional parameter checks are performed.

Mail

1.5rc1 - Tuesday 10 June 2008

  • Fixed issue #13038: Added support for non-ascii and mime-emcoded (non-RFC) filenames for mail attachments.

1.5beta1 - Tuesday 27 May 2008

  • Fixed issue #13010: The transport connection handles correcly cases where CRLF is split in 2 different blocks read from server.

1.5alpha1 - Monday 05 May 2008

  • Fixed issue #12844: getTmpDir() not properly set in Windows.
  • Fixed issue #12903: The mail digest size is not calculated twice anymore.
  • Fixed issue #12930: The SMTP authentication methods are used in correct strength order now.
  • Implemented feature feature #11937: Switch to turn off automatic inclusion of files with the Mail Composer.
  • Implemented feature feature #12203: Replaced hard-coded paths for temporary directory with the PHP 5.2.1 function sys_get_temp_dir().
  • Implemented feature feature #12694: Replace reflection test for class type with SPL function.

1.4.3 - Monday 03 March 2008

  • Fixed issue #12595: Folding is no longer applied twice for To, Cc and Bcc headers.

1.4.2 - Thursday 17 January 2008

  • Fixed issue #12372: MTA transport does not encode subject.

PersistentObject

1.4alpha1 - Monday 05 May 2008

  • Refactored ezcPersistentSession.
  • Implemented enhancement #10151: Improved Database and PersistentObject datatype support (especially binary data). The object definitions allow to specify the datatype of the database column assigned to a property.
  • Implemented enhancement #10373: Several relations to the same table for PersistentObject.
  • Implemented enhancement #10727: Improved error messages for PersistentObject with ManualGenerator.
  • Fixed issue #10205: Binding variables with an undeclared var doesn't throw an exception. If getState() on a persistent object does not return an array an exception is thrown now.
  • Fixed issue #12471: PersistentObject misses support for boolean datatype.

Search

1.0rc1 - Tuesday 10 June 2008

  • Changed the way how ezcSearchQueryBuilder works. You will now have to run parseSearchQuery() instead of just passing the query object, query string and fields to the constructor.
  • Changed the nested array result for documents into a structure where each ezcSearchResult contains an array of ezcSearchResultDocument objects, which on its turn contain the score, highlighting and document itself.
  • Changed the default limit fo returned search results for the Solr handler from 10 to unlimited (well, 999999).

1.0alpha2 - Tuesday 13 May 2008

  • Fixes to the Solr handler:

    • Implemented missing "order by" support.
    • Fixed between support.
    • Fixed boost support in case a field already had a boost value assigned by default.

1.0alpha1 - Monday 05 May 2008

  • Initial release of this package.

SignalSlot

1.1.1 - Monday 05 May 2008

  • Fixed bug #12676: Wrong link under "callback" in SignalSlot tutorial.

SystemInformation

1.0.6 - Monday 05 May 2008

  • Fixed retrieving CPU count, type and speed on Windows Vista.

Template

1.3beta1 - Tuesday 27 May 2008

  • Changed the date_format() template function to only accept DateTime objects.

1.3alpha2 - Monday 05 May 2008

  • Implemented issue #12723: Make Template date functions support the DateTime object.
  • Fixed issue #11152: ezcTemplateLocationInterface should not have "Interface" in the classname.
  • Fixed issue #12322: Template regression between 1.1 and 1.2 - support for variable object properties re-added.

1.3alpha1 - Monday 03 March 2008

  • Made the TemplateObject available in CustomBlocks. Thanks to Felix Weis for the patch.
  • Fixed issue #11228: Cannot supply an absolute Win32-Path to $t->process().
  • Better error message when an external (use) variable is not given.
  • Fixed issue #12289: String function str_last_index documented, but not defined.
  • Fixed issue #12323: Using {cache_template} inside a block will now throw an exception.
  • Fixed issue #11056:
    • {dynamic} is only allowed after {cache_template} or in {cache_block}.
    • corrected documentation in regard to TTL vs. ttl.
    • fixed the cache file names in Windows (replace '' with '-').
  • Fixed issue #12368: ezcTemplateConfiguration::addExtension() did not check for invalid arguments correctly.
  • Implemented issue #10940: Possibility to set default permissions to the compiled templates and generated cache files, by using the 0777 mode for creating the directories in which the compiled templates are stored. This mode is still modified by the umask.
  • Implemented issue #9973: Added a translation compiler to convert a string in the original language, to the translated one without substituting parameters. This is to have translation support for the Template component.
  • Added the capture() template block to collect a part of a template into a variable.
  • Added support for variable length argument lists for custom functions through the variableArgumentList element of the ezcTemplateCustomFunctionDefinition.
  • Added support for additional parameters for custom blocks through the excessParameters element of the ezcTemplateCustomBlockDefinition.

TemplateTranslationTiein

1.0alpha2 - Monday 05 May 2008

  • Fixed issue #12810: Issues with translations in templates (part c1): Quotes incorrectly handled in string extractor.

1.0alpha1 - Monday 03 March 2008

  • Initial release of this package.

Translation

1.2beta1 - Tuesday 27 May 2008

  • Renamed the private ezcTranslation->callback_compile() and ezcTranslation->parameter_callback_compile() to ezcTranslation->callbackCompile() and ezcTranslation->parameterCallbackCompile().

1.2alpha2 - Monday 05 May 2008

  • Fixed issue #12810: Issues with translations in templates.

1.2alpha1 - Monday 03 March 2008

  • Implemented issue #9973: Added a translation compiler to convert a string in the original language, to the translated one without substituting parameters. This is to have translation support for the Template component.
  • Implemented issue #10912: Add translation entries.
  • Added support for the new location element in Linguist version 1.1 files.
  • Added support for the keepObsolete option for the TsBackend. With this enabled, the obsolete translations are not dropped while reading contexts. This is both useful for testing as well as for manipulating TS files.

Tree

1.1rc1 - Tuesday 10 June 2008

  • Fixed issue #13155: ezcTreeXmlInternalDataStore::fetchDataForNode fetches data for wrong nodes.

1.1beta1 - Tuesday 27 May 2008

  • Implemented issue #12694: replace reflection test for class type with spl function.

1.1alpha1 - Monday 03 March 2008

  • Implemented issue #12139: Allow tree node keys to be auto-generated.
  • Fixed issue #12395: Tree docs lacking XHTML visualizaton.

TreeDatabaseTiein

1.1alpha1 - Monday 03 March 2008

  • Implemented issue #12139: Allow tree node keys to be auto-generated.

Url

1.2.1 - Monday 05 May 2008

  • Fixed issue #12825: No longer throw a notice when an unordered parameter name is empty.

UserInput

1.3alpha1 - Tuesday 13 May 2008

  • Implemented issue #12345: Added ezcInputForm::isValid().

Workflow

1.2beta1 - Tuesday 27 May 2008

  • Implemented issue #12694: Replace reflection test for class type with SPL function.

1.2alpha1 - Monday 07 April 2008

  • Implemented issue #10941: Support for the Cancel Case workflow pattern. The execution of a workflow can now be cancelled by either reaching a ezcWorkflowNodeCancel node or by calling the cancel() node on an ezcWorkflowExecution object. In either case, the execution is immediately halted, already activated nodes will not be executed.
  • Implemented issue #12404: Separate file i/o from XML processing in ezcWorkflowDefinitionStorageXml.
  • Implemented a plugin system that allows plugin developers to hook into various extension points in the workflow execution engine.
  • The visualization visitor can now show the current state of a workflow in execution. This includes the highlighting of activated nodes as well as the contents of the workflow variables.
  • The new execution visualizer plugin (ezcWorkflowExecutionVisualizerPlugin) uses the visualization visitor to create visualizations of each step of a workflow execution.

WorkflowDatabaseTiein

1.2beta1 - Tuesday 27 May 2008

  • Consistently use ezcDbHandler::quoteIdentifier() to quote SQL identifiers.

1.2alpha1 - Monday 07 April 2008

  • Implemented issue #10941: Support for the Cancel Case workflow pattern.
  • Fixed issue #12403: Multiple construction of ezcWorkflowDatabaseDefinitionStorage.

Author: Derick Rethans

Published: June 16th, 2008