Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos-webui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/zendframework/zend-cache/src/Pattern/CallbackCache.php')
-rw-r--r--vendor/zendframework/zend-cache/src/Pattern/CallbackCache.php202
1 files changed, 0 insertions, 202 deletions
diff --git a/vendor/zendframework/zend-cache/src/Pattern/CallbackCache.php b/vendor/zendframework/zend-cache/src/Pattern/CallbackCache.php
deleted file mode 100644
index ea5f0ae..0000000
--- a/vendor/zendframework/zend-cache/src/Pattern/CallbackCache.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Cache\Pattern;
-
-use Zend\Cache\Exception;
-use Zend\Stdlib\ErrorHandler;
-
-class CallbackCache extends AbstractPattern
-{
- /**
- * Set options
- *
- * @param PatternOptions $options
- * @return CallbackCache
- * @throws Exception\InvalidArgumentException if missing storage option
- */
- public function setOptions(PatternOptions $options)
- {
- parent::setOptions($options);
-
- if (!$options->getStorage()) {
- throw new Exception\InvalidArgumentException("Missing option 'storage'");
- }
- return $this;
- }
-
- /**
- * Call the specified callback or get the result from cache
- *
- * @param callable $callback A valid callback
- * @param array $args Callback arguments
- * @return mixed Result
- * @throws Exception\RuntimeException if invalid cached data
- * @throws \Exception
- */
- public function call($callback, array $args = array())
- {
- $options = $this->getOptions();
- $storage = $options->getStorage();
- $success = null;
- $key = $this->generateCallbackKey($callback, $args);
- $result = $storage->getItem($key, $success);
- if ($success) {
- if (!array_key_exists(0, $result)) {
- throw new Exception\RuntimeException("Invalid cached data for key '{$key}'");
- }
-
- echo isset($result[1]) ? $result[1] : '';
- return $result[0];
- }
-
- $cacheOutput = $options->getCacheOutput();
- if ($cacheOutput) {
- ob_start();
- ob_implicit_flush(0);
- }
-
- // TODO: do not cache on errors using [set|restore]_error_handler
-
- try {
- if ($args) {
- $ret = call_user_func_array($callback, $args);
- } else {
- $ret = call_user_func($callback);
- }
- } catch (\Exception $e) {
- if ($cacheOutput) {
- ob_end_flush();
- }
- throw $e;
- }
-
- if ($cacheOutput) {
- $data = array($ret, ob_get_flush());
- } else {
- $data = array($ret);
- }
-
- $storage->setItem($key, $data);
-
- return $ret;
- }
-
- /**
- * function call handler
- *
- * @param string $function Function name to call
- * @param array $args Function arguments
- * @return mixed
- * @throws Exception\RuntimeException
- * @throws \Exception
- */
- public function __call($function, array $args)
- {
- return $this->call($function, $args);
- }
-
- /**
- * Generate a unique key in base of a key representing the callback part
- * and a key representing the arguments part.
- *
- * @param callable $callback A valid callback
- * @param array $args Callback arguments
- * @return string
- * @throws Exception\RuntimeException
- * @throws Exception\InvalidArgumentException
- */
- public function generateKey($callback, array $args = array())
- {
- return $this->generateCallbackKey($callback, $args);
- }
-
- /**
- * Generate a unique key in base of a key representing the callback part
- * and a key representing the arguments part.
- *
- * @param callable $callback A valid callback
- * @param array $args Callback arguments
- * @throws Exception\RuntimeException if callback not serializable
- * @throws Exception\InvalidArgumentException if invalid callback
- * @return string
- */
- protected function generateCallbackKey($callback, array $args)
- {
- if (!is_callable($callback, false, $callbackKey)) {
- throw new Exception\InvalidArgumentException('Invalid callback');
- }
-
- // functions, methods and classnames are case-insensitive
- $callbackKey = strtolower($callbackKey);
-
- // generate a unique key of object callbacks
- if (is_object($callback)) {
- // Closures & __invoke
- $object = $callback;
- } elseif (isset($callback[0])) {
- // array($object, 'method')
- $object = $callback[0];
- }
- if (isset($object)) {
- ErrorHandler::start();
- try {
- $serializedObject = serialize($object);
- } catch (\Exception $e) {
- ErrorHandler::stop();
- throw new Exception\RuntimeException("Can't serialize callback: see previous exception", 0, $e);
- }
- $error = ErrorHandler::stop();
-
- if (!$serializedObject) {
- throw new Exception\RuntimeException(
- sprintf('Cannot serialize callback%s', ($error ? ': ' . $error->getMessage() : '')),
- 0,
- $error
- );
- }
- $callbackKey.= $serializedObject;
- }
-
- return md5($callbackKey) . $this->generateArgumentsKey($args);
- }
-
- /**
- * Generate a unique key of the argument part.
- *
- * @param array $args
- * @throws Exception\RuntimeException
- * @return string
- */
- protected function generateArgumentsKey(array $args)
- {
- if (!$args) {
- return '';
- }
-
- ErrorHandler::start();
- try {
- $serializedArgs = serialize(array_values($args));
- } catch (\Exception $e) {
- ErrorHandler::stop();
- throw new Exception\RuntimeException("Can't serialize arguments: see previous exception", 0, $e);
- }
- $error = ErrorHandler::stop();
-
- if (!$serializedArgs) {
- throw new Exception\RuntimeException(
- sprintf('Cannot serialize arguments%s', ($error ? ': ' . $error->getMessage() : '')),
- 0,
- $error
- );
- }
-
- return md5($serializedArgs);
- }
-}