Last Modified 2010-04-18 by Guest

Horde Developer's FAQ

General Information

What is Horde?

This question is partially covered in the User's FAQ but it bears some clarification here. In the largest scope Horde is the name of the project that shepherds a number of web applications, most famously the core groupware applications such as IMP and Kronolith. From a technical standpoint the released Horde packages is made up of two sub-packages: "Horde" and "Framework." The "Horde" subpackage provides the portal view that is seen upon login, the administrative screens that configure the installed applications and it generally provides the user interface glue between applications and the backend libraries and data sources. The "Framework" subpackage is comprised almost entirely of library code. These libraries are shared among all Horde applications and provide many functions that are commonly necessary. Examples of the functionality found in framework libraries include caching, user preferences, locking, Web-based multi-protocol remote procedure calls (RPC), form generation and validation, authentication, etc. For convenience the two sub-packages, Horde and Framework, are bundled together for release as "Horde." However in CVS they are kept as separate modules.

What can Horde do for me?

If you are writing a new web application Horde provides a graphical framework for integrating with other applications. Horde provides space in a portal view on login where applications can display summary information such as the number of open tickets, unread email, latest stock prices and more. In addition to the portal screens Horde is responsible for generating the main navigation menu that unifies all installed applications into a browse-able tree. Finally Horde provides the user interface to do most of the system-wide configuration your application will need to function after installation.

What can Framework do for me?

The Framework provides hundreds of libraries for all manner of functionality necessary for creating web applications. In some cases there are further dependencies on data storage backends such as an SQL database or on PEAR libraries, but the majority of the Framework libraries only depend on each other if at all. In some cases other projects have made use of standalone Framework library code within their projects, notably the web browser detection and management class ("Horde_Browser").

An excellent resource for the capabilities of the Framework packages is the Framework PHPdoc pages found at http://dev.horde.org/api/framework. In case you are looking for a class that does not appear to be listed in the main class list (for example Util or Registry) take a look at the Horde_Framework and Horde_Util pages.