\documentclass{article}
\usepackage{ulem}
\pagestyle{headings}
\begin{document}
\part{ The Registry (Horde\_Registry)}
\textbf{Colortext: NIThis information is valid for Horde 4 and later only. See Doc/Dev/RegistryH3\footnote{http://example.com/index.php?page=Doc/Dev/RegistryH3} for Horde 3.Colortext: NI}

Horde's Registry is the sole method to initialize the Horde environment and is the glue that holds different applications together.

\begin{itemize}
\item{The Registry is responsible for handling authentication to the Horde framework.}
\item{The Registry system keeps track of Horde's application stack, and which app is currently running.}
\item{When you switch applications, the registry will take care of correctly switching the gettext textdomain, loading the application configuration, and loading the user's application preferences.}
\item{It also lets you determine configuration information about installed applications.}
\item{The Registry lets you generate links to other apps.}
\begin{itemize}
\item{Links will be to the application that provides the functionality.}
\item{Any arguments that the target script needs (headers for an email, for instance) will be filled out of the second argument to link().}
\end{itemize}
\item{The Registry also lets you invoke methods in other applications}
\begin{itemize}
\item{The registry.php config file defines where to find the code necessary to execute the method, and what application implements it.}
\item{Any application can be integrated this way; all you need to do is map it to the registry interface.}
\end{itemize}
\end{itemize}
Things the Registry does when being instantiated:

\renewcommand{\labelenumi}{\arabic{enumi}}
\begin{enumerate}
\item{Importing the global configuration}
\item{Setting up configuration of various framework libraries (via Horde\_Injector)}
\item{Setting up the session handler and starting the session (including necessary authentication)}
\item{Setting the language and gettext domain}
\item{Restoring the registry information from cache or loading and parsing the registry configuration from \texttt{config/registry.php}}
\item{Instantiating the global Permission\footnote{http://example.com/index.php?page=Doc/Dev/PermsPackage} object (TODO: should be removed in favor of Horde\_Injector)}
\end{enumerate}
Click here\footnote{http://example.com/index.php?page=Doc/Dev/RegistryUsage} for Registry usage examples.

Click here\footnote{https://github.com/horde/base/blob/master/config/registry.php} for documentation on how to configure the \texttt{horde/config/registry.php} file.

\end{document}
