getMessage(), "\n"; exit -1; } spl_autoload_register(function ($class) { $class = str_replace(array('_', '\\'), '/', $class); if (file_exists('phar://' . __FILE__ . '/Zend_Stdlib-2.0.0dev20110916/php/' . $class . '.php')) { include 'phar://' . __FILE__ . '/Zend_Stdlib-2.0.0dev20110916/php/' . $class . '.php'; } }); $phar = new Phar(__FILE__); $sig = $phar->getSignature(); define('Zend_Stdlib_SIG', $sig['hash']); define('Zend_Stdlib_SIGTYPE', $sig['hash_type']); __HALT_COMPILER(); ?>  ws:110:"Zend_Stdlib-2.0.0dev20110916/.xmlregistry/packages/zfcampus.org!packages/Zend_Stdlib/2.0.0dev20110916-info.xml";nZend_Stdlib-2.0.0dev20110916/.xmlregistry/packages/zfcampus.org!packages/Zend_Stdlib/2.0.0dev20110916-info.xmlU isNU  package.xmllisNlf;Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/ArrayStack.phpisN0c.@Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/CallbackHandler.phpDisND=Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Dispatchable.phpisNz[HJZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Exception/DomainException.phpisNqSZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Exception/InvalidArgumentException.phpisN#SZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Exception/InvalidCallbackException.phpisN}e :Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Exception.php7isN73B8Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Message.php isN Gh[CZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/MessageDescription.phpisN>Z[ȶ;Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Parameters.phpMisNML߶FZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/ParametersDescription.phpisNd>Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/PriorityQueue.php isN Y_8Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Request.phpisN׶CZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/RequestDescription.php[isN[9Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/Response.phpisNSDZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/ResponseDescription.php]isN]5¶AZend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/SplPriorityQueue.php[ isN[ 2|9Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/SplQueue.phpisN09Zend_Stdlib-2.0.0dev20110916/php/Zend/Stdlib/SplStack.phpisN^'Zend_Stdlib-2.0.0dev20110916/php/PEAR2/isN3Zend_Stdlib-2.0.0dev20110916/php/PEAR2/MultiErrors/isN@Zend_Stdlib-2.0.0dev20110916/php/PEAR2/MultiErrors/Exception.phpNisNN7  Zend_Stdlib zfcampus.org/packages Package Zend_Stdlib summary. Package detailed description here (found in README) Your Name handle handle@php.net yes 2011-09-16 2.0.0dev20110916 2.0.0dev20110916 devel devel New BSD License Package Zend_Stdlib release notes for version 0.1.0. Package Zend_Stdlib API release notes for version 0.1.0. 5.2.0 2.0.0a1 Zend_Stdlib zfcampus.org/packages Package Zend_Stdlib summary. Package detailed description here (found in README) Your Name handle handle@php.net yes 2011-09-16 2.0.0dev20110916 2.0.0dev20110916 devel devel New BSD License Package Zend_Stdlib release notes for version 0.1.0. Package Zend_Stdlib API release notes for version 0.1.0. 5.2.0 1.4.8 getArrayCopy(); return new ArrayIterator(array_reverse($array)); } } event = $event; $this->callback = $callback; $this->options = $options; } /** * Get event to which handler is subscribed * * @return string */ public function getEvent() { return $this->event; } /** * Retrieve registered callback * * @return Callback * @throws Exception\InvalidCallbackException */ public function getCallback() { if ($this->isValidCallback) { return $this->callback; } $callback = $this->callback; if (is_string($callback)) { return $this->validateStringCallback($callback); } if (is_array($callback)) { return $this->validateArrayCallback($callback); } if (is_callable($callback)) { $this->isValidCallback = true; return $callback; } throw new Exception\InvalidCallbackException('Invalid callback provided; not callable'); } /** * Invoke handler * * @param array $args Arguments to pass to callback * @return mixed */ public function call(array $args = array()) { $callback = $this->getCallback(); return call_user_func_array($callback, $args); } /** * Get all callback options * * @return array */ public function getOptions() { return $this->options; } /** * Retrieve a single option * * @param string $name * @return mixed */ public function getOption($name) { if (array_key_exists($name, $this->options)) { return $this->options[$name]; } return null; } /** * Validate a string callback * * Check first if the string provided is callable. If not see if it is a * valid class name; if so, determine if the object is invokable. * * @param string $callback * @return Callback * @throws Exception\InvalidCallbackException */ protected function validateStringCallback($callback) { if (is_callable($callback)) { $this->isValidCallback = true; return $callback; } if (!class_exists($callback)) { throw new Exception\InvalidCallbackException('Provided callback is not a function or a class'); } // check __invoke before instantiating if (!method_exists($callback, '__invoke')) { throw new Exception\InvalidCallbackException('Class provided as a callback does not implement __invoke'); } $object = new $callback(); $this->callback = $object; $this->isValidCallback = true; return $object; } /** * Validate an array callback * * @param array $callback * @return callback * @throws Exception\InvalidCallbackException */ protected function validateArrayCallback(array $callback) { $context = $callback[0]; $method = $callback[1]; if (is_string($context)) { // Dealing with a class/method callback, and class provided is a string classname if (!class_exists($context)) { throw new Exception\InvalidCallbackException('Class provided in callback does not exist'); } // We need to determine if we need to instantiate the class first $r = new \ReflectionClass($context); if (!$r->hasMethod($method)) { // Explicit method does not exist if (!$r->hasMethod('__callStatic') && !$r->hasMethod('__call')) { throw new Exception\InvalidCallbackException('Class provided in callback does not define the method requested'); } if ($r->hasMethod('__callStatic')) { // We have a __callStatic defined, so the original callback is valid $this->isValidCallback = true; return $callback; } // We have __call defined, so we need to instantiate the class // first, and redefine the callback $object = new $context(); $this->callback = array($object, $method); $this->isValidCallback = true; return $this->callback; } // Explicit method exists $rMethod = $r->getMethod($method); if ($rMethod->isStatic()) { // Method is static, so original callback is fine $this->isValidCallback = true; return $callback; } // Method is an instance method; instantiate object and redefine callback $object = new $context(); $this->callback = array($object, $method); $this->isValidCallback = true; return $this->callback; } elseif (is_callable($callback)) { // The $this->isValidCallback = true; return $callback; } throw new Exception\InvalidCallbackException('Method provided in callback does not exist in object'); } } metadata[$spec] = $value; return $this; } if (!is_array($spec) && !$spec instanceof Traversable) { throw new Exception\InvalidArgumentException(sprintf( 'Expected a string, array, or Traversable argument in first position; received "%s"', (is_object($spec) ? get_class($spec) : gettype($spec)) )); } foreach ($spec as $key => $value) { $this->metadata[$key] = $value; } return $this; } /** * Retrieve all metadata or a single metadatum as specified by key * * @param null|string|int $key * @param null|mixed $default * @return mixed */ public function getMetadata($key = null, $default = null) { if (null === $key) { return $this->metadata; } if (!is_scalar($key)) { throw new Exception\InvalidArgumentException('Non-scalar argument provided for key'); } if (array_key_exists($key, $this->metadata)) { return $this->metadata[$key]; } return $default; } /** * Set message content * * @param mixed $value * @return Message */ public function setContent($value) { $this->content = $value; return $this; } /** * Get message content * * @return mixed */ public function getContent() { return $this->content; } /** * @return string */ public function toString() { $request = ''; foreach ($this->getMetadata() as $key => $value) { $request .= sprintf( "%s: %s\r\n", (string) $key, (string) $value ); } $request .= "\r\n" . $this->getContent(); return $request; } } exchangeArray($values); } /** * Populate from query string * * @param string $string * @return void */ public function fromString($string) { $array = array(); parse_str($string, $array); $this->fromArray($array); } /** * Serialize to native PHP array * * @return array */ public function toArray() { return $this->getArrayCopy(); } /** * Serialize to query string * * @return string */ public function toString() { return http_build_query($this); } /** * Retrieve by key * * Returns null if the key does not exist. * * @param string $name * @return mixed */ public function offsetGet($name) { if (isset($this[$name])) { return parent::offsetGet($name); } return null; } /** * @param string $name * @param mixed $default optional default value * @return mixed */ public function get($name, $default = null) { if (isset($this[$name])) { return parent::offsetGet($name); } return $default; } /** * @param string $name * @param mixed $value * @return $this */ public function set($name, $value) { $this[$name] = $value; return $this; } } items[] = array( 'data' => $data, 'priority' => $priority, ); $this->getQueue()->insert($data, $priority); return $this; } /** * Remove an item from the queue * * This is different than {@link extract()}; its purpose is to dequeue an * item. * * This operation is potentially expensive, as it requires * re-initialization and re-population of the inner queue. * * Note: this removes the first item matching the provided item found. If * the same item has been added multiple times, it will not remove other * instances. * * @param mixed $datum * @return boolean False if the item was not found, true otherwise. */ public function remove($datum) { $found = false; foreach ($this->items as $key => $item) { if ($item['data'] === $datum) { $found = true; break; } } if ($found) { unset($this->items[$key]); $this->queue = null; $queue = $this->getQueue(); foreach ($this->items as $item) { $queue->insert($item['data'], $item['priority']); } return true; } return false; } /** * Is the queue empty? * * @return bool */ public function isEmpty() { return (0 === $this->count()); } /** * How many items are in the queue? * * @return int */ public function count() { return count($this->items); } /** * Peek at the top node in the queue, based on priority. * * @return mixed */ public function top() { return $this->getIterator()->top(); } /** * Extract a node from the inner queue and sift up * * @return mixed */ public function extract() { return $this->getQueue()->extract(); } /** * Retrieve the inner iterator * * SplPriorityQueue acts as a heap, which typically implies that as items * are iterated, they are also removed. This does not work for situations * where the queue may be iterated multiple times. As such, this class * aggregates the values, and also injects an SplPriorityQueue. This method * retrieves the inner queue object, and clones it for purposes of * iteration. * * @return SplPriorityQueue */ public function getIterator() { $queue = $this->getQueue(); return clone $queue; } /** * Serialize the data structure * * @return string */ public function serialize() { return serialize($this->items); } /** * Unserialize a string into a PriorityQueue object * * Serialization format is compatible with {@link Zend\Stdlib\SplPriorityQueue} * * @param string $data * @return void */ public function unserialize($data) { foreach (unserialize($data) as $item) { $this->insert($item['data'], $item['priority']); } } /** * Serialize to an array * * By default, returns only the item data, and in the order registered (not * sorted). You may provide one of the EXTR_* flags as an argument, allowing * the ability to return priorities or both data and priority. * * @param int $flag * @return array */ public function toArray($flag = self::EXTR_DATA) { switch ($flag) { case self::EXTR_BOTH: return $this->items; break; case self::EXTR_PRIORITY: return array_map(function($item) { return $item['priority']; }, $this->items); case self::EXTR_DATA: default: return array_map(function($item) { return $item['data']; }, $this->items); } } /** * Specify the internal queue class * * Please see {@link getIterator()} for details on the necessity of an * internal queue class. The class provided should extend SplPriorityQueue. * * @param string $class * @return PriorityQueue */ public function setInternalQueueClass($class) { $this->queueClass = (string) $class; return $this; } /** * Does the queue contain the given datum? * * @param mixed $datum * @return bool */ public function contains($datum) { foreach ($this->items as $item) { if ($item['data'] === $datum) { return true; } } return false; } /** * Does the queue have an item with the given priority? * * @param int $priority * @return bool */ public function hasPriority($priority) { foreach ($this->items as $item) { if ($item['priority'] === $priority) { return true; } } return false; } /** * Get the inner priority queue instance * * @return SplPriorityQueue */ protected function getQueue() { if (null === $this->queue) { $this->queue = new $this->queueClass(); if (!$this->queue instanceof \SplPriorityQueue) { throw new \DomainException(sprintf( 'PriorityQueue expects an internal queue of type SplPriorityQueue; received "%s"', get_class($this->queue) )); } } return $this->queue; } } serial--); } parent::insert($datum, $priority); } /** * Serialize to an array * * Array will be priority => data pairs * * @return array */ public function toArray() { $this->setExtractFlags(self::EXTR_BOTH); $array = array(); while ($this->valid()) { $array[] = $this->current(); $this->next(); } $this->setExtractFlags(self::EXTR_DATA); // Iterating through a priority queue removes items foreach ($array as $item) { $this->insert($item['data'], $item['priority']); } // Return only the data $return = array(); foreach ($array as $item) { $return[] = $item['data']; } return $return; } /** * Serialize * * @return string */ public function serialize() { $data = array(); $this->setExtractFlags(self::EXTR_BOTH); while ($this->valid()) { $data[] = $this->current(); $this->next(); } $this->setExtractFlags(self::EXTR_DATA); // Iterating through a priority queue removes items foreach ($data as $item) { $this->insert($item['data'], $item['priority']); } return serialize($data); } /** * Deserialize * * @param string $data * @return void */ public function unserialize($data) { foreach (unserialize($data) as $item) { $this->insert($item['data'], $item['priority']); } } } toArray()); } /** * Unserialize * * @param string $data * @return void */ public function unserialize($data) { foreach (unserialize($data) as $item) { $this->push($item); } } } toArray()); } /** * Unserialize * * @param string $data * @return void */ public function unserialize($data) { foreach (unserialize($data) as $item) { $this->unshift($item); } } }