Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Filter.php
Go to the documentation of this file.
1 <?php
25 #require_once 'Zend/Filter/Interface.php';
26 
34 {
35 
36  const CHAIN_APPEND = 'append';
37  const CHAIN_PREPEND = 'prepend';
38 
44  protected $_filters = array();
45 
51  protected static $_defaultNamespaces = array();
52 
60  public function addFilter(Zend_Filter_Interface $filter, $placement = self::CHAIN_APPEND)
61  {
62  if ($placement == self::CHAIN_PREPEND) {
63  array_unshift($this->_filters, $filter);
64  } else {
65  $this->_filters[] = $filter;
66  }
67  return $this;
68  }
69 
76  public function appendFilter(Zend_Filter_Interface $filter)
77  {
78  return $this->addFilter($filter, self::CHAIN_APPEND);
79  }
80 
87  public function prependFilter(Zend_Filter_Interface $filter)
88  {
89  return $this->addFilter($filter, self::CHAIN_PREPEND);
90  }
91 
97  public function getFilters()
98  {
99  return $this->_filters;
100  }
101 
110  public function filter($value)
111  {
112  $valueFiltered = $value;
113  foreach ($this->_filters as $filter) {
114  $valueFiltered = $filter->filter($valueFiltered);
115  }
116  return $valueFiltered;
117  }
118 
124  public static function getDefaultNamespaces()
125  {
127  }
128 
135  public static function setDefaultNamespaces($namespace)
136  {
137  if (!is_array($namespace)) {
138  $namespace = array((string) $namespace);
139  }
140 
141  self::$_defaultNamespaces = $namespace;
142  }
143 
150  public static function addDefaultNamespaces($namespace)
151  {
152  if (!is_array($namespace)) {
153  $namespace = array((string) $namespace);
154  }
155 
156  self::$_defaultNamespaces = array_unique(array_merge(self::$_defaultNamespaces, $namespace));
157  }
158 
164  public static function hasDefaultNamespaces()
165  {
166  return (!empty(self::$_defaultNamespaces));
167  }
168 
180  public static function get($value, $classBaseName, array $args = array(), $namespaces = array())
181  {
182  trigger_error(
183  'Zend_Filter::get() is deprecated as of 1.9.0; please update your code to utilize Zend_Filter::filterStatic()',
184  E_USER_NOTICE
185  );
186 
187  return self::filterStatic($value, $classBaseName, $args, $namespaces);
188  }
189 
207  public static function filterStatic($value, $classBaseName, array $args = array(), $namespaces = array())
208  {
209  #require_once 'Zend/Loader.php';
210  $namespaces = array_merge((array) $namespaces, self::$_defaultNamespaces, array('Zend_Filter'));
211  foreach ($namespaces as $namespace) {
212  $className = $namespace . '_' . ucfirst($classBaseName);
213  if (!class_exists($className, false)) {
214  try {
215  $file = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
216  if (Zend_Loader::isReadable($file)) {
218  } else {
219  continue;
220  }
221  } catch (Zend_Exception $ze) {
222  continue;
223  }
224  }
225 
226  $class = new ReflectionClass($className);
227  if ($class->implementsInterface('Zend_Filter_Interface')) {
228  if ($class->hasMethod('__construct')) {
229  $object = $class->newInstanceArgs($args);
230  } else {
231  $object = $class->newInstance();
232  }
233  return $object->filter($value);
234  }
235  }
236  #require_once 'Zend/Filter/Exception.php';
237  throw new Zend_Filter_Exception("Filter class not found from basename '$classBaseName'");
238  }
239 }
getFilters()
Definition: Filter.php:97
appendFilter(Zend_Filter_Interface $filter)
Definition: Filter.php:76
const CHAIN_PREPEND
Definition: Filter.php:37
static loadClass($class, $dirs=null)
Definition: Loader.php:52
filter($value)
Definition: Filter.php:110
addFilter(Zend_Filter_Interface $filter, $placement=self::CHAIN_APPEND)
Definition: Filter.php:60
prependFilter(Zend_Filter_Interface $filter)
Definition: Filter.php:87
static isReadable($filename)
Definition: Loader.php:162
static hasDefaultNamespaces()
Definition: Filter.php:164
$_option $_optionId $class
Definition: date.phtml:13
$value
Definition: gender.phtml:16
static $_defaultNamespaces
Definition: Filter.php:51
static filterStatic($value, $classBaseName, array $args=array(), $namespaces=array())
Definition: Filter.php:207
const CHAIN_APPEND
Definition: Filter.php:36
static addDefaultNamespaces($namespace)
Definition: Filter.php:150
static getDefaultNamespaces()
Definition: Filter.php:124
static setDefaultNamespaces($namespace)
Definition: Filter.php:135
if($currentSelectedMethod==$_code) $className
Definition: form.phtml:31