Development  »  Libraries

This is a list of PHP libraries developed by the horde team. Additional libraries not yet released are available in our source repository in the development section of the site.

All of the libraries are fully independent of the Horde applications. Utilities such as our date handling library, the iCalendar module, or the natural language parsing of dates can be used without installing Kronolith. The same holds true for the IMAP and MIME libraries powering our webmailer Imp and for all released modules on our PEAR server. This allows you to embed functionality based on such libraries seamlessly into your own PHP application context.

One of the strong advantages of the Horde PHP libraries is the fact that the code has been driven by the needs of the Horde applications. As these are being used by millions of users daily this means speedy code and maximal compatibility with system not always adhering to standards (e.g. Outlook).

Obtaining Libraries

You can download the libraries from our PEAR server directly but the default way of install the Horde PHP libraries is the installation on the command line via PEAR.

For this to work you will need to register the Horde PEAR channel by running

pear channel-discover pear.horde.org

After that you will be able to install the libraries with

pear install horde/HORDE_LIBRARY_NAME

The Horde_Date library could be installed like this for example:

pear install horde/horde_date

 Horde Libraries

ActiveSync

Libraries for implementing an ActiveSync server.

Alarm

An interface to deal with reminders, alarms and notifications through a standardized API. The following notification methods are currently available: standard Horde notifications, popups, emails.

Argv

Classes for parsing command line arguments with various actions, providing help, grouping options, and more.

Auth

The Horde_Auth package provides a common interface into the various backends for the Horde authentication system.

Autoloader

Autoload implementation and class loading manager for Horde.

Autoloader_Cache

Extension of the Horde_Autoloader that implements caching of class-file-maps. The caching method is determined automatically from the list of supported cache backends: APC, XCache, eAccelerator, local file system.

Browser

The Horde_Browser class provides an API for getting information about the current user's browser and its capabilities.

Cache

A simple, functional caching API, with the option to store the cached data on the filesystem, in one of the PHP opcode cache systems (APC, eAcclerator, XCache, or Zend Performance Suite's content cache), memcached, or an SQL table.

Cli

Horde_Cli:: API for basic command-line functionality/checks

Cli_Modular

Command line interfaces can often be composed of different modules responsible for distinct actions. This package allows each such module to influence the overall command line interface. First and foremost each module can add its own option group with a specific title, description and a set of module specific options (see Horde_Argv_OptionGroup for further details). In addition Cli_Modular allows a module to modify the global usage string and add basic options valid for all modules.

Compress

An API for various compression techniques.

Constraint

A programmatic way of building constraints that evaluate to true or false.

Controller

The controller part of an MVC system for Horde.

Core

These classes provide the core functionality of the Horde Application Framework.

Crypt

The Horde_Crypt package class provides an API for various cryptographic systems.

Crypt_Blowfish

Provides blowfish encryption/decryption for PHP string data.

Data

A data import and export API, with backends for: * CSV * TSV * iCalendar * vCard * vNote * vTodo

DataTree

This is a transitional package to allow upgrading from Horde 4 to Horde 5. It can safely be uninstalled

Date

Package for creating and manipulating dates.

Date_Parser

Library for natural-language date parsing, with support for multiple languages and locales

Db

Horde database/SQL abstraction layer

Editor

The Horde_Editor package provides an API to generate the code necessary for embedding javascript RTE editors in a web page.

ElasticSearch

Lightweight API for ElasticSearch (http://www.elasticsearch.org/).

Exception

This class provides the default exception handlers for the Horde Application Framework.

Feed

Support for working with feed formats such as RSS and Atom.

Form

The Horde_Form package provides form rendering, validation, and other functionality for the Horde Application Framework.

Group

Package for managing and accessing the Horde groups system.

History

The Horde_History API provides a way to track changes on arbitrary pieces of data in Horde applications.

Http

An API for making HTTP requests.

Icalendar

An API for dealing with iCalendar data.

Image

An Image utility API, with backends for: * GD * GIF * PNG * SVG * SWF * ImageMagick convert command line tool * Imagick Extension

Imap_Client

Interface to access IMAP4rev1 (RFC 3501) mail servers. Also supports connections to POP3 (STD 53/RFC 1939).

Imsp

Provides an API into an IMSP server for address books and options.

Injector

A depedency injection container for Horde.

Itip

This package to generates MIME encapsuled responses to iCalendar invitations.

Kolab_Cli

A set of utilities to deal with the various aspects of a Kolab server as backend. The primary focus is dealing with the data stored in IMAP.

Kolab_Format

This package allows to convert Kolab data objects from XML to data arrays.

Kolab_Server

This package reads/writes entries in the Kolab user database stored in LDAP.

Kolab_Session

This package stores Kolab specific user data in the session.

Kolab_Storage

Storing user data in an IMAP account belonging to the user is one of the Kolab server core concepts. This package provides all the necessary means to deal with this type of data storage effectively.

Ldap

A set of classes for connecting to LDAP servers and working with directory objects.

ListHeaders

The Horde_ListHeaders library parses Mailing List Headers as defined in RFC 2369 & RFC 2919.

Lock

The Horde resource locking system.

Log

Horde Logging package with configurable handlers, filters, and formatting.

LoginTasks

An API for dealing with tasks run upon login to Horde applications.

Mail

Provides interfaces for sending e-mail messages and parsing e-mail addresses.

Memcache

Provides an API to access a memcache installation.

Mime

Provides methods for dealing with Multipurpose Internet Mail Extensions (MIME) features (RFC 2045/2046/2047).

Mime_Viewer

Provides rendering drivers for MIME data.

Nls

Common methods for handling language data, timezones, and hostname->country lookups.

Notification

A library implementing a subject-observer pattern for raising and showing messages of different types and to different listeners.

Oauth

An OAuth consumer (http://oauth.net) and OAuth infrastructure, and in the future will provide an OAuth server.

Pdf

PDF generation using only PHP, without requiring any external libraries.

Pear

The component provides various tools to deal with PEAR. Among other features it allows updating the package.xml file or accessing a remote PEAR server.

Perms

The Perms package provides an interface to the Horde permissions system.

Prefs

The Horde_Prefs package provides a common abstracted interface into the various preferences storage mediums. It also includes all of the functions for retrieving, storing, and checking preference values.

Queue

Queue layer with various storage backends and runners

Rdo

Lightweight ORM layer

Release

Tools necessary to create the Horde distribution packages.

Role

Allows PEAR to install Horde components into a base Horde installation.

Routes

Classes for mapping URLs into the controllers and actions of an MVC system. It is a port of a Python library, Routes, by Ben Bangert (http://routes.groovie.org).

Rpc

A common abstracted interface to various remote methods of accessing Horde functionality.

Scheduler

TODO

Scribe

Packaged version of the PHP Scribe client.

Secret

An API for encrypting and decrypting small pieces of data with the use of a shared key.

Serialize

An interface to various methods of encapsulating data.

Service_Facebook

Client libraries for the Facebook REST API.

Service_Twitter

Client libraries for the Twitter REST API.

Service_UrlShortener

Interfaces to various URL shortening services.

Service_Weather

Set of classes that provide an abstraction to various online weather service providers. Includes drivers for WeatherUnderground, WorldWeatherOnline, and Google Weather.

SessionHandler

Horde_SessionHandler defines an API for implementing custom session handlers for PHP.

Share

Horde_Share provides an interface to all shared resources a user owns or has access to.

SpellChecker

Unified spellchecking API.

Sql

Horde_Sql:: contains some utility functions for dealing with SQL.

Stream

An object-oriented interface to assist in creating and storing PHP stream resources, and to provide utility methods to access and manipulate the stream contents.

Stream_Filter

A collection of various stream filters.

Stream_Wrapper

A collection of stream wrappers.

Support

Support classes not tied to Horde but is used by it. These classes can be used outside of Horde as well.

SyncMl

Classes for implementing a SyncML server.

Template

Horde Template system. Adapted from bTemplate, by Brian Lozier .

Test

Horde-specific PHPUnit base classes.

Text_Diff

A text-based diff engine and renderers for multiple diff output formats.

Text_Filter

Common methods for fitering and converting text.

Text_Filter_Csstidy

The Horde_Text_Filter_Csstidy:: class provides the PHP-based library needed to perform optimization/compression on CSS code. It is provided in a separate package as the code is under the GPLv2 license instead of the LGPLv2 license used for the Text_Filter class.

Text_Flowed

The Horde_Text_Flowed:: class provides common methods for manipulating text using the encoding described in RFC 3676 ('flowed' text).

Thrift

Packaged version of the PHP Thrift client

Timezone

Library for parsing timezone databases and generating VTIMEZONE iCalendar components.

Token

The Horde_Token:: class provides a common abstracted interface into the various token generation mediums. It also includes all of the functions for retrieving, storing, and checking tokens.

Translation

Translation wrappers.

Tree

A tree view of hierarchical information. It allows for expanding/collapsing of branches and maintains their state.

Url

This class represents a single URL and provides methods for manipulating URLs.

Util

These classes provide functionality useful for all kind of applications.

Vfs

A Virtual File System API, with backends for: * SQL * FTP * Local filesystems * Hybrid SQL and filesystem * Samba * SSH2/SFTP * IMAP (Kolab) Reading, writing and listing of files are all supported.

View

A simple View pattern implementation.

Xml_Element

An element object that can be used to provide SimpleXML-like functionality over a DOM object. The main advantage over using SimpleXML is the ability to add multiple levels of new elements in a single call, without introducing "ghost" objects.

Xml_Wbxml

Encoding and decoding of WBXML (Wireless Binary XML) documents. WBXML is used in SyncML for transferring smaller amounts of data with wireless devices.

Yaml

Classes for parsing YAML files into PHP arrays, and dumping PHP arrays into YAML encoding.