\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{The Registry (Horde\_Registry)}
\textbf{This information is valid for Horde 4 and later only. See <a href="https://wiki.horde.org/Doc/Dev/RegistryH3">Doc/Dev/RegistryH3</a> for Horde 3.}

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:

\begin{itemize}
\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 <a href="https://wiki.horde.org/Doc/Dev/PermsPackage">Permission</a> object (TODO: should be removed in favor of Horde\_Injector)<br />
<a href="https://wiki.horde.org/Doc/Dev/RegistryUsage">Click here</a> for Registry usage examples.


\end{itemize}
<a href="https://github.com/horde/base/blob/master/config/registry.php">Click here</a> for documentation on how to configure the \texttt{horde/config/registry.php} file.

\end{document}
