summaryrefslogtreecommitdiffstats
path: root/d967c0d39c48a79c3c37ff84d8658240038f4d78.patch
diff options
context:
space:
mode:
Diffstat (limited to 'd967c0d39c48a79c3c37ff84d8658240038f4d78.patch')
-rw-r--r--d967c0d39c48a79c3c37ff84d8658240038f4d78.patch345
1 files changed, 345 insertions, 0 deletions
diff --git a/d967c0d39c48a79c3c37ff84d8658240038f4d78.patch b/d967c0d39c48a79c3c37ff84d8658240038f4d78.patch
new file mode 100644
index 0000000..64a9d41
--- /dev/null
+++ b/d967c0d39c48a79c3c37ff84d8658240038f4d78.patch
@@ -0,0 +1,345 @@
+Adapted to be usable from EL-6 (patch doesn't support rename)
+
+
+
+From d967c0d39c48a79c3c37ff84d8658240038f4d78 Mon Sep 17 00:00:00 2001
+From: webimpress <contact@webimpress.com>
+Date: Thu, 26 Oct 2017 12:51:36 +0100
+Subject: [PATCH] :fire: Polyfill PatternPluginManager - to allow work with
+ Zend SMv2 and v3
+
+Fixes issue with PHP 7.2 signature compatibility.
+---
+ autoload/patternPluginManagerPolyfill.php | 17 +++++
+ composer.json | 7 +-
+ composer.lock | 2 +-
+ .../PatternPluginManagerTrait.php | 75 +++++++++++++++++++
+ .../PatternPluginManagerV2Polyfill.php} | 77 +++----------------
+ .../PatternPluginManagerV3Polyfill.php | 87 ++++++++++++++++++++++
+ 6 files changed, 197 insertions(+), 68 deletions(-)
+ create mode 100644 autoload/patternPluginManagerPolyfill.php
+ create mode 100644 src/PatternPluginManager/PatternPluginManagerTrait.php
+ rename src/{PatternPluginManager.php => PatternPluginManager/PatternPluginManagerV2Polyfill.php} (51%)
+ create mode 100644 src/PatternPluginManager/PatternPluginManagerV3Polyfill.php
+
+diff --git a/autoload/patternPluginManagerPolyfill.php b/autoload/patternPluginManagerPolyfill.php
+new file mode 100644
+index 00000000..4d896fb8
+--- /dev/null
++++ b/autoload/patternPluginManagerPolyfill.php
+@@ -0,0 +1,17 @@
++<?php
++/**
++ * @see https://github.com/zendframework/zend-cache for the canonical source repository
++ * @copyright Copyright (c) 2017 Zend Technologies USA Inc. (http://www.zend.com)
++ * @license https://github.com/zendframework/zend-cache/blob/master/LICENSE.md New BSD License
++ */
++
++use Zend\Cache\PatternPluginManager;
++use Zend\ServiceManager\ServiceManager;
++
++call_user_func(function () {
++ $target = method_exists(ServiceManager::class, 'configure')
++ ? PatternPluginManager\PatternPluginManagerV3Polyfill::class
++ : PatternPluginManager\PatternPluginManagerV2Polyfill::class;
++
++ class_alias($target, PatternPluginManager::class);
++});
+diff --git a/src/PatternPluginManager/PatternPluginManagerTrait.php b/src/PatternPluginManager/PatternPluginManagerTrait.php
+new file mode 100644
+index 00000000..8c6f2b27
+--- /dev/null
++++ b/src/PatternPluginManager/PatternPluginManagerTrait.php
+@@ -0,0 +1,75 @@
++<?php
++/**
++ * @see https://github.com/zendframework/zend-cache for the canonical source repository
++ * @copyright Copyright (c) 2005-2017 Zend Technologies USA Inc. (http://www.zend.com)
++ * @license https://github.com/zendframework/zend-cache/blob/master/LICENSE.md New BSD License
++ */
++
++namespace Zend\Cache\PatternPluginManager;
++
++use Zend\Cache\Exception;
++use Zend\Cache\Pattern;
++use Zend\ServiceManager\Exception\InvalidServiceException;
++
++/**
++ * Trait providing common logic between FormElementManager implementations.
++ *
++ * Trait does not define properties, as the properties common between the
++ * two versions are originally defined in their parent class, causing a
++ * resolution conflict.
++ */
++trait PatternPluginManagerTrait
++{
++ /**
++ * Override build to inject options as PatternOptions instance.
++ *
++ * {@inheritDoc}
++ */
++ public function build($plugin, array $options = null)
++ {
++ if (empty($options)) {
++ return parent::build($plugin);
++ }
++
++ $plugin = parent::build($plugin);
++ $plugin->setOptions(new Pattern\PatternOptions($options));
++ return $plugin;
++ }
++
++ /**
++ * Validate the plugin is of the expected type (v3).
++ *
++ * Validates against `$instanceOf`.
++ *
++ * @param mixed $instance
++ * @throws InvalidServiceException
++ */
++ public function validate($instance)
++ {
++ if (! $instance instanceof $this->instanceOf) {
++ throw new InvalidServiceException(sprintf(
++ '%s can only create instances of %s; %s is invalid',
++ get_class($this),
++ $this->instanceOf,
++ (is_object($instance) ? get_class($instance) : gettype($instance))
++ ));
++ }
++ }
++
++ /**
++ * Validate the plugin is of the expected type (v2).
++ *
++ * Proxies to `validate()`.
++ *
++ * @param mixed $plugin
++ * @throws Exception\RuntimeException if invalid
++ */
++ public function validatePlugin($plugin)
++ {
++ try {
++ $this->validate($plugin);
++ } catch (InvalidServiceException $e) {
++ throw new Exception\RuntimeException($e->getMessage(), $e->getCode(), $e);
++ }
++ }
++}
+diff --git a/src/PatternPluginManager.php b/src/PatternPluginManager/PatternPluginManagerV2Polyfill.php
+--- a/src/PatternPluginManager/PatternPluginManagerV2Polyfill.php
++++ b/src/PatternPluginManager/PatternPluginManagerV2Polyfill.php
+@@ -1,27 +1,27 @@
+ <?php
+ /**
+- * Zend Framework (http://framework.zend.com/)
+- *
+- * @link http://github.com/zendframework/zf2 for the canonical source repository
+- * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
+- * @license http://framework.zend.com/license/new-bsd New BSD License
++ * @see https://github.com/zendframework/zend-cache for the canonical source repository
++ * @copyright Copyright (c) 2017 Zend Technologies USA Inc. (http://www.zend.com)
++ * @license https://github.com/zendframework/zend-cache/blob/master/LICENSE.md New BSD License
+ */
+
+-namespace Zend\Cache;
++namespace Zend\Cache\PatternPluginManager;
+
++use Zend\Cache\Pattern;
+ use Zend\ServiceManager\AbstractPluginManager;
+ use Zend\ServiceManager\Factory\InvokableFactory;
+-use Zend\ServiceManager\Exception\InvalidServiceException;
+
+ /**
+- * Plugin manager implementation for cache pattern adapters
++ * zend-servicemanager v2-compatible plugin manager implementation for cache pattern adapters.
+ *
+ * Enforces that retrieved adapters are instances of
+ * Pattern\PatternInterface. Additionally, it registers a number of default
+ * patterns available.
+ */
+-class PatternPluginManager extends AbstractPluginManager
++class PatternPluginManagerV2Polyfill extends AbstractPluginManager
+ {
++ use PatternPluginManagerTrait;
++
+ protected $aliases = [
+ 'callback' => Pattern\CallbackCache::class,
+ 'Callback' => Pattern\CallbackCache::class,
+@@ -53,14 +53,14 @@ class PatternPluginManager extends AbstractPluginManager
+ /**
+ * Don't share by default
+ *
+- * @var boolean
++ * @var bool
+ */
+ protected $shareByDefault = false;
+
+ /**
+ * Don't share by default
+ *
+- * @var boolean
++ * @var bool
+ */
+ protected $sharedByDefault = false;
+
+@@ -74,7 +74,7 @@ class PatternPluginManager extends AbstractPluginManager
+ *
+ * {@inheritDoc}
+ */
+- public function get($plugin, array $options = [], $usePeeringServiceManagers = true)
++ public function get($plugin, $options = [], $usePeeringServiceManagers = true)
+ {
+ if (empty($options)) {
+ return parent::get($plugin, [], $usePeeringServiceManagers);
+@@ -84,57 +84,4 @@ public function get($plugin, array $options = [], $usePeeringServiceManagers = t
+ $plugin->setOptions(new Pattern\PatternOptions($options));
+ return $plugin;
+ }
+-
+- /**
+- * Override build to inject options as PatternOptions instance.
+- *
+- * {@inheritDoc}
+- */
+- public function build($plugin, array $options = null)
+- {
+- if (empty($options)) {
+- return parent::build($plugin);
+- }
+-
+- $plugin = parent::build($plugin);
+- $plugin->setOptions(new Pattern\PatternOptions($options));
+- return $plugin;
+- }
+-
+- /**
+- * Validate the plugin is of the expected type (v3).
+- *
+- * Validates against `$instanceOf`.
+- *
+- * @param mixed $instance
+- * @throws InvalidServiceException
+- */
+- public function validate($instance)
+- {
+- if (! $instance instanceof $this->instanceOf) {
+- throw new InvalidServiceException(sprintf(
+- '%s can only create instances of %s; %s is invalid',
+- get_class($this),
+- $this->instanceOf,
+- (is_object($instance) ? get_class($instance) : gettype($instance))
+- ));
+- }
+- }
+-
+- /**
+- * Validate the plugin is of the expected type (v2).
+- *
+- * Proxies to `validate()`.
+- *
+- * @param mixed $plugin
+- * @throws Exception\RuntimeException if invalid
+- */
+- public function validatePlugin($plugin)
+- {
+- try {
+- $this->validate($plugin);
+- } catch (InvalidServiceException $e) {
+- throw new Exception\RuntimeException($e->getMessage(), $e->getCode(), $e);
+- }
+- }
+ }
+diff --git a/src/PatternPluginManager/PatternPluginManagerV3Polyfill.php b/src/PatternPluginManager/PatternPluginManagerV3Polyfill.php
+new file mode 100644
+index 00000000..c00ef1d5
+--- /dev/null
++++ b/src/PatternPluginManager/PatternPluginManagerV3Polyfill.php
+@@ -0,0 +1,87 @@
++<?php
++/**
++ * @see https://github.com/zendframework/zend-cache for the canonical source repository
++ * @copyright Copyright (c) 2017 Zend Technologies USA Inc. (http://www.zend.com)
++ * @license https://github.com/zendframework/zend-cache/blob/master/LICENSE.md New BSD License
++ */
++
++namespace Zend\Cache\PatternPluginManager;
++
++use Zend\Cache\Pattern;
++use Zend\ServiceManager\AbstractPluginManager;
++use Zend\ServiceManager\Factory\InvokableFactory;
++
++/**
++ * zend-servicemanager v3-compatible plugin manager implementation for cache pattern adapters.
++ *
++ * Enforces that retrieved adapters are instances of
++ * Pattern\PatternInterface. Additionally, it registers a number of default
++ * patterns available.
++ */
++class PatternPluginManagerV3Polyfill extends AbstractPluginManager
++{
++ use PatternPluginManagerTrait;
++
++ protected $aliases = [
++ 'callback' => Pattern\CallbackCache::class,
++ 'Callback' => Pattern\CallbackCache::class,
++ 'capture' => Pattern\CaptureCache::class,
++ 'Capture' => Pattern\CaptureCache::class,
++ 'class' => Pattern\ClassCache::class,
++ 'Class' => Pattern\ClassCache::class,
++ 'object' => Pattern\ObjectCache::class,
++ 'Object' => Pattern\ObjectCache::class,
++ 'output' => Pattern\OutputCache::class,
++ 'Output' => Pattern\OutputCache::class,
++ ];
++
++ protected $factories = [
++ Pattern\CallbackCache::class => InvokableFactory::class,
++ Pattern\CaptureCache::class => InvokableFactory::class,
++ Pattern\ClassCache::class => InvokableFactory::class,
++ Pattern\ObjectCache::class => InvokableFactory::class,
++ Pattern\OutputCache::class => InvokableFactory::class,
++
++ // v2 normalized FQCNs
++ 'zendcachepatterncallbackcache' => InvokableFactory::class,
++ 'zendcachepatterncapturecache' => InvokableFactory::class,
++ 'zendcachepatternclasscache' => InvokableFactory::class,
++ 'zendcachepatternobjectcache' => InvokableFactory::class,
++ 'zendcachepatternoutputcache' => InvokableFactory::class,
++ ];
++
++ /**
++ * Don't share by default
++ *
++ * @var bool
++ */
++ protected $shareByDefault = false;
++
++ /**
++ * Don't share by default
++ *
++ * @var bool
++ */
++ protected $sharedByDefault = false;
++
++ /**
++ * @var string
++ */
++ protected $instanceOf = Pattern\PatternInterface::class;
++
++ /**
++ * Override get to inject options as PatternOptions instance.
++ *
++ * {@inheritDoc}
++ */
++ public function get($plugin, array $options = null, $usePeeringServiceManagers = true)
++ {
++ if (empty($options)) {
++ return parent::get($plugin, null, $usePeeringServiceManagers);
++ }
++
++ $plugin = parent::get($plugin, null, $usePeeringServiceManagers);
++ $plugin->setOptions(new Pattern\PatternOptions($options));
++ return $plugin;
++ }
++}