Horde: first signs of a COM for PHP

    Harry Fuecks

    From JanComments API available;

    Using this API every Horde application can now add threaded discussions to any objects.

    Finally! A forum engine you can integrate with your own applications. I assume “every Horde application” means code using the Horde Framework or at least adapting to it.

    Think this is a first in PHP. There are projects (beginning with PHP Nuke) which pack multiple apps but in a “all or nothing” kind of form, tightly integrated across multiple layers. What seems to differentiate this approach is you have effectively stand-alone applications which you can tap into as you need from your own code (as you can with Windows Apps).

    A little background (from patchy second-hand knowledge). The Horde is one of the (if not the most) mature frameworks / collection of applications written in PHP, going back more that five years I believe. If you’ve been around PHP for a while, you may recognise some of the contributors from other places like PECL and PEAR. At the same time Horde is one of the dark horses of PHP; despite the age of the project, suspect there’s not much awareness they’re doing in PHP circles aside from those that know.

    Probably the most well known Horde “deliverable” is IMP, a web based email client. You’ve probably also seen Chora in action at cvs.php.net. Looking at the project list it contains pretty much every type of common web application out there.

    Which is why I get excited about Jan’s annoucement – what he’s saying looks alot like Windows COM to me – a mechanism to expose APIs from their existing applications to new applications, making useful integration a possibility.

    I’m not familiar with the Horde code base (for no reason other than time, have never stopped to give it a serious look) aside from Horde offshoots (if that’s fair to say?) like PEAR::Log. There does seem to be a decent respect for seperation to the point where exposing APIs in this way is possible.

    Also surprised to see ASP.NET-like markup in templates although nervous when looking at the template implemenation which seems to re-parse templates on each request.

    Would be interested to hear other peoples experiences with the Horde framework.

    Also wonder about the concept of a Registry, from the perspective of “does this mean a centralized configuration repository?”. There’s a good point here to that effect;

    Registries are property databases used by both Windows itself and applications. Each registry lives in one big file. Registries contain a mix of text and binary data that requires specialized editing tools. The one-big-file approach leads, among other things, to the notorious