From: Seamus Lee Date: Sun, 24 May 2020 21:11:33 +0000 (+1000) Subject: Use Syfony 3.4 as minimum now X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=c2b44ba2ca3d2ddc24ed4c3c99d5e7d6b72628de;p=civicrm-core.git Use Syfony 3.4 as minimum now --- diff --git a/Civi/Core/CiviEventDispatcher.php b/Civi/Core/CiviEventDispatcher.php index f6f6479b96..5f0dbba7df 100644 --- a/Civi/Core/CiviEventDispatcher.php +++ b/Civi/Core/CiviEventDispatcher.php @@ -172,7 +172,6 @@ class CiviEventDispatcher extends EventDispatcher { */ protected function bindPatterns($eventName) { if ($eventName !== NULL && !isset($this->autoListeners[$eventName])) { - $this->lazyLoad($eventName); $this->autoListeners[$eventName] = 1; if ($this->isHookEvent($eventName)) { // WISHLIST: For native extensions (and possibly D6/D7/D8/BD), enumerate @@ -184,11 +183,6 @@ class CiviEventDispatcher extends EventDispatcher { ], self::DEFAULT_HOOK_PRIORITY); } } - elseif (NULL === $eventName) { - foreach ($this->listenerIds as $serviceEventName => $args) { - $this->lazyLoad($serviceEventName); - } - } } /** @@ -256,69 +250,4 @@ class CiviEventDispatcher extends EventDispatcher { return 'fail'; } - public function addListenerService($eventName, $callback, $priority = 0) { - if (!\is_array($callback) || 2 !== \count($callback)) { - throw new \InvalidArgumentException('Expected an array("service", "method") argument'); - } - $this->listenerIds[$eventName][] = array( - $callback[0], - $callback[1], - $priority, - ); - } - - public function addSubscriberService($serviceId, $class) { - foreach ($class::getSubscribedEvents() as $eventName => $params) { - if (\is_string($params)) { - $this->listenerIds[$eventName][] = array( - $serviceId, - $params, - 0, - ); - } - elseif (\is_string($params[0])) { - $this->listenerIds[$eventName][] = array( - $serviceId, - $params[0], - isset($params[1]) ? $params[1] : 0, - ); - } - else { - foreach ($params as $listener) { - $this->listenerIds[$eventName][] = array( - $serviceId, - $listener[0], - isset($listener[1]) ? $listener[1] : 0, - ); - } - } - } - } - - /** - * Lazily loads listeners for this event from the dependency injection - * container. - * - * @param string $eventName The name of the event to dispatch. The name of - * the event is the name of the method that is - * invoked on listeners. - */ - protected function lazyLoad($eventName) { - if (isset($this->listenerIds[$eventName])) { - foreach ($this->listenerIds[$eventName] as list($serviceId, $method, $priority)) { - $listener = \Civi\Core\Container::singleton()->get($serviceId); - $key = $serviceId . '.' . $method; - if (!isset($this->listeners[$eventName][$key])) { - $this->addListener($eventName, array($listener, $method), $priority); - } - elseif ($this->listeners[$eventName][$key] !== $listener) { - parent::removeListener($eventName, array($this->listeners[$eventName][$key], $method)); - $this->addListener($eventName, array($listener, $method), $priority); - } - - $this->listeners[$eventName][$key] = $listener; - } - } - } - } diff --git a/composer.json b/composer.json index 00be366247..0587ec55f4 100644 --- a/composer.json +++ b/composer.json @@ -46,14 +46,14 @@ "cache/integration-tests": "~0.16.0", "dompdf/dompdf" : "0.8.*", "electrolinux/phpquery": "^0.9.6", - "symfony/config": "^2.8.50 || ~3.0 || ~4.4", + "symfony/config": "~3.0 || ~4.4", "symfony/polyfill-iconv": "~1.0", - "symfony/dependency-injection": "^2.8.50 || ~3.0 || ~4.4", - "symfony/event-dispatcher": "^2.8.50 || ~3.0 || ~4.4", - "symfony/filesystem": "^2.8.50 || ~3.0 || ~4.4", - "symfony/process": "^2.8.50 || ~3.0 || ~4.4", + "symfony/dependency-injection": "~3.0 || ~4.4", + "symfony/event-dispatcher": "~3.0 || ~4.4", + "symfony/filesystem": "~3.0 || ~4.4", + "symfony/process": "~3.0 || ~4.4", "psr/log": "~1.0", - "symfony/finder": "^2.8.50 || ~3.0 || ~4.4", + "symfony/finder": "~3.0 || ~4.4", "tecnickcom/tcpdf" : "6.2.*", "totten/ca-config": "~17.05", "zetacomponents/base": "1.9.*", diff --git a/composer.lock b/composer.lock index 4b4be4b0cd..d846ce1b03 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1d40b2baf2c31338ed7e628dfbba3d2a", + "content-hash": "2c878584eb2dc9da8a1b13e2db07361f", "packages": [ { "name": "adrienrn/php-mimetyper", @@ -1659,6 +1659,55 @@ ], "time": "2016-08-06T20:24:11+00:00" }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -1851,25 +1900,32 @@ }, { "name": "symfony/config", - "version": "v2.8.50", + "version": "v3.4.40", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7dd5f5040dc04c118d057fb5886563963eb70011" + "reference": "3634991bea549e73c45a964c38f30ceeae6ed877" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7dd5f5040dc04c118d057fb5886563963eb70011", - "reference": "7dd5f5040dc04c118d057fb5886563963eb70011", + "url": "https://api.github.com/repos/symfony/config/zipball/3634991bea549e73c45a964c38f30ceeae6ed877", + "reference": "3634991bea549e73c45a964c38f30ceeae6ed877", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/filesystem": "~2.3|~3.0.0", + "php": "^5.5.9|>=7.0.8", + "symfony/filesystem": "~2.8|~3.0|~4.0", "symfony/polyfill-ctype": "~1.8" }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" + }, "require-dev": { - "symfony/yaml": "~2.7|~3.0.0" + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/event-dispatcher": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -1877,7 +1933,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -1904,43 +1960,51 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-11-26T09:38:12+00:00" + "time": "2020-04-12T14:33:46+00:00" }, { "name": "symfony/dependency-injection", - "version": "v2.8.50", + "version": "v3.4.40", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c306198fee8f872a8f5f031e6e4f6f83086992d8" + "reference": "d10ff5503b0b27711087eef4ac7835a752fe42fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c306198fee8f872a8f5f031e6e4f6f83086992d8", - "reference": "c306198fee8f872a8f5f031e6e4f6f83086992d8", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d10ff5503b0b27711087eef4ac7835a752fe42fd", + "reference": "d10ff5503b0b27711087eef4ac7835a752fe42fd", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^5.5.9|>=7.0.8", + "psr/container": "^1.0" }, "conflict": { - "symfony/expression-language": "<2.6" + "symfony/config": "<3.3.7", + "symfony/finder": "<3.3", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0" }, "require-dev": { - "symfony/config": "~2.2|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/yaml": "~2.3.42|~2.7.14|~2.8.7|~3.0.7" + "symfony/config": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "symfony/config": "", "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -1967,31 +2031,34 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2019-04-16T11:33:46+00:00" + "time": "2020-04-13T09:33:40+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.50", + "version": "v3.4.40", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0" + "reference": "9d4e22943b73acc1ba50595b7de1a01fe9dbad48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0", - "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9d4e22943b73acc1ba50595b7de1a01fe9dbad48", + "reference": "9d4e22943b73acc1ba50595b7de1a01fe9dbad48", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "^2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.6|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0" + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" }, "suggest": { "symfony/dependency-injection": "", @@ -2000,7 +2067,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -2027,30 +2094,30 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2018-11-21T14:20:20+00:00" + "time": "2020-03-15T09:38:08+00:00" }, { "name": "symfony/filesystem", - "version": "v2.8.50", + "version": "v3.4.40", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "7ae46872dad09dffb7fe1e93a0937097339d0080" + "reference": "78a93e5606a19d0fb490afc3c4a9b7ecd86e1515" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/7ae46872dad09dffb7fe1e93a0937097339d0080", - "reference": "7ae46872dad09dffb7fe1e93a0937097339d0080", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/78a93e5606a19d0fb490afc3c4a9b7ecd86e1515", + "reference": "78a93e5606a19d0fb490afc3c4a9b7ecd86e1515", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": "^5.5.9|>=7.0.8", "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -2077,29 +2144,29 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" + "time": "2020-04-12T16:54:01+00:00" }, { "name": "symfony/finder", - "version": "v2.8.50", + "version": "v3.4.40", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "1444eac52273e345d9b95129bf914639305a9ba4" + "reference": "5ec813ccafa8164ef21757e8c725d3a57da59200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1444eac52273e345d9b95129bf914639305a9ba4", - "reference": "1444eac52273e345d9b95129bf914639305a9ba4", + "url": "https://api.github.com/repos/symfony/finder/zipball/5ec813ccafa8164ef21757e8c725d3a57da59200", + "reference": "5ec813ccafa8164ef21757e8c725d3a57da59200", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -2126,20 +2193,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" + "time": "2020-02-14T07:34:21+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.12.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", "shasum": "" }, "require": { @@ -2151,7 +2218,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -2184,20 +2251,20 @@ "polyfill", "portable" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2020-05-12T16:14:59+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.12.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "685968b11e61a347c18bf25db32effa478be610f" + "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/685968b11e61a347c18bf25db32effa478be610f", - "reference": "685968b11e61a347c18bf25db32effa478be610f", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c4de7601eefbf25f9d47190abe07f79fe0a27424", + "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424", "shasum": "" }, "require": { @@ -2209,7 +2276,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -2243,29 +2310,29 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/process", - "version": "v2.8.50", + "version": "v3.4.40", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "c3591a09c78639822b0b290d44edb69bf9f05dc8" + "reference": "f5104c9dcbc2cfad45d01d5150c1da9836967271" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/c3591a09c78639822b0b290d44edb69bf9f05dc8", - "reference": "c3591a09c78639822b0b290d44edb69bf9f05dc8", + "url": "https://api.github.com/repos/symfony/process/zipball/f5104c9dcbc2cfad45d01d5150c1da9836967271", + "reference": "f5104c9dcbc2cfad45d01d5150c1da9836967271", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -2292,7 +2359,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" + "time": "2020-04-12T14:33:46+00:00" }, { "name": "tecnickcom/tcpdf", diff --git a/tests/phpunit/CRM/Core/ComposerConfigTest.php b/tests/phpunit/CRM/Core/ComposerConfigTest.php index b00ba4c502..316a24289f 100644 --- a/tests/phpunit/CRM/Core/ComposerConfigTest.php +++ b/tests/phpunit/CRM/Core/ComposerConfigTest.php @@ -21,12 +21,12 @@ class CRM_Core_ComposerConfigTest extends \PHPUnit\Framework\TestCase { */ public function testHardLocks() { $hardLocks = [ - 'symfony/config' => '/^v2\.8\./', - 'symfony/dependency-injection' => '/^v2\.8\./', - 'symfony/event-dispatcher' => '/^v2\.8\./', - 'symfony/filesystem' => '/^v2\.8\./', - 'symfony/finder' => '/^v2\.8\./', - 'symfony/process' => '/^v2\.8\./', + 'symfony/config' => '/^v3\.4\./', + 'symfony/dependency-injection' => '/^v3\.4\./', + 'symfony/event-dispatcher' => '/^v3\.4\./', + 'symfony/filesystem' => '/^v3\.4\./', + 'symfony/finder' => '/^v3\.4\./', + 'symfony/process' => '/^v3\.4\./', ]; $lockFile = Civi::paths()->getPath('[civicrm.root]/composer.lock');