diff --git a/composer.lock b/composer.lock index 8e3de74..a800dea 100644 --- a/composer.lock +++ b/composer.lock @@ -891,48 +891,6 @@ "time": "2016-06-24 23:00:38" }, { - "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-20 16:49:30" - }, - { "name": "masterminds/html5", "version": "2.2.1", "source": { @@ -1242,29 +1200,32 @@ }, { "name": "symfony/class-loader", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "7d362c22710980730d46a5d039e788946a2938cb" + "reference": "bcb072aba46ddf3b1a496438c63be6be647739aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/7d362c22710980730d46a5d039e788946a2938cb", - "reference": "7d362c22710980730d46a5d039e788946a2938cb", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/bcb072aba46ddf3b1a496438c63be6be647739aa", + "reference": "bcb072aba46ddf3b1a496438c63be6be647739aa", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-apcu": "~1.1" + "php": ">=5.5.9" }, "require-dev": { - "symfony/finder": "~2.0,>=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.1-dev" } }, "autoload": { @@ -1291,30 +1252,31 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2016-03-10 19:33:53" + "time": "2016-09-06 23:30:54" }, { "name": "symfony/console", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9a5aef5fc0d4eff86853d44202b02be8d5a20154" + "reference": "c99da1119ae61e15de0e4829196b9fba6f73d065" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9a5aef5fc0d4eff86853d44202b02be8d5a20154", - "reference": "9a5aef5fc0d4eff86853d44202b02be8d5a20154", + "url": "https://api.github.com/repos/symfony/console/zipball/c99da1119ae61e15de0e4829196b9fba6f73d065", + "reference": "c99da1119ae61e15de0e4829196b9fba6f73d065", "shasum": "" }, "require": { - "php": ">=5.3.9", + "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/process": "~2.8|~3.0" }, "suggest": { "psr/log": "For using the console logger", @@ -1324,7 +1286,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1351,43 +1313,46 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2016-03-17 09:19:04" + "time": "2016-10-06 01:44:51" }, { "name": "symfony/debug", - "version": "v2.7.6", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "fb9e6887db716939f41af0ba8ef38a1582eb501b" + "reference": "e2b3f74a67fc928adc3c1b9027f73e1bc01190a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/fb9e6887db716939f41af0ba8ef38a1582eb501b", - "reference": "fb9e6887db716939f41af0ba8ef38a1582eb501b", + "url": "https://api.github.com/repos/symfony/debug/zipball/e2b3f74a67fc928adc3c1b9027f73e1bc01190a8", + "reference": "e2b3f74a67fc928adc3c1b9027f73e1bc01190a8", "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", - "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2" + "symfony/class-loader": "~2.8|~3.0", + "symfony/http-kernel": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "3.1-dev" } }, "autoload": { "psr-4": { "Symfony\\Component\\Debug\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1405,42 +1370,40 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2015-10-11 09:39:48" + "time": "2016-09-06 11:02:40" }, { "name": "symfony/dependency-injection", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "f7b4a498e679fa440b16facb934680a1527ed48c" + "reference": "c578891216090069cd6d2e573402e13e39b3ad5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f7b4a498e679fa440b16facb934680a1527ed48c", - "reference": "f7b4a498e679fa440b16facb934680a1527ed48c", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c578891216090069cd6d2e573402e13e39b3ad5c", + "reference": "c578891216090069cd6d2e573402e13e39b3ad5c", "shasum": "" }, "require": { - "php": ">=5.3.9" - }, - "conflict": { - "symfony/expression-language": "<2.6" + "php": ">=5.5.9" }, "require-dev": { - "symfony/config": "~2.2|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/yaml": "~2.1|~3.0.0" + "symfony/config": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/yaml": "~2.8.7|~3.0.7|~3.1.1|~3.2" }, "suggest": { "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", "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.1-dev" } }, "autoload": { @@ -1467,28 +1430,28 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2016-03-21 07:27:21" + "time": "2016-10-24 15:52:44" }, { "name": "symfony/dom-crawler", - "version": "v2.8.13", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "a94f3fe6f179d6453e5ed8188cf4bfdf933d85f4" + "reference": "59eee3c76eb89f21857798620ebdad7a05ad14f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/a94f3fe6f179d6453e5ed8188cf4bfdf933d85f4", - "reference": "a94f3fe6f179d6453e5ed8188cf4bfdf933d85f4", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/59eee3c76eb89f21857798620ebdad7a05ad14f4", + "reference": "59eee3c76eb89f21857798620ebdad7a05ad14f4", "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": "" @@ -1496,7 +1459,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1523,31 +1486,31 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2016-10-18 15:35:45" + "time": "2016-10-18 15:46:07" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "47d2d8cade9b1c3987573d2943bb9352536cdb87" + "reference": "28b0832b2553ffb80cabef6a7a812ff1e670c0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/47d2d8cade9b1c3987573d2943bb9352536cdb87", - "reference": "47d2d8cade9b1c3987573d2943bb9352536cdb87", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/28b0832b2553ffb80cabef6a7a812ff1e670c0bc", + "reference": "28b0832b2553ffb80cabef6a7a812ff1e670c0bc", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.0,>=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": "", @@ -1556,7 +1519,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1583,35 +1546,33 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2016-03-07 14:04:32" + "time": "2016-10-13 06:28:43" }, { "name": "symfony/http-foundation", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "06d6b2c755b2f34ce21e688b62072e9c625709c4" + "reference": "f21e5a8b88274b7720779aa88f9c02c6d6ec08d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/06d6b2c755b2f34ce21e688b62072e9c625709c4", - "reference": "06d6b2c755b2f34ce21e688b62072e9c625709c4", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f21e5a8b88274b7720779aa88f9c02c6d6ec08d7", + "reference": "f21e5a8b88274b7720779aa88f9c02c6d6ec08d7", "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.1-dev" } }, "autoload": { @@ -1638,48 +1599,48 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2016-03-27 12:57:53" + "time": "2016-10-24 15:52:44" }, { "name": "symfony/http-kernel", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2c45576fee2eb228d4771342a05b0565e4711ba2" + "reference": "c235f1b13ba67012e283996a5427f22e2e04be14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2c45576fee2eb228d4771342a05b0565e4711ba2", - "reference": "2c45576fee2eb228d4771342a05b0565e4711ba2", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c235f1b13ba67012e283996a5427f22e2e04be14", + "reference": "c235f1b13ba67012e283996a5427f22e2e04be14", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": ">=5.5.9", "psr/log": "~1.0", - "symfony/debug": "~2.6,>=2.6.2", - "symfony/event-dispatcher": "~2.6,>=2.6.7|~3.0.0", - "symfony/http-foundation": "~2.5,>=2.5.4|~3.0.0" + "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,>=2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.8|~3.0.0", - "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/finder": "~2.0,>=2.0.5|~3.0.0", - "symfony/process": "~2.0,>=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,>=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": "~2.8|~3.0" }, "suggest": { "symfony/browser-kit": "", @@ -1693,7 +1654,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1720,73 +1681,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2016-03-25 01:40:30" - }, - { - "name": "symfony/polyfill-apcu", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "0c901e4e65a2f7ece68f0fd249b56d6ad3adc214" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/0c901e4e65a2f7ece68f0fd249b56d6ad3adc214", - "reference": "0c901e4e65a2f7ece68f0fd249b56d6ad3adc214", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-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-03-03 16:49:40" + "time": "2016-10-27 02:38:31" }, { "name": "symfony/polyfill-iconv", - "version": "v1.1.1", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "08e3b8768d785ba7f271ef94906d50f7efe72ce8" + "reference": "b287e8554b1ffd9b5b20b5df940d906930ff4a10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/08e3b8768d785ba7f271ef94906d50f7efe72ce8", - "reference": "08e3b8768d785ba7f271ef94906d50f7efe72ce8", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b287e8554b1ffd9b5b20b5df940d906930ff4a10", + "reference": "b287e8554b1ffd9b5b20b5df940d906930ff4a10", "shasum": "" }, "require": { @@ -1798,7 +1706,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -1832,20 +1740,20 @@ "portable", "shim" ], - "time": "2016-02-26 11:31:02" + "time": "2016-05-18 14:26:46" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.1.0", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "1289d16209491b584839022f29257ad859b8532d" + "reference": "dff51f72b0706335131b00a7f49606168c582594" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", - "reference": "1289d16209491b584839022f29257ad859b8532d", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", + "reference": "dff51f72b0706335131b00a7f49606168c582594", "shasum": "" }, "require": { @@ -1857,7 +1765,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -1891,143 +1799,29 @@ "portable", "shim" ], - "time": "2016-01-20 09:13:37" - }, - { - "name": "symfony/polyfill-php54", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php54.git", - "reference": "74663d5a2ff3c530c1bc0571500e0feec9094054" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/74663d5a2ff3c530c1bc0571500e0feec9094054", - "reference": "74663d5a2ff3c530c1bc0571500e0feec9094054", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-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-01-20 09:13:37" - }, - { - "name": "symfony/polyfill-php55", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php55.git", - "reference": "b4f3f07d91702f8f926339fc4fcf81671d8c27e6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/b4f3f07d91702f8f926339fc4fcf81671d8c27e6", - "reference": "b4f3f07d91702f8f926339fc4fcf81671d8c27e6", - "shasum": "" - }, - "require": { - "ircmaxell/password-compat": "~1.0", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-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-01-20 09:13:37" + "time": "2016-05-18 14:26:46" }, { "name": "symfony/process", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "fb467471952ef5cf8497c029980e556b47545333" + "reference": "66de154ae86b1a07001da9fbffd620206e4faf94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/fb467471952ef5cf8497c029980e556b47545333", - "reference": "fb467471952ef5cf8497c029980e556b47545333", + "url": "https://api.github.com/repos/symfony/process/zipball/66de154ae86b1a07001da9fbffd620206e4faf94", + "reference": "66de154ae86b1a07001da9fbffd620206e4faf94", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -2054,7 +1848,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2016-03-23 13:11:46" + "time": "2016-09-29 14:13:09" }, { "name": "symfony/psr-http-message-bridge", @@ -2112,32 +1906,32 @@ }, { "name": "symfony/routing", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "d7d4a20cb55a90a06c0070d1a360e5ac606306ef" + "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/d7d4a20cb55a90a06c0070d1a360e5ac606306ef", - "reference": "d7d4a20cb55a90a06c0070d1a360e5ac606306ef", + "url": "https://api.github.com/repos/symfony/routing/zipball/8edf62498a1a4c57ba317664a4b698339c10cdf6", + "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6", "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,>=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", @@ -2150,7 +1944,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -2183,44 +1977,53 @@ "uri", "url" ], - "time": "2016-03-23 13:11:46" + "time": "2016-08-16 14:58:24" }, { "name": "symfony/serializer", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "e848750ceffdc4af374844c338c299627a98196a" + "reference": "2d2b0866397b870e307ca5f9923c89b1c8c25a42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/e848750ceffdc4af374844c338c299627a98196a", - "reference": "e848750ceffdc4af374844c338c299627a98196a", + "url": "https://api.github.com/repos/symfony/serializer/zipball/2d2b0866397b870e307ca5f9923c89b1c8c25a42", + "reference": "2d2b0866397b870e307ca5f9923c89b1c8c25a42", "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" }, "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,>=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": "~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.", + "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.1-dev" } }, "autoload": { @@ -2247,34 +2050,34 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2016-03-07 14:04:32" + "time": "2016-10-07 16:40:45" }, { "name": "symfony/translation", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "d60b8e076d22953aabebeebda53bf334438e7aca" + "reference": "ff1285087397d2f64041b35e591f3025881c90cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/d60b8e076d22953aabebeebda53bf334438e7aca", - "reference": "d60b8e076d22953aabebeebda53bf334438e7aca", + "url": "https://api.github.com/repos/symfony/translation/zipball/ff1285087397d2f64041b35e591f3025881c90cd", + "reference": "ff1285087397d2f64041b35e591f3025881c90cd", "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.4|~3.0.0", - "symfony/yaml": "~2.2|~3.0.0" + "symfony/config": "~2.8|~3.0", + "symfony/intl": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" }, "suggest": { "psr/log": "To use logging capability in translator", @@ -2284,7 +2087,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -2311,52 +2114,54 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2016-03-25 01:40:30" + "time": "2016-10-18 04:30:12" }, { "name": "symfony/validator", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "ea0ce99531c9eb82abf21011da4e111932f8ce81" + "reference": "709dffa9193ee2b88e1fb1760cc0ba5780f1a8b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/ea0ce99531c9eb82abf21011da4e111932f8ce81", - "reference": "ea0ce99531c9eb82abf21011da4e111932f8ce81", + "url": "https://api.github.com/repos/symfony/validator/zipball/709dffa9193ee2b88e1fb1760cc0ba5780f1a8b2", + "reference": "709dffa9193ee2b88e1fb1760cc0ba5780f1a8b2", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/translation": "~2.4|~3.0.0" + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation": "~2.8|~3.0" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", "egulias/email-validator": "~1.2,>=1.2.1", - "symfony/config": "~2.2|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/http-foundation": "~2.1|~3.0.0", - "symfony/intl": "~2.7.4|~2.8|~3.0.0", - "symfony/property-access": "~2.3|~3.0.0", - "symfony/yaml": "~2.0,>=2.0.5|~3.0.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|~3.0", + "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.1-dev" } }, "autoload": { @@ -2383,29 +2188,29 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2016-03-27 12:57:53" + "time": "2016-10-19 22:38:53" }, { "name": "symfony/yaml", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "584e52cb8f788a887553ba82db6caacb1d6260bb" + "reference": "7ff51b06c6c3d5cc6686df69004a42c69df09e27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/584e52cb8f788a887553ba82db6caacb1d6260bb", - "reference": "584e52cb8f788a887553ba82db6caacb1d6260bb", + "url": "https://api.github.com/repos/symfony/yaml/zipball/7ff51b06c6c3d5cc6686df69004a42c69df09e27", + "reference": "7ff51b06c6c3d5cc6686df69004a42c69df09e27", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -2432,7 +2237,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:54:35" + "time": "2016-10-24 18:41:13" }, { "name": "twig/twig", @@ -4099,25 +3904,25 @@ }, { "name": "symfony/browser-kit", - "version": "v2.7.6", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "07d664a052572ccc28eb2ab7dbbe82155b1ad367" + "reference": "901319a31c9b3cee7857b4aeeb81b5d64dfa34fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/07d664a052572ccc28eb2ab7dbbe82155b1ad367", - "reference": "07d664a052572ccc28eb2ab7dbbe82155b1ad367", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/901319a31c9b3cee7857b4aeeb81b5d64dfa34fc", + "reference": "901319a31c9b3cee7857b4aeeb81b5d64dfa34fc", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/dom-crawler": "~2.0,>=2.0.5" + "php": ">=5.5.9", + "symfony/dom-crawler": "~2.8|~3.0" }, "require-dev": { - "symfony/css-selector": "~2.0,>=2.0.5", - "symfony/process": "~2.3.34|~2.7,>=2.7.6" + "symfony/css-selector": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0" }, "suggest": { "symfony/process": "" @@ -4125,13 +3930,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "3.1-dev" } }, "autoload": { "psr-4": { "Symfony\\Component\\BrowserKit\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4149,29 +3957,29 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2015-10-23 14:47:27" + "time": "2016-09-06 11:02:40" }, { "name": "symfony/css-selector", - "version": "v2.8.4", + "version": "v3.1.6", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "07b7ced3ae0c12918477c095453ea8595000810e" + "reference": "ca809c64072e0fe61c1c7fb3c76cdc32265042ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/07b7ced3ae0c12918477c095453ea8595000810e", - "reference": "07b7ced3ae0c12918477c095453ea8595000810e", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ca809c64072e0fe61c1c7fb3c76cdc32265042ac", + "reference": "ca809c64072e0fe61c1c7fb3c76cdc32265042ac", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -4202,7 +4010,7 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:54:35" + "time": "2016-09-06 11:02:40" } ], "aliases": [], diff --git a/core/composer.json b/core/composer.json index 7ae0ccf..7d8ddcf 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.1", + "symfony/console": "~3.1", + "symfony/dependency-injection": "~3.1", + "symfony/dom-crawler": ">=3.1.6 <4.0", + "symfony/event-dispatcher": "~3.1", + "symfony/http-foundation": "~3.1", + "symfony/http-kernel": "~3.1", + "symfony/routing": "~3.1", + "symfony/serializer": "~3.1", + "symfony/translation": "~3.1", + "symfony/validator": "~3.1", + "symfony/process": "~3.1", "symfony/polyfill-iconv": "~1.0", - "symfony/yaml": "~2.8", + "symfony/yaml": "~3.1", "twig/twig": "^1.23.1", "doctrine/common": "2.5.*", "doctrine/annotations": "1.2.*", @@ -42,7 +42,7 @@ "jcalderonzumba/mink-phantomjs-driver": "~0.3.1", "mikey179/vfsStream": "~1.2", "phpunit/phpunit": "~4.8", - "symfony/css-selector": "~2.8" + "symfony/css-selector": "~3.1" }, "replace": { "drupal/action": "self.version", diff --git a/core/lib/Drupal/Component/DependencyInjection/Container.php b/core/lib/Drupal/Component/DependencyInjection/Container.php index 452a2c8..6fde12d 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; @@ -50,7 +48,7 @@ * * @ingroup container */ -class Container implements IntrospectableContainerInterface, ResettableContainerInterface { +class Container implements ContainerInterface, ResettableContainerInterface { /** * The parameters of the container. @@ -361,11 +359,7 @@ protected function createService(array $definition, $id) { /** * {@inheritdoc} */ - public function set($id, $service, $scope = ContainerInterface::SCOPE_CONTAINER) { - if (!in_array($scope, array('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 +581,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 984ec50..0a719d2 100644 --- a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php +++ b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php @@ -236,18 +236,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/EventDispatcher/ContainerAwareEventDispatcher.php b/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php index a933b06..dcd724d 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 2383bf8..ec48a29 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 8818e52..390178f 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 4a49122..5643363 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 e45cb88..e0becc7 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/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index 274a3fa..e9e684a 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -152,6 +152,13 @@ class DrupalKernel implements DrupalKernelInterface, TerminableInterface { protected $classLoader; /** + * The class loader class before including settings.php. + * + * @var string + */ + protected $preSettingsClassLoaderClass; + + /** * Config storage object used for reading enabled modules configuration. * * @var \Drupal\Core\Config\StorageInterface @@ -890,6 +897,34 @@ protected function initializeContainer() { $container = new $class($container_definition); } + // If the class loader is still the as before including settings.php use + // an optimised classloader if possible. + if ($this->preSettingsClassLoaderClass == get_class($this->classLoader) + && Settings::get('class_loader_auto_detect', TRUE)) { + $prefix = Settings::getApcuPrefix('class_loader', $this->root); + // We have to key by module list since if this changes the classloader + // might have negative caches for classes that now exist. + $prefix .= '.' . hash('sha1', serialize(array_keys($container->getParameter('container.modules')))); + $loader = NULL; + + // We autodetect one of the following three optimized classloaders, if + // their underlying extension exists. + if (function_exists('apcu_fetch')) { + $loader = new ApcClassLoader($prefix, $this->classLoader); + } + elseif (extension_loaded('wincache')) { + $loader = new WinCacheClassLoader($prefix, $this->classLoader); + } + elseif (extension_loaded('xcache')) { + $loader = new XcacheClassLoader($prefix, $this->classLoader); + } + if (!empty($loader)) { + $this->classLoader->unregister(); + $loader->register(); + $this->classLoader = $loader; + } + } + $this->attachSynthetic($container); $this->container = $container; @@ -1018,7 +1053,7 @@ public static function bootEnvironment($app_root = NULL) { protected function initializeSettings(Request $request) { $site_path = static::findSitePath($request); $this->setSitePath($site_path); - $class_loader_class = get_class($this->classLoader); + $this->preSettingsClassLoaderClass = get_class($this->classLoader); Settings::initialize($this->root, $site_path, $this->classLoader); // Initialize our list of trusted HTTP Host headers to protect against @@ -1029,31 +1064,6 @@ protected function initializeSettings(Request $request) { throw new BadRequestHttpException('The provided host name is not valid for this server.'); } } - - // If the class loader is still the same, possibly - // upgrade to an optimized class loader. - if ($class_loader_class == get_class($this->classLoader) - && Settings::get('class_loader_auto_detect', TRUE)) { - $prefix = Settings::getApcuPrefix('class_loader', $this->root); - $loader = NULL; - - // We autodetect one of the following three optimized classloaders, if - // their underlying extension exists. - if (function_exists('apcu_fetch')) { - $loader = new ApcClassLoader($prefix, $this->classLoader); - } - elseif (extension_loaded('wincache')) { - $loader = new WinCacheClassLoader($prefix, $this->classLoader); - } - elseif (extension_loaded('xcache')) { - $loader = new XcacheClassLoader($prefix, $this->classLoader); - } - if (!empty($loader)) { - $this->classLoader->unregister(); - $loader->register(); - $this->classLoader = $loader; - } - } } /** diff --git a/core/lib/Drupal/Core/TypedData/Validation/ExecutionContext.php b/core/lib/Drupal/Core/TypedData/Validation/ExecutionContext.php index a20fa52..100718e 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/config/src/Tests/ConfigImportAllTest.php b/core/modules/config/src/Tests/ConfigImportAllTest.php index baeacb9..bba40f3 100644 --- a/core/modules/config/src/Tests/ConfigImportAllTest.php +++ b/core/modules/config/src/Tests/ConfigImportAllTest.php @@ -144,6 +144,12 @@ public function testInstallUninstall() { $this->container->get('config.storage'), $this->container->get('config.manager') ); + $changelist = $storage_comparer->createChangelist()->getChangelist(); + foreach ($changelist['update'] as $config_name) { + $diff = \Drupal::service('config.manager')->diff($this->container->get('config.storage'), $this->container->get('config.storage.sync'), $config_name); + // This will fail... but then we get to see the differences. + $this->assertEqual('', $this->container->get('diff.formatter')->format($diff)); + } $this->assertIdentical($storage_comparer->createChangelist()->getChangelist(), $storage_comparer->getEmptyChangelist()); // Now we have all configuration imported, test all of them for schema diff --git a/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php b/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php index 12e0216..8aae6e2 100644 --- a/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php +++ b/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php @@ -198,6 +198,12 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $form_values = $form_state->getValue(array('translation', 'config_names')); foreach ($this->mapper->getConfigNames() as $name) { + + // Skip the config if it does not have translatable data. + if (!isset($form_values[$name])) { + continue; + } + $schema = $this->typedConfigManager->get($name); // Set configuration values based on form submission and source values. diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php index b69357e..2e15209 100644 --- a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php +++ b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php @@ -12,6 +12,7 @@ use Drupal\field\Entity\FieldStorageConfig; use Drupal\filter\Entity\FilterFormat; use Drupal\language\Entity\ConfigurableLanguage; +use Drupal\node\Entity\NodeType; use Drupal\simpletest\WebTestBase; /** @@ -764,6 +765,40 @@ public function testFieldConfigTranslation() { } /** + * Tests field translation for node fields. + */ + public function testNodeFieldTranslation() { + NodeType::create(['type' => 'article', 'name' => 'Article'])->save(); + + $field_name = 'translatable_field'; + $field_storage = FieldStorageConfig::create([ + 'field_name' => $field_name, + 'entity_type' => 'node', + 'type' => 'text', + ]); + + $field_storage->setSetting('translatable_storage_setting', 'translatable_storage_setting'); + $field_storage->save(); + $field = FieldConfig::create([ + 'field_name' => $field_name, + 'entity_type' => 'node', + 'bundle' => 'article', + ]); + $field->save(); + + $this->drupalLogin($this->translatorUser); + + $this->drupalGet("/entity_test/structure/article/fields/node.article.$field_name/translate"); + $this->clickLink('Add'); + + $form_values = [ + 'translation[config_names][field.field.node.article.translatable_field][description]' => 'FR Help text.', + 'translation[config_names][field.field.node.article.translatable_field][label]' => 'FR label', + ]; + $this->drupalPostForm(NULL, $form_values, 'Save translation'); + } + + /** * Tests the translation of a boolean field settings. */ public function testBooleanFieldConfigTranslation() { diff --git a/core/modules/file/config/optional/views.view.files.yml b/core/modules/file/config/optional/views.view.files.yml index e5edee2..053b72d 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/rest/tests/src/Unit/CollectRoutesTest.php b/core/modules/rest/tests/src/Unit/CollectRoutesTest.php index c55ea3b..5c4de33 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 87c9059..9d7737d 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,7 +86,10 @@ public function testResponseFormat($methods, array $supported_formats, $request_ } foreach ($methods as $method) { - $request = Request::create('/rest/test', $method, $parameters, [], [], $request_headers, $request_body); + $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. + $request->setRequestFormat($request_format); $route_requirement_key_format = $request->isMethodSafe() ? '_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)])); @@ -116,11 +114,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,7 +121,10 @@ public function testOnResponseWithCacheableResponse($methods, array $supported_f } foreach ($methods as $method) { - $request = Request::create('/rest/test', $method, $parameters, [], [], $request_headers, $request_body); + $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. + $request->setRequestFormat($request_format); $route_requirement_key_format = $request->isMethodSafe() ? '_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)])); @@ -166,11 +162,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,7 +169,10 @@ public function testOnResponseWithUncacheableResponse($methods, array $supported } foreach ($methods as $method) { - $request = Request::create('/rest/test', $method, $parameters, [], [], $request_headers, $request_body); + $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. + $request->setRequestFormat($request_format); $route_requirement_key_format = $request->isMethodSafe() ? '_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)])); 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 d5f9110..bc8d1d0 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 3c89804..eb7eb1b 100644 --- a/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php +++ b/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php @@ -663,47 +663,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 = array( - $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 array( - array('enterScope', 'test_scope'), - array('leaveScope', 'test_scope'), - array('hasScope', 'test_scope'), - array('isScopeActive', 'test_scope'), - array('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 49b6556..cc4c630 100644 --- a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php +++ b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php @@ -245,7 +245,6 @@ public function getDefinitionsDataProvider() { 'arguments_count' => 0, 'properties' => array(), 'calls' => array(), - 'scope' => ContainerInterface::SCOPE_CONTAINER, 'shared' => TRUE, 'factory' => FALSE, 'configurator' => FALSE, @@ -358,11 +357,6 @@ public function getDefinitionsDataProvider() { ) + $base_service_definition; $service_definitions[] = array( - 'scope' => ContainerInterface::SCOPE_PROTOTYPE, - 'shared' => FALSE, - ) + $base_service_definition; - - $service_definitions[] = array( 'shared' => FALSE, ) + $base_service_definition; @@ -404,7 +398,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']); @@ -437,9 +430,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[] = array( array('foo_service' => $definition->reveal()), @@ -478,22 +468,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 7bc2382..ea0685a 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 cb73533..24e23dd 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 @@ -321,7 +322,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) @@ -357,7 +358,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 541d136..61f0cd1 100644 --- a/core/tests/Drupal/Tests/Core/EventSubscriber/DefaultExceptionSubscriberTest.php +++ b/core/tests/Drupal/Tests/Core/EventSubscriber/DefaultExceptionSubscriberTest.php @@ -25,7 +25,10 @@ public function testOnExceptionWithUnknownFormat() { // Format 'bananas' requested, yet only 'json' allowed. $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(['json'], 'test message'); $event = new GetResponseForExceptionEvent($kernel->reveal(), $request, 'GET', $e); $subscriber = new DefaultExceptionSubscriber($config_factory); diff --git a/core/tests/Drupal/Tests/Core/PageCache/CommandLineOrUnsafeMethodTest.php b/core/tests/Drupal/Tests/Core/PageCache/CommandLineOrUnsafeMethodTest.php index 2f62f1e..6dc465d 100644 --- a/core/tests/Drupal/Tests/Core/PageCache/CommandLineOrUnsafeMethodTest.php +++ b/core/tests/Drupal/Tests/Core/PageCache/CommandLineOrUnsafeMethodTest.php @@ -54,8 +54,8 @@ public function providerTestHttpMethod() { [RequestPolicyInterface::DENY, 'POST'], [RequestPolicyInterface::DENY, 'PUT'], [RequestPolicyInterface::DENY, 'DELETE'], - [RequestPolicyInterface::DENY, 'OPTIONS'], - [RequestPolicyInterface::DENY, 'TRACE'], + [NULL, 'OPTIONS'], + [NULL, 'TRACE'], [RequestPolicyInterface::DENY, 'CONNECT'], ]; }