Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ProgressBar.php
Go to the documentation of this file.
1 <?php
29 {
35  protected $_min;
36 
42  protected $_max;
43 
49  protected $_current;
50 
56  protected $_startTime;
57 
63  protected $_statusText = null;
64 
70  protected $_adapter;
71 
77  protected $_persistenceNamespace = null;
78 
88  public function __construct(Zend_ProgressBar_Adapter $adapter, $min = 0, $max = 100, $persistenceNamespace = null)
89  {
90  // Check min/max values and set them
91  if ($min > $max) {
92  #require_once 'Zend/ProgressBar/Exception.php';
93  throw new Zend_ProgressBar_Exception('$max must be greater than $min');
94  }
95 
96  $this->_min = (float) $min;
97  $this->_max = (float) $max;
98  $this->_current = (float) $min;
99 
100  // See if we have to open a session namespace
101  if ($persistenceNamespace !== null) {
102  #require_once 'Zend/Session/Namespace.php';
103 
104  $this->_persistenceNamespace = new Zend_Session_Namespace($persistenceNamespace);
105  }
106 
107  // Set adapter
108  $this->_adapter = $adapter;
109 
110  // Track the start time
111  $this->_startTime = time();
112 
113  // See If a persistenceNamespace exists and handle accordingly
114  if ($this->_persistenceNamespace !== null) {
115  if (isset($this->_persistenceNamespace->isSet)) {
116  $this->_startTime = $this->_persistenceNamespace->startTime;
117  $this->_current = $this->_persistenceNamespace->current;
118  $this->_statusText = $this->_persistenceNamespace->statusText;
119  } else {
120  $this->_persistenceNamespace->isSet = true;
121  $this->_persistenceNamespace->startTime = $this->_startTime;
122  $this->_persistenceNamespace->current = $this->_current;
123  $this->_persistenceNamespace->statusText = $this->_statusText;
124  }
125  } else {
126  $this->update();
127  }
128  }
129 
135  public function getAdapter()
136  {
137  return $this->_adapter;
138  }
139 
147  public function update($value = null, $text = null)
148  {
149  // Update value if given
150  if ($value !== null) {
151  $this->_current = min($this->_max, max($this->_min, $value));
152  }
153 
154  // Update text if given
155  if ($text !== null) {
156  $this->_statusText = $text;
157  }
158 
159  // See if we have to update a namespace
160  if ($this->_persistenceNamespace !== null) {
161  $this->_persistenceNamespace->current = $this->_current;
162  $this->_persistenceNamespace->statusText = $this->_statusText;
163  }
164 
165  // Calculate percent
166  if ($this->_min === $this->_max) {
167  $percent = false;
168  } else {
169  $percent = (float) ($this->_current - $this->_min) / ($this->_max - $this->_min);
170  }
171 
172  // Calculate ETA
173  $timeTaken = time() - $this->_startTime;
174 
175  if ($percent === .0 || $percent === false) {
176  $timeRemaining = null;
177  } else {
178  $timeRemaining = round(((1 / $percent) * $timeTaken) - $timeTaken);
179  }
180 
181  // Poll the adapter
182  $this->_adapter->notify($this->_current, $this->_max, $percent, $timeTaken, $timeRemaining, $this->_statusText);
183  }
184 
191  public function next($diff = 1, $text = null)
192  {
193  $this->update(max($this->_min, min($this->_max, $this->_current + $diff)), $text);
194  }
195 
201  public function finish()
202  {
203  if ($this->_persistenceNamespace !== null) {
204  unset($this->_persistenceNamespace->isSet);
205  }
206 
207  $this->_adapter->finish();
208  }
209 }
if($this->helper('Magento\Tax\Helper\Data') ->displayFullSummary()) foreach( $block->getTotal() ->getFullInfo() as $info)(isset($info['hidden']) && $info['hidden']) $percent
Definition: tax.phtml:33
update($value=null, $text=null)
endifif( $block->getLastPageNum()>1)( 'Page') ?></strong >< ul class $text
Definition: pager.phtml:43
$adapter
Definition: webapi_user.php:16
$value
Definition: gender.phtml:16
next($diff=1, $text=null)
__construct(Zend_ProgressBar_Adapter $adapter, $min=0, $max=100, $persistenceNamespace=null)
Definition: ProgressBar.php:88