_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; } /** * Returns a value filtered through a specified filter class, without requiring separate * instantiation of the filter object. * * The first argument of this method is a data input value, that you would have filtered. * The second argument is a string, which corresponds to the basename of the filter class, * relative to the Zend_Filter namespace. This method automatically loads the class, * creates an instance, and applies the filter() method to the data input. You can also pass * an array of constructor arguments, if they are needed for the filter class. * * @param mixed $value * @param string $classBaseName * @param array $args OPTIONAL * @param array|string $namespaces OPTIONAL * @return mixed * @throws Zend_Filter_Exception */ public static function get($value, $classBaseName, array $args = array(), $namespaces = array()) { require_once 'Zend/Loader.php'; $namespaces = array_merge(array('Zend_Filter'), (array) $namespaces); foreach ($namespaces as $namespace) { $className = $namespace . '_' . ucfirst($classBaseName); try { @Zend_Loader::loadClass($className); } catch (Zend_Exception $ze) { continue; } $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); } } require_once 'Zend/Filter/Exception.php'; throw new Zend_Filter_Exception("Filter class not found from basename '$classBaseName'"); } }