eZ Components Applies for Apache Incubation

DZone 's Guide to

eZ Components Applies for Apache Incubation

· Web Dev Zone ·
Free Resource
Today, another open source project has submitted a proposal to join the Apache incubator in hopes of one day becoming a Top Level Project.  The project is a high-quality library of loosely-coupled PHP components that comes from eZ Systems, a Norwegian company.  Their eZ Components PHP library is being fully open sourced and the developers who previously worked on the project will continue their support as Apache committers.  The project is being renamed the Zeta Components project.  The proposal was written by Tobias Schlitt, a core developer of eZ Components.

Zeta Components supports applications based on PHP 5.1 and above.  The library contains standard PHP framework components (e.g. database abstraction, templating, email, image manipulation) and PHP modules - they include a document format conversion component, a WebDAV server module, a feed component, and a workflow based programming framework along with other typical web app modules.  The project focuses on backwards compatibility, extensible architecture, and a test-driven approach.

Because Zeta components are loosely-coupled, there are no hard inter-dependencies between them.  If one component can be integrated with another component, a 'Tiein' component is used to couple the components.  This system adds some lightweight agility to the library because users can trim the fat from the stack and use only what is needed.

Zeta Components should inherit an established open source community from its five years in development at eZ Systems.  The developers of the project all left the company this year so they wanted put the library in a place where they could continue developing it.  eZ Components (now Zeta Components) was licensed under the BSD.  It does have ties with one Apache project - Solr, which optionally works with Zeta Components.

Here are some of the distinguishing components of the Zeta Components library:

A component to read, write and store database schemas independent from the relational database system in use. Beside that, schema differences can be stored and written to a database to update the schema.

Using this component, a developer can convert between many different document formats, like (X)HTML, DocBook XML, ODF, Wiki markup and more. The component is designed to support any kind of document format in the future.

This module is used to render many different kinds of charts from numerical data into various image file formats. It can be used with any of the image generation libraries available in PHP.

While most email libraries just support sending plain text or HTML emails, this component supports various email RFCs including multi-part MIME. Furthermore it can receive email via IMAP and POP and process these mails to be presented in the very same way as they are represented for sending.

This component is inspired by Javas Hibernate component, providing an object-relational mapping mechanism. It supports typical CRUD operations and has an optional layer for identity mapping.

An abstraction layer for different search engines, one of them being Solr, is realized in this component. Its goal is to enable an application developer to transparently exchange the search engine used in an application.

This module delivers a fully featured, customizable WebDAV (class 1 and 2) server implementation to the user. Its is developed with focus on interaction with different clients and to iron out their misbehaviours. The server can easily be integrated into custom applications.

There is currently no other known library for graph (or workflow) driven development in PHP. This framework provides the basis for such a programming approach as well as control and storage mechanisms.

Core Developers:

Derick Rethans
Derick works on the core and multiple extensions for the PHP language itself. In addition, he is the creator of the widely used Xdebug PHP debugging extension.

Sebastian Bergmann
As the creator and maintainer of PHPUnit, Sebastian is head of development of this de-facto standard for unit testing in the PHP world.

Kore Nordmann
Kore Nordmann maintains several open source projects, for example Arbit, a PHP based issue tracking and project management system. Beside that, he regularly contributes to various other projects in the PHP world.

Tobias Schlitt
As a long time member of the PEAR project, the standard PHP code collection, Tobias has brought experiences in software architecture and PHP development. Beside his work on Zeta, he contributes to various other open source projects and is a maintainer of Planet PHP.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}