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.
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 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.
Released Libraries
Support us!
Buy a present for our developers
Sponsors
"Thanks!" to all our other sponsors