_filters[] = $filter; return $this; } /** * Returns $value filtered through each filter in the chain * * Filters are run in the order in which they were added to the chain (FIFO) * * @param mixed $value * @return mixed */ public function filter($value) { $valueFiltered = $value; foreach ($this->_filters as $filter) { $valueFiltered = $filter->filter($valueFiltered); } return $valueFiltered; } /** * @param mixed $value * @param string $classBaseName * @param array $args OPTIONAL * @param mixed $namespaces OPTIONAL * @return boolean * @throws Zend_Filter_Exception */ public static function get($value, $classBaseName, array $args = array(), $namespaces = array()) { $namespaces = array_merge(array('Zend_Filter'), (array) $namespaces); foreach ($namespaces as $namespace) { $className = $namespace . '_' . ucfirst($classBaseName); try { require_once 'Zend/Loader.php'; Zend_Loader::loadClass($className); $class = new ReflectionClass($className); if ($class->implementsInterface('Zend_Filter_Interface')) { if ($class->hasMethod('__construct')) { $object = $class->newInstanceArgs($args); } else { $object = $class->newInstance(); } return $object->filter($value); } } catch (Zend_Exception $ze) { // fallthrough and continue } } require_once 'Zend/Filter/Exception.php'; throw new Zend_Filter_Exception("Filter class not found from basename '$classBaseName'"); } }