Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Callback.php
Go to the documentation of this file.
1 <?php
25 #require_once 'Zend/Filter/Interface.php';
26 
34 {
40  protected $_callback = null;
41 
47  protected $_options = null;
48 
55  public function __construct($options)
56  {
57  if ($options instanceof Zend_Config) {
58  $options = $options->toArray();
59  } else if (!is_array($options) || !array_key_exists('callback', $options)) {
60  $options = func_get_args();
61  $temp['callback'] = array_shift($options);
62  if (!empty($options)) {
63  $temp['options'] = array_shift($options);
64  }
65 
66  $options = $temp;
67  }
68 
69  if (!array_key_exists('callback', $options)) {
70  #require_once 'Zend/Filter/Exception.php';
71  throw new Zend_Filter_Exception('Missing callback to use');
72  }
73 
74  $this->setCallback($options['callback']);
75  if (array_key_exists('options', $options)) {
76  $this->setOptions($options['options']);
77  }
78  }
79 
85  public function getCallback()
86  {
87  return $this->_callback;
88  }
89 
96  public function setCallback($callback, $options = null)
97  {
98  if (!is_callable($callback)) {
99  #require_once 'Zend/Filter/Exception.php';
100  throw new Zend_Filter_Exception('Callback can not be accessed');
101  }
102 
103  $this->_callback = $callback;
104  $this->setOptions($options);
105  return $this;
106  }
107 
113  public function getOptions()
114  {
115  return $this->_options;
116  }
117 
124  public function setOptions($options)
125  {
126  $this->_options = $options;
127  return $this;
128  }
129 
136  public function filter($value)
137  {
138  $options = array();
139 
140  if ($this->_options !== null) {
141  if (!is_array($this->_options)) {
142  $options = array($this->_options);
143  } else {
145  }
146  }
147 
148  array_unshift($options, $value);
149 
150  return call_user_func_array($this->_callback, $options);
151  }
152 }
setCallback($callback, $options=null)
Definition: Callback.php:96
__construct($options)
Definition: Callback.php:55
$value
Definition: gender.phtml:16
setOptions($options)
Definition: Callback.php:124