diff --git a/composer.lock b/composer.lock index d6f175fb53..af35d0f4a9 100644 --- a/composer.lock +++ b/composer.lock @@ -890,48 +890,6 @@ "time": "2016-06-24T23:00:38+00:00" }, { - "name": "ircmaxell/password-compat", - "version": "v1.0.4", - "source": { - "type": "git", - "url": "https://github.com/ircmaxell/password_compat.git", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "4.*" - }, - "type": "library", - "autoload": { - "files": [ - "lib/password.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthony Ferrara", - "email": "ircmaxell@php.net", - "homepage": "http://blog.ircmaxell.com" - } - ], - "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", - "homepage": "https://github.com/ircmaxell/password_compat", - "keywords": [ - "hashing", - "password" - ], - "time": "2014-11-20T16:49:30+00:00" - }, - { "name": "masterminds/html5", "version": "2.2.1", "source": { @@ -1241,29 +1199,32 @@ }, { "name": "symfony/class-loader", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "2c8de07a8a4cc4da9c018ab7a81888b80e762f93" + "reference": "c29a5bc6ca14cfff1f5e3d7781ed74b6e898d2b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/2c8de07a8a4cc4da9c018ab7a81888b80e762f93", - "reference": "2c8de07a8a4cc4da9c018ab7a81888b80e762f93", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/c29a5bc6ca14cfff1f5e3d7781ed74b6e898d2b9", + "reference": "c29a5bc6ca14cfff1f5e3d7781ed74b6e898d2b9", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-apcu": "~1.1" + "php": ">=5.5.9" }, "require-dev": { - "symfony/finder": "^2.0.5|~3.0.0" + "symfony/finder": "~2.8|~3.0", + "symfony/polyfill-apcu": "~1.1" + }, + "suggest": { + "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1290,41 +1251,43 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2017-02-18T19:13:35+00:00" + "time": "2017-02-18T17:28:00+00:00" }, { "name": "symfony/console", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "81508e6fac4476771275a3f4f53c3fee9b956bfa" + "reference": "28fb243a2b5727774ca309ec2d92da240f1af0dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/81508e6fac4476771275a3f4f53c3fee9b956bfa", - "reference": "81508e6fac4476771275a3f4f53c3fee9b956bfa", + "url": "https://api.github.com/repos/symfony/console/zipball/28fb243a2b5727774ca309ec2d92da240f1af0dd", + "reference": "28fb243a2b5727774ca309ec2d92da240f1af0dd", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/debug": "^2.7.2|~3.0.0", + "php": ">=5.5.9", + "symfony/debug": "~2.8|~3.0", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/process": "~2.1|~3.0.0" + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/filesystem": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0" }, "suggest": { "psr/log": "For using the console logger", "symfony/event-dispatcher": "", + "symfony/filesystem": "", "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1351,37 +1314,37 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-03-04T11:00:12+00:00" + "time": "2017-03-06T19:30:27+00:00" }, { "name": "symfony/debug", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "e90099a2958d4833a02d05b504cc06e1c234abcc" + "reference": "b90c9f91ad8ac37d9f114e369042d3226b34dc1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/e90099a2958d4833a02d05b504cc06e1c234abcc", - "reference": "e90099a2958d4833a02d05b504cc06e1c234abcc", + "url": "https://api.github.com/repos/symfony/debug/zipball/b90c9f91ad8ac37d9f114e369042d3226b34dc1a", + "reference": "b90c9f91ad8ac37d9f114e369042d3226b34dc1a", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": ">=5.5.9", "psr/log": "~1.0" }, "conflict": { "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { - "symfony/class-loader": "~2.2|~3.0.0", - "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0" + "symfony/class-loader": "~2.8|~3.0", + "symfony/http-kernel": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1408,32 +1371,32 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2017-02-18T19:13:35+00:00" + "time": "2017-02-18T17:28:00+00:00" }, { "name": "symfony/dependency-injection", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "efdbeefa454a41154fd99a6f0489f0e9cb46c497" + "reference": "74e0935e414ad33d5e82074212c0eedb4681a691" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/efdbeefa454a41154fd99a6f0489f0e9cb46c497", - "reference": "efdbeefa454a41154fd99a6f0489f0e9cb46c497", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/74e0935e414ad33d5e82074212c0eedb4681a691", + "reference": "74e0935e414ad33d5e82074212c0eedb4681a691", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "conflict": { - "symfony/expression-language": "<2.6" + "symfony/yaml": "<3.2" }, "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": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/yaml": "~3.2" }, "suggest": { "symfony/config": "", @@ -1444,7 +1407,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1471,28 +1434,28 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2017-02-28T12:31:05+00:00" + "time": "2017-03-05T00:06:55+00:00" }, { "name": "symfony/dom-crawler", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "24b1a3ffa5b64e4f8b1c5f2cdffd16368640704a" + "reference": "403944e294cf4ceb3b8447f54cbad88ea7b99cee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/24b1a3ffa5b64e4f8b1c5f2cdffd16368640704a", - "reference": "24b1a3ffa5b64e4f8b1c5f2cdffd16368640704a", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/403944e294cf4ceb3b8447f54cbad88ea7b99cee", + "reference": "403944e294cf4ceb3b8447f54cbad88ea7b99cee", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": ">=5.5.9", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/css-selector": "~2.8|~3.0.0" + "symfony/css-selector": "~2.8|~3.0" }, "suggest": { "symfony/css-selector": "" @@ -1500,7 +1463,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1527,31 +1490,31 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2017-02-21T08:33:48+00:00" + "time": "2017-02-21T09:12:04+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "bb4ec47e8e109c1c1172145732d0aa468d967cd0" + "reference": "b7a1b9e0a0f623ce43b4c8d775eb138f190c9d8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/bb4ec47e8e109c1c1172145732d0aa468d967cd0", - "reference": "bb4ec47e8e109c1c1172145732d0aa468d967cd0", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7a1b9e0a0f623ce43b4c8d775eb138f190c9d8d", + "reference": "b7a1b9e0a0f623ce43b4c8d775eb138f190c9d8d", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "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", + "symfony/dependency-injection": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0" }, "suggest": { "symfony/dependency-injection": "", @@ -1560,7 +1523,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1587,35 +1550,33 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2017-02-21T08:33:48+00:00" + "time": "2017-02-21T09:12:04+00:00" }, { "name": "symfony/http-foundation", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "88af747e7af17d8d7d439ad4639dc3e23ddd3edd" + "reference": "c57009887010eb4e58bfca2970314a5b820b24b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/88af747e7af17d8d7d439ad4639dc3e23ddd3edd", - "reference": "88af747e7af17d8d7d439ad4639dc3e23ddd3edd", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c57009887010eb4e58bfca2970314a5b820b24b9", + "reference": "c57009887010eb4e58bfca2970314a5b820b24b9", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php54": "~1.0", - "symfony/polyfill-php55": "~1.0" + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { - "symfony/expression-language": "~2.4|~3.0.0" + "symfony/expression-language": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1642,48 +1603,48 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2017-03-04T12:20:59+00:00" + "time": "2017-03-04T12:23:14+00:00" }, { "name": "symfony/http-kernel", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "18d7a01ac14ffa5a652a635c402b9777f858fc1a" + "reference": "bc909e85b8585c9edf043d0fca871308c41bb9b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/18d7a01ac14ffa5a652a635c402b9777f858fc1a", - "reference": "18d7a01ac14ffa5a652a635c402b9777f858fc1a", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/bc909e85b8585c9edf043d0fca871308c41bb9b4", + "reference": "bc909e85b8585c9edf043d0fca871308c41bb9b4", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": ">=5.5.9", "psr/log": "~1.0", - "symfony/debug": "^2.6.2", - "symfony/event-dispatcher": "^2.6.7|~3.0.0", - "symfony/http-foundation": "~2.7.20|~2.8.13|~3.1.6" + "symfony/debug": "~2.8|~3.0", + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/http-foundation": "~2.8.13|~3.1.6|~3.2" }, "conflict": { - "symfony/config": "<2.7" + "symfony/config": "<2.8" }, "require-dev": { - "symfony/browser-kit": "~2.3|~3.0.0", - "symfony/class-loader": "~2.1|~3.0.0", - "symfony/config": "~2.8", - "symfony/console": "~2.3|~3.0.0", - "symfony/css-selector": "^2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.8|~3.0.0", - "symfony/dom-crawler": "^2.0.5|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/finder": "^2.0.5|~3.0.0", - "symfony/process": "^2.0.5|~3.0.0", - "symfony/routing": "~2.8|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0", - "symfony/templating": "~2.2|~3.0.0", - "symfony/translation": "^2.0.5|~3.0.0", - "symfony/var-dumper": "~2.6|~3.0.0" + "symfony/browser-kit": "~2.8|~3.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0", + "symfony/console": "~2.8|~3.0", + "symfony/css-selector": "~2.8|~3.0", + "symfony/dependency-injection": "~2.8|~3.0", + "symfony/dom-crawler": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0", + "symfony/routing": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0", + "symfony/templating": "~2.8|~3.0", + "symfony/translation": "~2.8|~3.0", + "symfony/var-dumper": "~3.2" }, "suggest": { "symfony/browser-kit": "", @@ -1697,7 +1658,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1724,60 +1685,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2017-03-06T03:54:35+00:00" - }, - { - "name": "symfony/polyfill-apcu", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "5d4474f447403c3348e37b70acc2b95475b7befa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/5d4474f447403c3348e37b70acc2b95475b7befa", - "reference": "5d4474f447403c3348e37b70acc2b95475b7befa", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "apcu", - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2016-11-14T01:06:16+00:00" + "time": "2017-03-10T18:35:31+00:00" }, { "name": "symfony/polyfill-iconv", @@ -1898,140 +1806,26 @@ "time": "2016-11-14T01:06:16+00:00" }, { - "name": "symfony/polyfill-php54", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php54.git", - "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/90e085822963fdcc9d1c5b73deb3d2e5783b16a0", - "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php54\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2016-11-14T01:06:16+00:00" - }, - { - "name": "symfony/polyfill-php55", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php55.git", - "reference": "03e3f0350bca2220e3623a0e340eef194405fc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/03e3f0350bca2220e3623a0e340eef194405fc67", - "reference": "03e3f0350bca2220e3623a0e340eef194405fc67", - "shasum": "" - }, - "require": { - "ircmaxell/password-compat": "~1.0", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php55\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2016-11-14T01:06:16+00:00" - }, - { "name": "symfony/process", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "41336b20b52f5fd5b42a227e394e673c8071118f" + "reference": "68bfa8c83f24c0ac04ea7193bcdcda4519f41892" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/41336b20b52f5fd5b42a227e394e673c8071118f", - "reference": "41336b20b52f5fd5b42a227e394e673c8071118f", + "url": "https://api.github.com/repos/symfony/process/zipball/68bfa8c83f24c0ac04ea7193bcdcda4519f41892", + "reference": "68bfa8c83f24c0ac04ea7193bcdcda4519f41892", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2058,7 +1852,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-03-04T12:20:59+00:00" + "time": "2017-03-04T12:23:14+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -2116,32 +1910,32 @@ }, { "name": "symfony/routing", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "d145cd396f702c497cb24b21785ddac90a23fe71" + "reference": "d6605f9a5767bc5bc4895e1c762ba93964608aee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/d145cd396f702c497cb24b21785ddac90a23fe71", - "reference": "d145cd396f702c497cb24b21785ddac90a23fe71", + "url": "https://api.github.com/repos/symfony/routing/zipball/d6605f9a5767bc5bc4895e1c762ba93964608aee", + "reference": "d6605f9a5767bc5bc4895e1c762ba93964608aee", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "conflict": { - "symfony/config": "<2.7" + "symfony/config": "<2.8" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/common": "~2.2", "psr/log": "~1.0", - "symfony/config": "~2.7|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/http-foundation": "~2.3|~3.0.0", - "symfony/yaml": "^2.0.5|~3.0.0" + "symfony/config": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/http-foundation": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -2154,7 +1948,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2187,44 +1981,55 @@ "uri", "url" ], - "time": "2017-03-02T15:56:34+00:00" + "time": "2017-03-02T15:58:09+00:00" }, { "name": "symfony/serializer", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "df3d919f00177f599c8970e86112c7582b08a582" + "reference": "a51ec869cd38d3732ee4092b2e511d9381847c0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/df3d919f00177f599c8970e86112c7582b08a582", - "reference": "df3d919f00177f599c8970e86112c7582b08a582", + "url": "https://api.github.com/repos/symfony/serializer/zipball/a51ec869cd38d3732ee4092b2e511d9381847c0a", + "reference": "a51ec869cd38d3732ee4092b2e511d9381847c0a", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-php55": "~1.0" + "php": ">=5.5.9" + }, + "conflict": { + "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", + "symfony/property-info": "<3.1", + "symfony/yaml": "<3.1" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", - "symfony/config": "~2.2|~3.0.0", - "symfony/property-access": "~2.3|~3.0.0", - "symfony/yaml": "^2.0.5|~3.0.0" + "phpdocumentor/reflection-docblock": "~3.0", + "symfony/cache": "~3.1", + "symfony/config": "~2.8|~3.0", + "symfony/http-foundation": "~2.8|~3.0", + "symfony/property-access": "~2.8|~3.0", + "symfony/property-info": "~3.1", + "symfony/yaml": "~3.1" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "psr/cache-implementation": "For using the metadata cache.", "symfony/config": "For using the XML mapping loader.", + "symfony/http-foundation": "To use the DataUriNormalizer.", "symfony/property-access": "For using the ObjectNormalizer.", + "symfony/property-info": "To deserialize relations.", "symfony/yaml": "For using the default YAML mapping loader." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2251,34 +2056,34 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2017-03-05T17:40:13+00:00" + "time": "2017-03-05T17:42:14+00:00" }, { "name": "symfony/translation", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "b538355bc99db2ec7cc35284ec76d92ae7d1d256" + "reference": "0e1b15ce8fbf3890f4ccdac430ed5e07fdfe0690" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/b538355bc99db2ec7cc35284ec76d92ae7d1d256", - "reference": "b538355bc99db2ec7cc35284ec76d92ae7d1d256", + "url": "https://api.github.com/repos/symfony/translation/zipball/0e1b15ce8fbf3890f4ccdac430ed5e07fdfe0690", + "reference": "0e1b15ce8fbf3890f4ccdac430ed5e07fdfe0690", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": ">=5.5.9", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/config": "<2.7" + "symfony/config": "<2.8" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8", - "symfony/intl": "~2.7.25|^2.8.18|~3.2.5", - "symfony/yaml": "~2.2|~3.0.0" + "symfony/config": "~2.8|~3.0", + "symfony/intl": "^2.8.18|^3.2.5", + "symfony/yaml": "~2.8|~3.0" }, "suggest": { "psr/log": "To use logging capability in translator", @@ -2288,7 +2093,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2315,53 +2120,57 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2017-03-04T12:20:59+00:00" + "time": "2017-03-04T12:23:14+00:00" }, { "name": "symfony/validator", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "8d4bfa7ec24e70ebc28d0cea5f2702d3f1257a63" + "reference": "6a67585f0d2a5cf407cf6cfa53095881dcb0f549" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/8d4bfa7ec24e70ebc28d0cea5f2702d3f1257a63", - "reference": "8d4bfa7ec24e70ebc28d0cea5f2702d3f1257a63", + "url": "https://api.github.com/repos/symfony/validator/zipball/6a67585f0d2a5cf407cf6cfa53095881dcb0f549", + "reference": "6a67585f0d2a5cf407cf6cfa53095881dcb0f549", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": ">=5.5.9", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation": "~2.4|~3.0.0" + "symfony/translation": "~2.8|~3.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", - "egulias/email-validator": "^1.2.1", - "symfony/config": "~2.2|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/http-foundation": "~2.3|~3.0.0", - "symfony/intl": "~2.7.25|^2.8.18|~3.2.5", - "symfony/property-access": "~2.3|~3.0.0", - "symfony/yaml": "^2.0.5|~3.0.0" + "egulias/email-validator": "^1.2.8|~2.0", + "symfony/cache": "~3.1", + "symfony/config": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/http-foundation": "~2.8|~3.0", + "symfony/intl": "^2.8.18|^3.2.5", + "symfony/yaml": "~2.8|~3.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", "doctrine/cache": "For using the default cached annotation reader and metadata cache.", "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the metadata cache.", "symfony/config": "", - "symfony/expression-language": "For using the 2.4 Expression validator", + "symfony/expression-language": "For using the Expression validator", "symfony/http-foundation": "", "symfony/intl": "", - "symfony/property-access": "For using the 2.4 Validator API", + "symfony/property-access": "For using the Expression validator", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2388,29 +2197,35 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2017-02-28T02:24:56+00:00" + "time": "2017-02-28T02:30:50+00:00" }, { "name": "symfony/yaml", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "2a7bab3c16f6f452c47818fdd08f3b1e49ffcf7d" + "reference": "093e416ad096355149e265ea2e4cc1f9ee40ab1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/2a7bab3c16f6f452c47818fdd08f3b1e49ffcf7d", - "reference": "2a7bab3c16f6f452c47818fdd08f3b1e49ffcf7d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/093e416ad096355149e265ea2e4cc1f9ee40ab1a", + "reference": "093e416ad096355149e265ea2e4cc1f9ee40ab1a", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2437,7 +2252,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2017-03-01T18:13:50+00:00" + "time": "2017-03-07T16:47:02+00:00" }, { "name": "twig/twig", @@ -3128,6 +2943,48 @@ "time": "2015-11-05T12:58:44+00:00" }, { + "name": "ircmaxell/password-compat", + "version": "v1.0.4", + "source": { + "type": "git", + "url": "https://github.com/ircmaxell/password_compat.git", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "autoload": { + "files": [ + "lib/password.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthony Ferrara", + "email": "ircmaxell@php.net", + "homepage": "http://blog.ircmaxell.com" + } + ], + "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", + "homepage": "https://github.com/ircmaxell/password_compat", + "keywords": [ + "hashing", + "password" + ], + "time": "2014-11-20T16:49:30+00:00" + }, + { "name": "jcalderonzumba/gastonjs", "version": "v1.0.2", "source": { @@ -4219,25 +4076,25 @@ }, { "name": "symfony/browser-kit", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "8827db04bcd8d9b9bf3114ea41081d8036ab209c" + "reference": "2fe0caa60c1a1dfeefd0425741182687a9b382b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/8827db04bcd8d9b9bf3114ea41081d8036ab209c", - "reference": "8827db04bcd8d9b9bf3114ea41081d8036ab209c", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2fe0caa60c1a1dfeefd0425741182687a9b382b8", + "reference": "2fe0caa60c1a1dfeefd0425741182687a9b382b8", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/dom-crawler": "~2.1|~3.0.0" + "php": ">=5.5.9", + "symfony/dom-crawler": "~2.8|~3.0" }, "require-dev": { - "symfony/css-selector": "^2.0.5|~3.0.0", - "symfony/process": "~2.3.34|^2.7.6|~3.0.0" + "symfony/css-selector": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0" }, "suggest": { "symfony/process": "" @@ -4245,7 +4102,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -4272,29 +4129,29 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2017-02-21T08:33:48+00:00" + "time": "2017-02-21T09:12:04+00:00" }, { "name": "symfony/css-selector", - "version": "v2.8.18", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "742bd688bd778dde8991ba696cb372570610afcd" + "reference": "a48f13dc83c168f1253a5d2a5a4fb46c36244c4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/742bd688bd778dde8991ba696cb372570610afcd", - "reference": "742bd688bd778dde8991ba696cb372570610afcd", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/a48f13dc83c168f1253a5d2a5a4fb46c36244c4c", + "reference": "a48f13dc83c168f1253a5d2a5a4fb46c36244c4c", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -4325,7 +4182,7 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2017-02-21T08:33:48+00:00" + "time": "2017-02-21T09:12:04+00:00" } ], "aliases": [], diff --git a/core/composer.json b/core/composer.json index c77bc309ad..e5b55b4f5c 100644 --- a/core/composer.json +++ b/core/composer.json @@ -5,20 +5,20 @@ "license": "GPL-2.0+", "require": { "php": ">=5.5.9", - "symfony/class-loader": "~2.8", - "symfony/console": "~2.8", - "symfony/dependency-injection": "~2.8", - "symfony/dom-crawler": ">=2.8.13 <3.0", - "symfony/event-dispatcher": "~2.8", - "symfony/http-foundation": "~2.8", - "symfony/http-kernel": "~2.8", - "symfony/routing": "~2.8", - "symfony/serializer": "~2.8", - "symfony/translation": "~2.8", - "symfony/validator": "~2.8", - "symfony/process": "~2.8", + "symfony/class-loader": "~3.2", + "symfony/console": "~3.2", + "symfony/dependency-injection": "~3.2", + "symfony/dom-crawler": "~3.2", + "symfony/event-dispatcher": "~3.2", + "symfony/http-foundation": "~3.2", + "symfony/http-kernel": "~3.2", + "symfony/routing": "~3.2", + "symfony/serializer": "~3.2", + "symfony/translation": "~3.2", + "symfony/validator": "~3.2", + "symfony/process": "~3.2", "symfony/polyfill-iconv": "~1.0", - "symfony/yaml": "~2.8", + "symfony/yaml": "~3.2", "twig/twig": "^1.23.1", "doctrine/common": "2.5.*", "doctrine/annotations": "1.2.*", @@ -43,8 +43,7 @@ "jcalderonzumba/mink-phantomjs-driver": "~0.3.1", "mikey179/vfsStream": "~1.2", "phpunit/phpunit": ">=4.8.28 <5", - "symfony/browser-kit": ">=2.8.13 <3.0", - "symfony/css-selector": "~2.8" + "symfony/css-selector": "~3.2" }, "replace": { "drupal/action": "self.version", diff --git a/core/lib/Drupal/Component/DependencyInjection/Container.php b/core/lib/Drupal/Component/DependencyInjection/Container.php index 6737369545..45cc8b93ed 100644 --- a/core/lib/Drupal/Component/DependencyInjection/Container.php +++ b/core/lib/Drupal/Component/DependencyInjection/Container.php @@ -3,9 +3,7 @@ namespace Drupal\Component\DependencyInjection; use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\IntrospectableContainerInterface; use Symfony\Component\DependencyInjection\ResettableContainerInterface; -use Symfony\Component\DependencyInjection\ScopeInterface; use Symfony\Component\DependencyInjection\Exception\LogicException; use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; use Symfony\Component\DependencyInjection\Exception\RuntimeException; @@ -43,14 +41,10 @@ * getAServiceWithAnIdByCamelCase(). * - The function getServiceIds() was added as it has a use-case in core and * contrib. - * - Scopes are explicitly not allowed, because Symfony 2.8 has deprecated - * them and they will be removed in Symfony 3.0. - * - Synchronized services are explicitly not supported, because Symfony 2.8 has - * deprecated them and they will be removed in Symfony 3.0. * * @ingroup container */ -class Container implements IntrospectableContainerInterface, ResettableContainerInterface { +class Container implements ContainerInterface, ResettableContainerInterface { /** * The parameters of the container. @@ -311,12 +305,8 @@ protected function createService(array $definition, $id) { } } - // Share the service if it is public. - if (!isset($definition['public']) || $definition['public'] !== FALSE) { - // Forward compatibility fix for Symfony 2.8 update. - if (!isset($definition['shared']) || $definition['shared'] !== FALSE) { - $this->services[$id] = $service; - } + if (!isset($definition['shared']) || $definition['shared'] !== FALSE) { + $this->services[$id] = $service; } if (isset($definition['calls'])) { @@ -361,11 +351,7 @@ protected function createService(array $definition, $id) { /** * {@inheritdoc} */ - public function set($id, $service, $scope = ContainerInterface::SCOPE_CONTAINER) { - if (!in_array($scope, ['container', 'request']) || ('request' === $scope && 'request' !== $id)) { - @trigger_error('The concept of container scopes is deprecated since version 2.8 and will be removed in 3.0. Omit the third parameter.', E_USER_DEPRECATED); - } - + public function set($id, $service) { $this->services[$id] = $service; } @@ -587,61 +573,6 @@ protected function getParameterAlternatives($name) { return $this->getAlternatives($name, array_keys($this->parameters)); } - - /** - * {@inheritdoc} - */ - public function enterScope($name) { - if ('request' !== $name) { - @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); - } - - throw new \BadMethodCallException(sprintf("'%s' is not supported by Drupal 8.", __FUNCTION__)); - } - - /** - * {@inheritdoc} - */ - public function leaveScope($name) { - if ('request' !== $name) { - @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); - } - - throw new \BadMethodCallException(sprintf("'%s' is not supported by Drupal 8.", __FUNCTION__)); - } - - /** - * {@inheritdoc} - */ - public function addScope(ScopeInterface $scope) { - - $name = $scope->getName(); - if ('request' !== $name) { - @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); - } - throw new \BadMethodCallException(sprintf("'%s' is not supported by Drupal 8.", __FUNCTION__)); - } - - /** - * {@inheritdoc} - */ - public function hasScope($name) { - if ('request' !== $name) { - @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); - } - - throw new \BadMethodCallException(sprintf("'%s' is not supported by Drupal 8.", __FUNCTION__)); - } - - /** - * {@inheritdoc} - */ - public function isScopeActive($name) { - @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED); - - throw new \BadMethodCallException(sprintf("'%s' is not supported by Drupal 8.", __FUNCTION__)); - } - /** * Gets all defined service IDs. * diff --git a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php index 7673cef8ba..11768d0c20 100644 --- a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php +++ b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php @@ -237,18 +237,6 @@ protected function getServiceDefinition(Definition $definition) { $service['calls'] = $this->dumpMethodCalls($definition->getMethodCalls()); } - if (($scope = $definition->getScope()) !== ContainerInterface::SCOPE_CONTAINER) { - if ($scope === ContainerInterface::SCOPE_PROTOTYPE) { - // Scope prototype has been replaced with 'shared' => FALSE. - // This is a Symfony 2.8 forward compatibility fix. - // Reference: https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md#dependencyinjection - $service['shared'] = FALSE; - } - else { - throw new InvalidArgumentException("The 'scope' definition is deprecated in Symfony 3.0 and not supported by Drupal 8."); - } - } - // By default services are shared, so just provide the flag, when needed. if ($definition->isShared() === FALSE) { $service['shared'] = $definition->isShared(); diff --git a/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php b/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php index 83d558cbd3..5d615dbd05 100644 --- a/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php +++ b/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php @@ -136,12 +136,8 @@ protected function createService(array $definition, $id) { } } - // Share the service if it is public. - if (!isset($definition['public']) || $definition['public'] !== FALSE) { - // Forward compatibility fix for Symfony 2.8 update. - if (!isset($definition['shared']) || $definition['shared'] !== FALSE) { - $this->services[$id] = $service; - } + if (!isset($definition['shared']) || $definition['shared'] !== FALSE) { + $this->services[$id] = $service; } if (isset($definition['calls'])) { diff --git a/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php b/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php index 6c1e200825..a23f333a0a 100644 --- a/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php +++ b/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php @@ -2,7 +2,7 @@ namespace Drupal\Component\EventDispatcher; -use Symfony\Component\DependencyInjection\IntrospectableContainerInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\Event; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -36,7 +36,7 @@ class ContainerAwareEventDispatcher implements EventDispatcherInterface { /** * The service container. * - * @var \Symfony\Component\DependencyInjection\IntrospectableContainerInterface; + * @var \Symfony\Component\DependencyInjection\ContainerInterface; */ protected $container; @@ -66,7 +66,7 @@ class ContainerAwareEventDispatcher implements EventDispatcherInterface { /** * Constructs a container aware event dispatcher. * - * @param \Symfony\Component\DependencyInjection\IntrospectableContainerInterface $container + * @param \Symfony\Component\DependencyInjection\ContainerInterface $container * The service container. * @param array $listeners * A nested array of listener definitions keyed by event name and priority. @@ -77,7 +77,7 @@ class ContainerAwareEventDispatcher implements EventDispatcherInterface { * A service entry will be resolved to a callable only just before its * invocation. */ - public function __construct(IntrospectableContainerInterface $container, array $listeners = []) { + public function __construct(ContainerInterface $container, array $listeners = []) { $this->container = $container; $this->listeners = $listeners; $this->unsorted = []; @@ -91,9 +91,6 @@ public function dispatch($event_name, Event $event = NULL) { $event = new Event(); } - $event->setDispatcher($this); - $event->setName($event_name); - if (isset($this->listeners[$event_name])) { // Sort listeners if necessary. if (isset($this->unsorted[$event_name])) { diff --git a/core/lib/Drupal/Component/Serialization/YamlPecl.php b/core/lib/Drupal/Component/Serialization/YamlPecl.php index 2383bf849a..ec48a29ca6 100644 --- a/core/lib/Drupal/Component/Serialization/YamlPecl.php +++ b/core/lib/Drupal/Component/Serialization/YamlPecl.php @@ -27,6 +27,13 @@ public static function encode($data) { * {@inheritdoc} */ public static function decode($raw) { + static $init; + if (!isset($init)) { + // Decode binary, since Symfony YAML parser encodes binary from 3.1 + // onwards. + ini_set('yaml.decode_binary', 1); + $init = TRUE; + } // yaml_parse() will error with an empty value. if (!trim($raw)) { return NULL; diff --git a/core/lib/Drupal/Component/Serialization/YamlSymfony.php b/core/lib/Drupal/Component/Serialization/YamlSymfony.php index 8818e52534..390178f3f6 100644 --- a/core/lib/Drupal/Component/Serialization/YamlSymfony.php +++ b/core/lib/Drupal/Component/Serialization/YamlSymfony.php @@ -5,6 +5,7 @@ use Drupal\Component\Serialization\Exception\InvalidDataTypeException; use Symfony\Component\Yaml\Parser; use Symfony\Component\Yaml\Dumper; +use Symfony\Component\Yaml\Yaml as SymfonyYaml; /** * Default serialization for YAML using the Symfony component. @@ -18,7 +19,7 @@ public static function encode($data) { try { $yaml = new Dumper(); $yaml->setIndentation(2); - return $yaml->dump($data, PHP_INT_MAX, 0, TRUE, FALSE); + return $yaml->dump($data, PHP_INT_MAX, 0, SymfonyYaml::DUMP_EXCEPTION_ON_INVALID_TYPE); } catch (\Exception $e) { throw new InvalidDataTypeException($e->getMessage(), $e->getCode(), $e); @@ -33,7 +34,7 @@ public static function decode($raw) { $yaml = new Parser(); // Make sure we have a single trailing newline. A very simple config like // 'foo: bar' with no newline will fail to parse otherwise. - return $yaml->parse($raw, TRUE, FALSE); + return $yaml->parse($raw, SymfonyYaml::PARSE_EXCEPTION_ON_INVALID_TYPE); } catch (\Exception $e) { throw new InvalidDataTypeException($e->getMessage(), $e->getCode(), $e); diff --git a/core/lib/Drupal/Core/DependencyInjection/Container.php b/core/lib/Drupal/Core/DependencyInjection/Container.php index 4a491225b0..5643363316 100644 --- a/core/lib/Drupal/Core/DependencyInjection/Container.php +++ b/core/lib/Drupal/Core/DependencyInjection/Container.php @@ -3,7 +3,6 @@ namespace Drupal\Core\DependencyInjection; use Drupal\Component\DependencyInjection\Container as DrupalContainer; -use Symfony\Component\DependencyInjection\ContainerInterface; /** * Extends the Drupal container to set the service ID on the created object. @@ -13,8 +12,8 @@ class Container extends DrupalContainer { /** * {@inheritdoc} */ - public function set($id, $service, $scope = ContainerInterface::SCOPE_CONTAINER) { - parent::set($id, $service, $scope); + public function set($id, $service) { + parent::set($id, $service); // Ensure that the _serviceId property is set on synthetic services as well. if (isset($this->services[$id]) && is_object($this->services[$id]) && !isset($this->services[$id]->_serviceId)) { diff --git a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php index e45cb884aa..e0becc71e2 100644 --- a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php +++ b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php @@ -46,20 +46,12 @@ private function getProxyInstantiator() } /** - * Direct copy of the parent function. + * {@inheritdoc} */ protected function shareService(Definition $definition, $service, $id) { - if ($definition->isShared() && self::SCOPE_PROTOTYPE !== $scope = $definition->getScope(false)) { - if (self::SCOPE_CONTAINER !== $scope && !isset($this->scopedServices[$scope])) { - throw new InactiveScopeException($id, $scope); - } - + if ($definition->isShared()) { $this->services[$lowerId = strtolower($id)] = $service; - - if (self::SCOPE_CONTAINER !== $scope) { - $this->scopedServices[$scope][$lowerId] = $service; - } } } @@ -74,11 +66,11 @@ protected function shareService(Definition $definition, $service, $id) * ContainerBuilder class should be fixed to allow setting synthetic * services in a frozen builder. */ - public function set($id, $service, $scope = self::SCOPE_CONTAINER) { + public function set($id, $service) { if (strtolower($id) !== $id) { throw new \InvalidArgumentException("Service ID names must be lowercase: $id"); } - SymfonyContainer::set($id, $service, $scope); + SymfonyContainer::set($id, $service); // Ensure that the _serviceId property is set on synthetic services as well. if (isset($this->services[$id]) && is_object($this->services[$id]) && !isset($this->services[$id]->_serviceId)) { diff --git a/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php b/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php index da1c08c2f5..d999450b0a 100644 --- a/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php +++ b/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php @@ -168,21 +168,10 @@ private function parseDefinition($id, $service, $file) $definition->setShared($service['shared']); } - if (isset($service['scope'])) { - if ('request' !== $id) { - @trigger_error(sprintf('The "scope" key of service "%s" in file "%s" is deprecated since version 2.8 and will be removed in 3.0.', $id, $file), E_USER_DEPRECATED); - } - $definition->setScope($service['scope'], false); - } - if (isset($service['synthetic'])) { $definition->setSynthetic($service['synthetic']); } - if (isset($service['synchronized'])) { - $definition->setSynchronized($service['synchronized'], 'request' !== $id); - } - if (isset($service['lazy'])) { $definition->setLazy($service['lazy']); } @@ -213,15 +202,15 @@ private function parseDefinition($id, $service, $file) } if (isset($service['factory_class'])) { - $definition->setFactoryClass($service['factory_class']); + $definition->setFactory($service['factory_class']); } if (isset($service['factory_method'])) { - $definition->setFactoryMethod($service['factory_method']); + $definition->setFactory($service['factory_method']); } if (isset($service['factory_service'])) { - $definition->setFactoryService($service['factory_service']); + $definition->setFactory($service['factory_service']); } if (isset($service['file'])) { diff --git a/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php index 9ea7a83023..747262c849 100644 --- a/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php +++ b/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php @@ -189,9 +189,9 @@ public function onRespond(FilterResponseEvent $event) { * * When neither Cache-Control nor any of the ETag, Last-Modified, Expires * headers are set on the response, ::get('Cache-Control') returns the value - * 'no-cache'. If any of ETag, Last-Modified or Expires are set but not - * Cache-Control, then 'private, must-revalidate' (in exactly this order) is - * returned. + * 'no-cache, private'. If any of ETag, Last-Modified or Expires are set but + * not Cache-Control, then 'private, must-revalidate' (in exactly this order) + * is returned. * * @see \Symfony\Component\HttpFoundation\ResponseHeaderBag::computeCacheControlValue() * @@ -202,7 +202,7 @@ public function onRespond(FilterResponseEvent $event) { */ protected function isCacheControlCustomized(Response $response) { $cache_control = $response->headers->get('Cache-Control'); - return $cache_control != 'no-cache' && $cache_control != 'private, must-revalidate'; + return $cache_control != 'no-cache, private' && $cache_control != 'private, must-revalidate'; } /** diff --git a/core/lib/Drupal/Core/PageCache/RequestPolicy/CommandLineOrUnsafeMethod.php b/core/lib/Drupal/Core/PageCache/RequestPolicy/CommandLineOrUnsafeMethod.php index bbf85a33e9..27a1f7120d 100644 --- a/core/lib/Drupal/Core/PageCache/RequestPolicy/CommandLineOrUnsafeMethod.php +++ b/core/lib/Drupal/Core/PageCache/RequestPolicy/CommandLineOrUnsafeMethod.php @@ -18,7 +18,7 @@ class CommandLineOrUnsafeMethod implements RequestPolicyInterface { * {@inheritdoc} */ public function check(Request $request) { - if ($this->isCli() || !$request->isMethodSafe()) { + if ($this->isCli() || !$request->isMethodCacheable()) { return static::DENY; } } diff --git a/core/lib/Drupal/Core/Render/PlaceholderingRenderCache.php b/core/lib/Drupal/Core/Render/PlaceholderingRenderCache.php index 42562834b8..0422ecf5eb 100644 --- a/core/lib/Drupal/Core/Render/PlaceholderingRenderCache.php +++ b/core/lib/Drupal/Core/Render/PlaceholderingRenderCache.php @@ -93,7 +93,7 @@ public function __construct(RequestStack $request_stack, CacheFactoryInterface $ */ public function get(array $elements) { // @todo remove this check when https://www.drupal.org/node/2367555 lands. - if (!$this->requestStack->getCurrentRequest()->isMethodSafe()) { + if (!$this->requestStack->getCurrentRequest()->isMethodCacheable()) { return FALSE; } @@ -127,7 +127,7 @@ public function set(array &$elements, array $pre_bubbling_elements) { $result = parent::set($elements, $pre_bubbling_elements); // @todo remove this check when https://www.drupal.org/node/2367555 lands. - if (!$this->requestStack->getCurrentRequest()->isMethodSafe()) { + if (!$this->requestStack->getCurrentRequest()->isMethodCacheable()) { return FALSE; } diff --git a/core/lib/Drupal/Core/Render/RenderCache.php b/core/lib/Drupal/Core/Render/RenderCache.php index 12d52e936b..9ac338124c 100644 --- a/core/lib/Drupal/Core/Render/RenderCache.php +++ b/core/lib/Drupal/Core/Render/RenderCache.php @@ -61,9 +61,9 @@ public function __construct(RequestStack $request_stack, CacheFactoryInterface $ public function get(array $elements) { // Form submissions rely on the form being built during the POST request, // and render caching of forms prevents this from happening. - // @todo remove the isMethodSafe() check when + // @todo remove the isMethodCacheable() check when // https://www.drupal.org/node/2367555 lands. - if (!$this->requestStack->getCurrentRequest()->isMethodSafe() || !$cid = $this->createCacheID($elements)) { + if (!$this->requestStack->getCurrentRequest()->isMethodCacheable() || !$cid = $this->createCacheID($elements)) { return FALSE; } $bin = isset($elements['#cache']['bin']) ? $elements['#cache']['bin'] : 'render'; @@ -88,9 +88,9 @@ public function get(array $elements) { public function set(array &$elements, array $pre_bubbling_elements) { // Form submissions rely on the form being built during the POST request, // and render caching of forms prevents this from happening. - // @todo remove the isMethodSafe() check when + // @todo remove the isMethodCacheable() check when // https://www.drupal.org/node/2367555 lands. - if (!$this->requestStack->getCurrentRequest()->isMethodSafe() || !$cid = $this->createCacheID($elements)) { + if (!$this->requestStack->getCurrentRequest()->isMethodCacheable() || !$cid = $this->createCacheID($elements)) { return FALSE; } diff --git a/core/lib/Drupal/Core/Render/Renderer.php b/core/lib/Drupal/Core/Render/Renderer.php index 257349f973..287ffbb1e9 100644 --- a/core/lib/Drupal/Core/Render/Renderer.php +++ b/core/lib/Drupal/Core/Render/Renderer.php @@ -338,9 +338,9 @@ protected function doRender(&$elements, $is_root_call = FALSE) { // If instructed to create a placeholder, and a #lazy_builder callback is // present (without such a callback, it would be impossible to replace the // placeholder), replace the current element with a placeholder. - // @todo remove the isMethodSafe() check when + // @todo remove the isMethodCacheable() check when // https://www.drupal.org/node/2367555 lands. - if (isset($elements['#create_placeholder']) && $elements['#create_placeholder'] === TRUE && $this->requestStack->getCurrentRequest()->isMethodSafe()) { + if (isset($elements['#create_placeholder']) && $elements['#create_placeholder'] === TRUE && $this->requestStack->getCurrentRequest()->isMethodCacheable()) { if (!isset($elements['#lazy_builder'])) { throw new \LogicException('When #create_placeholder is set, a #lazy_builder callback must be present as well.'); } diff --git a/core/lib/Drupal/Core/TypedData/Validation/ExecutionContext.php b/core/lib/Drupal/Core/TypedData/Validation/ExecutionContext.php index c72cd55d40..b691e715c8 100644 --- a/core/lib/Drupal/Core/TypedData/Validation/ExecutionContext.php +++ b/core/lib/Drupal/Core/TypedData/Validation/ExecutionContext.php @@ -21,7 +21,7 @@ class ExecutionContext implements ExecutionContextInterface { /** - * @var \Symfony\Component\Validator\ValidatorInterface + * @var \Symfony\Component\Validator\Validator\ValidatorInterface */ protected $validator; diff --git a/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php b/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php index f967ebaff9..3d9f45cf3e 100644 --- a/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php +++ b/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php @@ -109,7 +109,7 @@ public function processPlaceholders(array $placeholders) { $request = $this->requestStack->getCurrentRequest(); // @todo remove this check when https://www.drupal.org/node/2367555 lands. - if (!$request->isMethodSafe()) { + if (!$request->isMethodCacheable()) { return []; } diff --git a/core/modules/big_pipe/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php b/core/modules/big_pipe/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php index f0f40ba29d..9de09424b8 100644 --- a/core/modules/big_pipe/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php +++ b/core/modules/big_pipe/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php @@ -47,7 +47,7 @@ public function testProcessPlaceholders(array $placeholders, $method, $route_mat $big_pipe_strategy = new BigPipeStrategy($session_configuration->reveal(), $request_stack->reveal(), $route_match->reveal()); $processed_placeholders = $big_pipe_strategy->processPlaceholders($placeholders); - if ($request->isMethodSafe() && !$route_match_has_no_big_pipe_option && $request_has_session) { + if ($request->isMethodCacheable() && !$route_match_has_no_big_pipe_option && $request_has_session) { $this->assertSameSize($expected_big_pipe_placeholders, $processed_placeholders, 'BigPipe is able to deliver all placeholders.'); foreach (array_keys($placeholders) as $placeholder) { $this->assertSame($expected_big_pipe_placeholders[$placeholder], $processed_placeholders[$placeholder], "Verifying how BigPipeStrategy handles the placeholder '$placeholder'"); diff --git a/core/modules/block_content/tests/src/Functional/BlockContentCacheTagsTest.php b/core/modules/block_content/tests/src/Functional/BlockContentCacheTagsTest.php index e00de6b5a9..59f111b965 100644 --- a/core/modules/block_content/tests/src/Functional/BlockContentCacheTagsTest.php +++ b/core/modules/block_content/tests/src/Functional/BlockContentCacheTagsTest.php @@ -76,7 +76,7 @@ public function testBlock() { // Render the block. // @todo The request stack manipulation won't be necessary once // https://www.drupal.org/node/2367555 is fixed and the - // corresponding $request->isMethodSafe() checks are removed from + // corresponding $request->isMethodCacheable() checks are removed from // Drupal\Core\Render\Renderer. $request_stack = $this->container->get('request_stack'); $request_stack->push(new Request()); diff --git a/core/modules/file/config/optional/views.view.files.yml b/core/modules/file/config/optional/views.view.files.yml index e5edee2e40..053b72df45 100644 --- a/core/modules/file/config/optional/views.view.files.yml +++ b/core/modules/file/config/optional/views.view.files.yml @@ -565,7 +565,7 @@ display: decimal: . separator: ',' format_plural: true - format_plural_string: "1 place\x03@count places" + format_plural_string: !!binary MSBwbGFjZQNAY291bnQgcGxhY2Vz prefix: '' suffix: '' plugin_id: numeric @@ -1007,7 +1007,7 @@ display: decimal: . separator: ',' format_plural: false - format_plural_string: "1\x03@count" + format_plural_string: !!binary MQNAY291bnQ= prefix: '' suffix: '' plugin_id: numeric diff --git a/core/modules/node/node.module b/core/modules/node/node.module index 40e5b4e293..466f510001 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -1099,7 +1099,7 @@ function node_query_node_access_alter(AlterableInterface $query) { // context. $request = \Drupal::requestStack()->getCurrentRequest(); $renderer = \Drupal::service('renderer'); - if ($request->isMethodSafe() && $renderer->hasRenderContext()) { + if ($request->isMethodCacheable() && $renderer->hasRenderContext()) { $build = ['#cache' => ['contexts' => ['user.node_grants:' . $op]]]; $renderer->render($build); } diff --git a/core/modules/rest/src/EventSubscriber/ResourceResponseSubscriber.php b/core/modules/rest/src/EventSubscriber/ResourceResponseSubscriber.php index 5cb887bec0..86935ea1cc 100644 --- a/core/modules/rest/src/EventSubscriber/ResourceResponseSubscriber.php +++ b/core/modules/rest/src/EventSubscriber/ResourceResponseSubscriber.php @@ -96,7 +96,7 @@ public function getResponseFormat(RouteMatchInterface $route_match, Request $req $route = $route_match->getRouteObject(); $acceptable_request_formats = $route->hasRequirement('_format') ? explode('|', $route->getRequirement('_format')) : []; $acceptable_content_type_formats = $route->hasRequirement('_content_type_format') ? explode('|', $route->getRequirement('_content_type_format')) : []; - $acceptable_formats = $request->isMethodSafe() ? $acceptable_request_formats : $acceptable_content_type_formats; + $acceptable_formats = $request->isMethodCacheable() ? $acceptable_request_formats : $acceptable_content_type_formats; $requested_format = $request->getRequestFormat(); $content_type_format = $request->getContentType(); diff --git a/core/modules/rest/tests/src/Unit/CollectRoutesTest.php b/core/modules/rest/tests/src/Unit/CollectRoutesTest.php index 3ed6545316..3b1c1f7f39 100644 --- a/core/modules/rest/tests/src/Unit/CollectRoutesTest.php +++ b/core/modules/rest/tests/src/Unit/CollectRoutesTest.php @@ -141,8 +141,8 @@ public function testRoutesRequirements() { $requirements_1 = $this->routes->get('test_1')->getRequirements(); $requirements_2 = $this->routes->get('view.test_view.page_1')->getRequirements(); - $this->assertEquals(count($requirements_1), 0, 'First route has no requirement.'); - $this->assertEquals(count($requirements_2), 2, 'Views route with rest export had the format and method requirements added.'); + $this->assertEquals(0, count($requirements_1), 'First route has no requirement.'); + $this->assertEquals(1, count($requirements_2), 'Views route with rest export had the format requirement added.'); // Check auth options. $auth = $this->routes->get('view.test_view.page_1')->getOption('_auth'); diff --git a/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php b/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php index b16a13119f..d09fdced4c 100644 --- a/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php +++ b/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php @@ -79,11 +79,6 @@ public function providerTestSerialization() { * @dataProvider providerTestResponseFormat */ public function testResponseFormat($methods, array $supported_formats, $request_format, array $request_headers, $request_body, $expected_response_format, $expected_response_content_type, $expected_response_content) { - $parameters = []; - if ($request_format !== FALSE) { - $parameters['_format'] = $request_format; - } - foreach ($request_headers as $key => $value) { unset($request_headers[$key]); $key = strtoupper(str_replace('-', '_', $key)); @@ -91,8 +86,13 @@ public function testResponseFormat($methods, array $supported_formats, $request_ } foreach ($methods as $method) { - $request = Request::create('/rest/test', $method, $parameters, [], [], $request_headers, $request_body); - $route_requirement_key_format = $request->isMethodSafe() ? '_format' : '_content_type_format'; + $request = Request::create('/rest/test', $method, [], [], [], $request_headers, $request_body); + // \Drupal\Core\StackMiddleware\NegotiationMiddleware normally takes care + // of this so we'll hard code it here. + if ($request_format) { + $request->setRequestFormat($request_format); + } + $route_requirement_key_format = $request->isMethodCacheable() ? '_format' : '_content_type_format'; $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $this->randomMachineName()], [$route_requirement_key_format => implode('|', $supported_formats)])); $resource_response_subscriber = new ResourceResponseSubscriber( @@ -116,11 +116,6 @@ public function testResponseFormat($methods, array $supported_formats, $request_ public function testOnResponseWithCacheableResponse($methods, array $supported_formats, $request_format, array $request_headers, $request_body, $expected_response_format, $expected_response_content_type, $expected_response_content) { $rest_config_name = $this->randomMachineName(); - $parameters = []; - if ($request_format !== FALSE) { - $parameters['_format'] = $request_format; - } - foreach ($request_headers as $key => $value) { unset($request_headers[$key]); $key = strtoupper(str_replace('-', '_', $key)); @@ -128,8 +123,13 @@ public function testOnResponseWithCacheableResponse($methods, array $supported_f } foreach ($methods as $method) { - $request = Request::create('/rest/test', $method, $parameters, [], [], $request_headers, $request_body); - $route_requirement_key_format = $request->isMethodSafe() ? '_format' : '_content_type_format'; + $request = Request::create('/rest/test', $method, [], [], [], $request_headers, $request_body); + // \Drupal\Core\StackMiddleware\NegotiationMiddleware normally takes care + // of this so we'll hard code it here. + if ($request_format) { + $request->setRequestFormat($request_format); + } + $route_requirement_key_format = $request->isMethodCacheable() ? '_format' : '_content_type_format'; $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $rest_config_name], [$route_requirement_key_format => implode('|', $supported_formats)])); // The RequestHandler must return a ResourceResponseInterface object. @@ -166,11 +166,6 @@ public function testOnResponseWithCacheableResponse($methods, array $supported_f public function testOnResponseWithUncacheableResponse($methods, array $supported_formats, $request_format, array $request_headers, $request_body, $expected_response_format, $expected_response_content_type, $expected_response_content) { $rest_config_name = $this->randomMachineName(); - $parameters = []; - if ($request_format !== FALSE) { - $parameters['_format'] = $request_format; - } - foreach ($request_headers as $key => $value) { unset($request_headers[$key]); $key = strtoupper(str_replace('-', '_', $key)); @@ -178,8 +173,13 @@ public function testOnResponseWithUncacheableResponse($methods, array $supported } foreach ($methods as $method) { - $request = Request::create('/rest/test', $method, $parameters, [], [], $request_headers, $request_body); - $route_requirement_key_format = $request->isMethodSafe() ? '_format' : '_content_type_format'; + $request = Request::create('/rest/test', $method, [], [], [], $request_headers, $request_body); + // \Drupal\Core\StackMiddleware\NegotiationMiddleware normally takes care + // of this so we'll hard code it here. + if ($request_format) { + $request->setRequestFormat($request_format); + } + $route_requirement_key_format = $request->isMethodCacheable() ? '_format' : '_content_type_format'; $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $rest_config_name], [$route_requirement_key_format => implode('|', $supported_formats)])); // The RequestHandler must return a ResourceResponseInterface object. diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php index f9ae073422..9187012977 100644 --- a/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php +++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php @@ -86,7 +86,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { // that issue. if ($this->getRequest()->get('immutable')) { $form_state->addBuildInfo('immutable', TRUE); - if ($this->getRequest()->get('cache') && $this->getRequest()->isMethodSafe()) { + if ($this->getRequest()->get('cache') && $this->getRequest()->isMethodCacheable()) { $form_state->setRequestMethod('FAKE'); $form_state->setCached(); } diff --git a/core/modules/system/tests/modules/theme_test/src/EventSubscriber/ThemeTestSubscriber.php b/core/modules/system/tests/modules/theme_test/src/EventSubscriber/ThemeTestSubscriber.php index 8ac86f1a94..99fe192308 100644 --- a/core/modules/system/tests/modules/theme_test/src/EventSubscriber/ThemeTestSubscriber.php +++ b/core/modules/system/tests/modules/theme_test/src/EventSubscriber/ThemeTestSubscriber.php @@ -17,7 +17,8 @@ class ThemeTestSubscriber implements EventSubscriberInterface { /** * The used container. * - * @var \Symfony\Component\DependencyInjection\IntrospectableContainerInterface + * @todo This variable is never initialzed, so we don't know what it is. + * See https://www.drupal.org/node/2721315 */ protected $container; diff --git a/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php b/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php index 8aa9d9ac12..ef273cb008 100644 --- a/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php +++ b/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php @@ -664,47 +664,6 @@ public function testInitializedForAliases() { } /** - * Tests that unsupported methods throw an Exception. - * - * @covers ::enterScope - * @covers ::leaveScope - * @covers ::addScope - * @covers ::hasScope - * @covers ::isScopeActive - * - * @expectedException \BadMethodCallException - * - * @dataProvider scopeExceptionTestProvider - */ - public function testScopeFunctionsWithException($method, $argument) { - $callable = [ - $this->container, - $method, - ]; - - $callable($argument); - } - - /** - * Data provider for scopeExceptionTestProvider(). - * - * @return array[] - * Returns per data set an array with: - * - method name to call - * - argument to pass - */ - public function scopeExceptionTestProvider() { - $scope = $this->prophesize('\Symfony\Component\DependencyInjection\ScopeInterface')->reveal(); - return [ - ['enterScope', 'test_scope'], - ['leaveScope', 'test_scope'], - ['hasScope', 'test_scope'], - ['isScopeActive', 'test_scope'], - ['addScope', $scope], - ]; - } - - /** * Tests that Container::getServiceIds() works properly. * * @covers ::getServiceIds diff --git a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php index a899aaa391..cd71e90759 100644 --- a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php +++ b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php @@ -246,7 +246,6 @@ public function getDefinitionsDataProvider() { 'arguments_count' => 0, 'properties' => [], 'calls' => [], - 'scope' => ContainerInterface::SCOPE_CONTAINER, 'shared' => TRUE, 'factory' => FALSE, 'configurator' => FALSE, @@ -359,11 +358,6 @@ public function getDefinitionsDataProvider() { ] + $base_service_definition; $service_definitions[] = [ - 'scope' => ContainerInterface::SCOPE_PROTOTYPE, - 'shared' => FALSE, - ] + $base_service_definition; - - $service_definitions[] = [ 'shared' => FALSE, ] + $base_service_definition; @@ -405,7 +399,6 @@ public function getDefinitionsDataProvider() { $definition->getArguments()->willReturn($service_definition['arguments']); $definition->getProperties()->willReturn($service_definition['properties']); $definition->getMethodCalls()->willReturn($service_definition['calls']); - $definition->getScope()->willReturn($service_definition['scope']); $definition->isShared()->willReturn($service_definition['shared']); $definition->getDecoratedService()->willReturn(NULL); $definition->getFactory()->willReturn($service_definition['factory']); @@ -438,9 +431,6 @@ public function getDefinitionsDataProvider() { } } - // Remove any remaining scope. - unset($filtered_service_definition['scope']); - if (isset($filtered_service_definition['public']) && $filtered_service_definition['public'] === FALSE) { $services_provided[] = [ ['foo_service' => $definition->reveal()], @@ -479,22 +469,6 @@ protected function getServiceCall($id, $invalid_behavior = ContainerInterface::E } /** - * Tests that the correct InvalidArgumentException is thrown for getScope(). - * - * @covers ::getServiceDefinition - * - * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException - */ - public function testGetServiceDefinitionWithInvalidScope() { - $bar_definition = new Definition('\stdClass'); - $bar_definition->setScope('foo_scope'); - $services['bar'] = $bar_definition; - - $this->containerBuilder->getDefinitions()->willReturn($services); - $this->dumper->getArray(); - } - - /** * Tests that references to aliases work correctly. * * @covers ::getReferenceCall diff --git a/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php b/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php index 7bc2382b1f..ea0685a717 100644 --- a/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php +++ b/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php @@ -6,9 +6,10 @@ use Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\Tests\CallableClass; -use Symfony\Component\EventDispatcher\Tests\TestEventListener; use Symfony\Component\EventDispatcher\Tests\ContainerAwareEventDispatcherTest as SymfonyContainerAwareEventDispatcherTest; +use Symfony\Component\EventDispatcher\Tests\TestEventListener; /** * Unit tests for the ContainerAwareEventDispatcher. @@ -37,7 +38,7 @@ public function testGetListenersWithCallables() // When passing in callables exclusively as listeners into the event // dispatcher constructor, the event dispatcher must not attempt to // resolve any services. - $container = $this->getMock('Symfony\Component\DependencyInjection\IntrospectableContainerInterface'); + $container = $this->getMock(ContainerInterface::class); $container->expects($this->never())->method($this->anything()); $firstListener = new CallableClass(); @@ -72,7 +73,7 @@ public function testDispatchWithCallables() // When passing in callables exclusively as listeners into the event // dispatcher constructor, the event dispatcher must not attempt to // resolve any services. - $container = $this->getMock('Symfony\Component\DependencyInjection\IntrospectableContainerInterface'); + $container = $this->getMock(ContainerInterface::class); $container->expects($this->never())->method($this->anything()); $firstListener = new CallableClass(); diff --git a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php index b765af8a69..b75b20323b 100644 --- a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php @@ -10,6 +10,7 @@ use Drupal\Core\TypedData\TypedDataManagerInterface; use Drupal\Tests\UnitTestCase; use Drupal\Core\Language\Language; +use Symfony\Component\Validator\Validator\ValidatorInterface; /** * @coversDefaultClass \Drupal\Core\Entity\ContentEntityBase @@ -327,7 +328,7 @@ public function testPreSaveRevision() { * @covers ::validate */ public function testValidate() { - $validator = $this->getMock('\Symfony\Component\Validator\ValidatorInterface'); + $validator = $this->getMock(ValidatorInterface::class); /** @var \Symfony\Component\Validator\ConstraintViolationList|\PHPUnit_Framework_MockObject_MockObject $empty_violation_list */ $empty_violation_list = $this->getMockBuilder('\Symfony\Component\Validator\ConstraintViolationList') ->setMethods(NULL) @@ -363,7 +364,7 @@ public function testValidate() { * @expectedExceptionMessage Entity validation was skipped. */ public function testRequiredValidation() { - $validator = $this->getMock('\Symfony\Component\Validator\ValidatorInterface'); + $validator = $this->getMock(ValidatorInterface::class); /** @var \Symfony\Component\Validator\ConstraintViolationList|\PHPUnit_Framework_MockObject_MockObject $empty_violation_list */ $empty_violation_list = $this->getMockBuilder('\Symfony\Component\Validator\ConstraintViolationList') ->setMethods(NULL) diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/DefaultExceptionSubscriberTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/DefaultExceptionSubscriberTest.php index 6582500ee6..b21d5830a0 100644 --- a/core/tests/Drupal/Tests/Core/EventSubscriber/DefaultExceptionSubscriberTest.php +++ b/core/tests/Drupal/Tests/Core/EventSubscriber/DefaultExceptionSubscriberTest.php @@ -24,7 +24,10 @@ public function testOnExceptionWithUnknownFormat() { $config_factory = $this->getConfigFactoryStub(); $kernel = $this->prophesize(HttpKernelInterface::class); - $request = Request::create('/test?_format=bananas'); + $request = Request::create('/test'); + // \Drupal\Core\StackMiddleware\NegotiationMiddleware normally takes care + // of this so we'll hard code it here. + $request->setRequestFormat('bananas'); $e = new MethodNotAllowedHttpException(['POST', 'PUT'], 'test message'); $event = new GetResponseForExceptionEvent($kernel->reveal(), $request, 'GET', $e); $subscriber = new DefaultExceptionSubscriber($config_factory);