_items[$key] = new $this->_containerClass($value); return $this->_items[$key]; } /** * Retrieve a placeholder container * * @param string $key * @return Zend_View_Helper_Placeholder_Container_Abstract */ public function getContainer($key) { $key = (string) $key; if (isset($this->_items[$key])) { return $this->_items[$key]; } $container = $this->createContainer($key); return $container; } /** * Does a particular container exist? * * @param string $key * @return bool */ public function containerExists($key) { $key = (string) $key; $return = array_key_exists($key, $this->_items); return $return; } /** * Set the container for an item in the registry * * @param string $key * @param Zend_View_Placeholder_Container_Abstract $container * @return Zend_View_Placeholder_Registry */ public function setContainer($key, Zend_View_Helper_Placeholder_Container_Abstract $container) { $key = (string) $key; $this->_items[$key] = $container; return $this; } /** * Delete a container * * @param string $key * @return bool */ public function deleteContainer($key) { $key = (string) $key; if (isset($this->_items[$key])) { unset($this->_items[$key]); return true; } return false; } /** * Set the container class to use * * @param string $name * @return Zend_View_Helper_Placeholder_Registry */ public function setContainerClass($name) { if (!class_exists($name)) { require_once 'Zend/Loader.php'; Zend_Loader::loadClass($name); } $reflection = new ReflectionClass($name); if (!$reflection->isSubclassOf(new ReflectionClass('Zend_View_Helper_Placeholder_Container_Abstract'))) { require_once 'Zend/View/Helper/Placeholder/Registry/Exception.php'; $e = new Zend_View_Helper_Placeholder_Registry_Exception('Invalid Container class specified'); $e->setView($this->view); throw $e; } $this->_containerClass = $name; return $this; } /** * Retrieve the container class * * @return string */ public function getContainerClass() { return $this->_containerClass; } }