--- /dev/null
+<?php
+
+/**
+ * Registry.php
+ *
+ * PHP version 5.2
+ *
+ * @category CommonApps
+ * @package Registry
+ * @author Steve Sutton <steve@gaslightmedia.com>
+ * @copyright 2012 Gaslight Media
+ * @license Gaslight Media
+ * @version SVN: $Id$
+ * @link <>
+ */
+
+/**
+ * Registry
+ *
+ * Registry.php class to hold objects for access anywhere
+ *
+ * PHP version 5.2
+ *
+ * @category CommonApps
+ * @package Registry
+ * @author Steve Sutton <steve@gaslightmedia.com>
+ * @copyright 2012 Gaslight Media
+ * @license Gaslight Media
+ * @version Release: 1.0
+ * @link <>
+ */
+
+class Registry
+{
+ static private $_store = array();
+
+ /**
+ * Add a object to the Registry::_store
+ *
+ * @param type $object Object
+ * @param type $name name of object key
+ *
+ * @return type
+ */
+ static public function add($object, $name = null)
+ {
+ // Use the class name if no name given, simulates singleton
+ $name = (!is_null($name)) ?$name: get_class($object);
+
+ $return = null;
+ if (isset(self::$_store[$name])) {
+ // Store the old object for returning
+ $return = self::$_store[$name];
+ }
+
+ self::$_store[$name] = $object;
+ return $return;
+ }
+
+ /**
+ * get the object from the Registry::_store
+ *
+ * @param type $name Name of the object key
+ *
+ * @return type
+ * @throws Exception
+ */
+ static public function get($name)
+ {
+ if (!self::contains($name)) {
+ throw new Exception("Object does not exist in registry");
+ }
+
+ return self::$_store[$name];
+ }
+
+ /**
+ * Check to see if the Registry::_store contains the object
+ *
+ * @param type $name name of object key
+ *
+ * @return boolean
+ */
+ static public function contains($name)
+ {
+ if (!isset(self::$_store[$name])) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Remove the object from the Registry::_store
+ *
+ * @param type $name name of object key
+ *
+ * @return void
+ */
+ static public function remove($name)
+ {
+ if (self::contains($name)) {
+ unset(self::$_store[$name]);
+ }
+ }
+}