PHP: Finally getting an ecosystem?

DZone 's Guide to

PHP: Finally getting an ecosystem?

· Web Dev Zone ·
Free Resource
One of my main concerns with PHP has been the lack of ecosystem. Almost all libraries and tools are written with a specific framework in mind, creating separate ecosystems around Drupal, Zend Framework, Midgard and others instead of an ecosystem benefiting all users of the language.

There have been efforts at this, like PEAR before, but they have mostly stagnated. This is why I was really happy to see a post last year on Planet PHP about the former eZ Components library entering Apache incubation as Zeta Components. While components in the Midgard terminology mean full applications that can be plugged into your website (like modules in other ecosystems like Drupal), in case of Zeta Components the term means general purpose libraries:

Apache Zeta Components are a high quality, general purpose library of loosly coupled components for development of applications based on PHP 5. Beside typical modules for web application development, like a Template engine, Database tools and an MVC component, Apache Zeta Components contain command line tools, a chart rendering library, a WebDAV server, a universal document conversion component and many more tools to ease developers live.

This should be great for anybody working with PHP. The current list of Zeta Components appears to provide a quite comprehensive list of useful libraries, through Apache the licensing is very permissive, and as I've written before, Apache has a great set of guidelines its projects must follow.

Zeta Components is certainly a project that I will be watching. And hopefully it can be a place where we can start contributing some of the generic PHP libraries and tools from the Midgard project. A first target that comes to mind is the generic geolocation library that we have.

Source: http://bergie.iki.fi/blog/php-finally_getting_an_ecosystem/

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}