Updating Symfony lib and dependencies:

Package operations: 2 installs, 23 updates, 0 removals
  - Updating psr/log (1.1.0 => 1.1.2)
  - Updating symfony/debug (v3.4.30 => v3.4.35)
  - Updating symfony/console (v3.4.30 => v3.4.35)
  - Updating symfony/dotenv (v3.4.30 => v3.4.35)
  - Updating symfony/routing (v3.4.30 => v3.4.35)
  - Updating symfony/finder (v3.4.30 => v3.4.35)
  - Updating symfony/filesystem (v3.4.30 => v3.4.35)
  - Installing symfony/polyfill-util (v1.12.0)
  - Installing symfony/polyfill-php56 (v1.12.0)
  - Updating symfony/http-foundation (v3.4.30 => v3.4.35)
  - Updating symfony/event-dispatcher (v3.4.30 => v3.4.35)
  - Updating symfony/http-kernel (v3.4.30 => v3.4.35)
  - Updating symfony/config (v3.4.30 => v3.4.35)
  - Updating symfony/dependency-injection (v3.4.30 => v3.4.35)
  - Updating symfony/class-loader (v3.4.30 => v3.4.35)
  - Updating symfony/cache (v3.4.30 => v3.4.35)
  - Updating symfony/framework-bundle (v3.4.30 => v3.4.35)
  - Updating twig/twig (v1.42.2 => v1.42.4)
  - Updating symfony/twig-bridge (v3.4.30 => v3.4.35)
  - Updating symfony/twig-bundle (v3.4.30 => v3.4.35)
  - Updating symfony/yaml (v3.4.30 => v3.4.35)
  - Updating symfony/stopwatch (v3.4.30 => v3.4.35)
  - Updating symfony/var-dumper (v3.4.30 => v3.4.35)
  - Updating symfony/web-profiler-bundle (v3.4.30 => v3.4.35)
  - Updating symfony/css-selector (v3.4.30 => v3.4.35)
This commit is contained in:
Molkobain
2019-11-18 18:04:32 +01:00
parent 532eb466a1
commit c76cccd2e7
633 changed files with 4154 additions and 4093 deletions

View File

@@ -8,6 +8,7 @@ $baseDir = dirname($vendorDir);
return array(
'AbstractLoginFSMExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractPortalUIExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractWeeklyScheduledProcess' => $baseDir . '/core/backgroundprocess.inc.php',
'Action' => $baseDir . '/core/action.class.inc.php',
'ActionChecker' => $baseDir . '/core/userrights.class.inc.php',
'ActionEmail' => $baseDir . '/core/action.class.inc.php',
@@ -364,6 +365,7 @@ return array(
'PrintableDataTable' => $baseDir . '/application/datatable.class.inc.php',
'ProcessException' => $baseDir . '/core/backgroundprocess.inc.php',
'ProcessFatalException' => $baseDir . '/core/backgroundprocess.inc.php',
'ProcessInvalidConfigException' => $baseDir . '/core/backgroundprocess.inc.php',
'Psr\\Cache\\CacheException' => $vendorDir . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => $vendorDir . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => $vendorDir . '/psr/cache/src/CacheItemPoolInterface.php',
@@ -621,7 +623,7 @@ return array(
'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser' => $vendorDir . '/symfony/framework-bundle/Templating/TemplateNameParser.php',
'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateReference' => $vendorDir . '/symfony/framework-bundle/Templating/TemplateReference.php',
'Symfony\\Bundle\\FrameworkBundle\\Templating\\TimedPhpEngine' => $vendorDir . '/symfony/framework-bundle/Templating/TimedPhpEngine.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\KernelShutdownOnTearDownTrait' => $vendorDir . '/symfony/framework-bundle/Test/KernelShutdownOnTearDownTrait.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\ForwardCompatTestTrait' => $vendorDir . '/symfony/framework-bundle/Test/ForwardCompatTestTrait.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\KernelTestCase' => $vendorDir . '/symfony/framework-bundle/Test/KernelTestCase.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\WebTestCase' => $vendorDir . '/symfony/framework-bundle/Test/WebTestCase.php',
'Symfony\\Bundle\\FrameworkBundle\\Translation\\PhpExtractor' => $vendorDir . '/symfony/framework-bundle/Translation/PhpExtractor.php',
@@ -1453,7 +1455,16 @@ return array(
'Symfony\\Polyfill\\Apcu\\Apcu' => $vendorDir . '/symfony/polyfill-apcu/Apcu.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php56\\Php56' => $vendorDir . '/symfony/polyfill-php56/Php56.php',
'Symfony\\Polyfill\\Php70\\Php70' => $vendorDir . '/symfony/polyfill-php70/Php70.php',
'Symfony\\Polyfill\\Util\\Binary' => $vendorDir . '/symfony/polyfill-util/Binary.php',
'Symfony\\Polyfill\\Util\\BinaryNoFuncOverload' => $vendorDir . '/symfony/polyfill-util/BinaryNoFuncOverload.php',
'Symfony\\Polyfill\\Util\\BinaryOnFuncOverload' => $vendorDir . '/symfony/polyfill-util/BinaryOnFuncOverload.php',
'Symfony\\Polyfill\\Util\\TestListener' => $vendorDir . '/symfony/polyfill-util/TestListener.php',
'Symfony\\Polyfill\\Util\\TestListenerForV5' => $vendorDir . '/symfony/polyfill-util/TestListenerForV5.php',
'Symfony\\Polyfill\\Util\\TestListenerForV6' => $vendorDir . '/symfony/polyfill-util/TestListenerForV6.php',
'Symfony\\Polyfill\\Util\\TestListenerForV7' => $vendorDir . '/symfony/polyfill-util/TestListenerForV7.php',
'Symfony\\Polyfill\\Util\\TestListenerTrait' => $vendorDir . '/symfony/polyfill-util/TestListenerTrait.php',
'System' => $vendorDir . '/pear/pear-core-minimal/src/System.php',
'TCPDF' => $vendorDir . '/combodo/tcpdf/tcpdf.php',
'TCPDF2DBarcode' => $vendorDir . '/combodo/tcpdf/tcpdf_barcodes_2d.php',

View File

@@ -11,6 +11,7 @@ return array(
'5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
'32dcc8afd4335739640db7d200c1971d' => $vendorDir . '/symfony/polyfill-apcu/bootstrap.php',
'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
);

View File

@@ -7,7 +7,9 @@ $baseDir = dirname($vendorDir);
return array(
'Twig\\' => array($vendorDir . '/twig/twig/src'),
'Symfony\\Polyfill\\Util\\' => array($vendorDir . '/symfony/polyfill-util'),
'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'),
'Symfony\\Polyfill\\Php56\\' => array($vendorDir . '/symfony/polyfill-php56'),
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
'Symfony\\Polyfill\\Apcu\\' => array($vendorDir . '/symfony/polyfill-apcu'),

View File

@@ -12,6 +12,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
'32dcc8afd4335739640db7d200c1971d' => __DIR__ . '/..' . '/symfony/polyfill-apcu/bootstrap.php',
'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
);
@@ -23,7 +24,9 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b
),
'S' =>
array (
'Symfony\\Polyfill\\Util\\' => 22,
'Symfony\\Polyfill\\Php70\\' => 23,
'Symfony\\Polyfill\\Php56\\' => 23,
'Symfony\\Polyfill\\Mbstring\\' => 26,
'Symfony\\Polyfill\\Ctype\\' => 23,
'Symfony\\Polyfill\\Apcu\\' => 22,
@@ -65,10 +68,18 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b
array (
0 => __DIR__ . '/..' . '/twig/twig/src',
),
'Symfony\\Polyfill\\Util\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-util',
),
'Symfony\\Polyfill\\Php70\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-php70',
),
'Symfony\\Polyfill\\Php56\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-php56',
),
'Symfony\\Polyfill\\Mbstring\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
@@ -229,6 +240,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b
public static $classMap = array (
'AbstractLoginFSMExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractPortalUIExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractWeeklyScheduledProcess' => __DIR__ . '/../..' . '/core/backgroundprocess.inc.php',
'Action' => __DIR__ . '/../..' . '/core/action.class.inc.php',
'ActionChecker' => __DIR__ . '/../..' . '/core/userrights.class.inc.php',
'ActionEmail' => __DIR__ . '/../..' . '/core/action.class.inc.php',
@@ -585,6 +597,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b
'PrintableDataTable' => __DIR__ . '/../..' . '/application/datatable.class.inc.php',
'ProcessException' => __DIR__ . '/../..' . '/core/backgroundprocess.inc.php',
'ProcessFatalException' => __DIR__ . '/../..' . '/core/backgroundprocess.inc.php',
'ProcessInvalidConfigException' => __DIR__ . '/../..' . '/core/backgroundprocess.inc.php',
'Psr\\Cache\\CacheException' => __DIR__ . '/..' . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemPoolInterface.php',
@@ -842,7 +855,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b
'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser' => __DIR__ . '/..' . '/symfony/framework-bundle/Templating/TemplateNameParser.php',
'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateReference' => __DIR__ . '/..' . '/symfony/framework-bundle/Templating/TemplateReference.php',
'Symfony\\Bundle\\FrameworkBundle\\Templating\\TimedPhpEngine' => __DIR__ . '/..' . '/symfony/framework-bundle/Templating/TimedPhpEngine.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\KernelShutdownOnTearDownTrait' => __DIR__ . '/..' . '/symfony/framework-bundle/Test/KernelShutdownOnTearDownTrait.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\ForwardCompatTestTrait' => __DIR__ . '/..' . '/symfony/framework-bundle/Test/ForwardCompatTestTrait.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\KernelTestCase' => __DIR__ . '/..' . '/symfony/framework-bundle/Test/KernelTestCase.php',
'Symfony\\Bundle\\FrameworkBundle\\Test\\WebTestCase' => __DIR__ . '/..' . '/symfony/framework-bundle/Test/WebTestCase.php',
'Symfony\\Bundle\\FrameworkBundle\\Translation\\PhpExtractor' => __DIR__ . '/..' . '/symfony/framework-bundle/Translation/PhpExtractor.php',
@@ -1674,7 +1687,16 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b
'Symfony\\Polyfill\\Apcu\\Apcu' => __DIR__ . '/..' . '/symfony/polyfill-apcu/Apcu.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php56\\Php56' => __DIR__ . '/..' . '/symfony/polyfill-php56/Php56.php',
'Symfony\\Polyfill\\Php70\\Php70' => __DIR__ . '/..' . '/symfony/polyfill-php70/Php70.php',
'Symfony\\Polyfill\\Util\\Binary' => __DIR__ . '/..' . '/symfony/polyfill-util/Binary.php',
'Symfony\\Polyfill\\Util\\BinaryNoFuncOverload' => __DIR__ . '/..' . '/symfony/polyfill-util/BinaryNoFuncOverload.php',
'Symfony\\Polyfill\\Util\\BinaryOnFuncOverload' => __DIR__ . '/..' . '/symfony/polyfill-util/BinaryOnFuncOverload.php',
'Symfony\\Polyfill\\Util\\TestListener' => __DIR__ . '/..' . '/symfony/polyfill-util/TestListener.php',
'Symfony\\Polyfill\\Util\\TestListenerForV5' => __DIR__ . '/..' . '/symfony/polyfill-util/TestListenerForV5.php',
'Symfony\\Polyfill\\Util\\TestListenerForV6' => __DIR__ . '/..' . '/symfony/polyfill-util/TestListenerForV6.php',
'Symfony\\Polyfill\\Util\\TestListenerForV7' => __DIR__ . '/..' . '/symfony/polyfill-util/TestListenerForV7.php',
'Symfony\\Polyfill\\Util\\TestListenerTrait' => __DIR__ . '/..' . '/symfony/polyfill-util/TestListenerTrait.php',
'System' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/System.php',
'TCPDF' => __DIR__ . '/..' . '/combodo/tcpdf/tcpdf.php',
'TCPDF2DBarcode' => __DIR__ . '/..' . '/combodo/tcpdf/tcpdf_barcodes_2d.php',

View File

@@ -504,27 +504,27 @@
},
{
"name": "psr/log",
"version": "1.1.0",
"version_normalized": "1.1.0.0",
"version": "1.1.2",
"version_normalized": "1.1.2.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2018-11-20T15:27:04+00:00",
"time": "2019-11-01T11:05:21+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
"dev-master": "1.1.x-dev"
}
},
"installation-source": "dist",
@@ -720,17 +720,17 @@
},
{
"name": "symfony/cache",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
"reference": "8c6e162f0f7626771edbfa0a0e45b46623bbae1c"
"reference": "8d5db9c0cecf8b6f79fa96583fae652224d897da"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/8c6e162f0f7626771edbfa0a0e45b46623bbae1c",
"reference": "8c6e162f0f7626771edbfa0a0e45b46623bbae1c",
"url": "https://api.github.com/repos/symfony/cache/zipball/8d5db9c0cecf8b6f79fa96583fae652224d897da",
"reference": "8d5db9c0cecf8b6f79fa96583fae652224d897da",
"shasum": ""
},
"require": {
@@ -753,7 +753,7 @@
"doctrine/dbal": "~2.4",
"predis/predis": "~1.0"
},
"time": "2019-06-17T17:26:15+00:00",
"time": "2019-11-12T12:50:33+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -792,17 +792,17 @@
},
{
"name": "symfony/class-loader",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/class-loader.git",
"reference": "4459eef5298dedfb69f771186a580062b8516497"
"reference": "e212b06996819a2bce026a63da03b7182d05a690"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/class-loader/zipball/4459eef5298dedfb69f771186a580062b8516497",
"reference": "4459eef5298dedfb69f771186a580062b8516497",
"url": "https://api.github.com/repos/symfony/class-loader/zipball/e212b06996819a2bce026a63da03b7182d05a690",
"reference": "e212b06996819a2bce026a63da03b7182d05a690",
"shasum": ""
},
"require": {
@@ -815,7 +815,7 @@
"suggest": {
"symfony/polyfill-apcu": "For using ApcClassLoader on HHVM"
},
"time": "2019-01-16T09:39:14+00:00",
"time": "2019-08-20T13:31:17+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -850,17 +850,17 @@
},
{
"name": "symfony/config",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
"reference": "623fd6be3e5d4112d667003488c8c3ec12b66f62"
"reference": "c3a30587de97263d2813a3c81b74126c58b67a4f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/623fd6be3e5d4112d667003488c8c3ec12b66f62",
"reference": "623fd6be3e5d4112d667003488c8c3ec12b66f62",
"url": "https://api.github.com/repos/symfony/config/zipball/c3a30587de97263d2813a3c81b74126c58b67a4f",
"reference": "c3a30587de97263d2813a3c81b74126c58b67a4f",
"shasum": ""
},
"require": {
@@ -881,7 +881,7 @@
"suggest": {
"symfony/yaml": "To use the yaml reference dumper"
},
"time": "2019-07-17T15:23:18+00:00",
"time": "2019-11-08T08:28:59+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -916,17 +916,17 @@
},
{
"name": "symfony/console",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "12940f20a816c978860fa4925b3f1bbb27e9ac46"
"reference": "17b154f932c5874cdbda6d05796b6490eec9f9f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/12940f20a816c978860fa4925b3f1bbb27e9ac46",
"reference": "12940f20a816c978860fa4925b3f1bbb27e9ac46",
"url": "https://api.github.com/repos/symfony/console/zipball/17b154f932c5874cdbda6d05796b6490eec9f9f7",
"reference": "17b154f932c5874cdbda6d05796b6490eec9f9f7",
"shasum": ""
},
"require": {
@@ -955,7 +955,7 @@
"symfony/lock": "",
"symfony/process": ""
},
"time": "2019-07-24T14:46:41+00:00",
"time": "2019-11-13T07:12:39+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -990,23 +990,23 @@
},
{
"name": "symfony/css-selector",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf"
"reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/8ca29297c29b64fb3a1a135e71cb25f67f9fdccf",
"reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/f819f71ae3ba6f396b4c015bd5895de7d2f1f85f",
"reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8"
},
"time": "2019-01-16T09:39:14+00:00",
"time": "2019-10-01T11:57:37+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1045,17 +1045,17 @@
},
{
"name": "symfony/debug",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "bc977cb2681d75988ab2d53d14c4245c6c04f82f"
"reference": "f72e33fdb1170b326e72c3157f0cd456351dd086"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/bc977cb2681d75988ab2d53d14c4245c6c04f82f",
"reference": "bc977cb2681d75988ab2d53d14c4245c6c04f82f",
"url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086",
"reference": "f72e33fdb1170b326e72c3157f0cd456351dd086",
"shasum": ""
},
"require": {
@@ -1068,7 +1068,7 @@
"require-dev": {
"symfony/http-kernel": "~2.8|~3.0|~4.0"
},
"time": "2019-07-23T08:39:19+00:00",
"time": "2019-10-24T15:33:53+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1103,17 +1103,17 @@
},
{
"name": "symfony/dependency-injection",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
"reference": "ade939fe83d5ec5fcaa98628dc42d83232c8eb41"
"reference": "0ea4d39ca82409a25a43b61ce828048a90000920"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ade939fe83d5ec5fcaa98628dc42d83232c8eb41",
"reference": "ade939fe83d5ec5fcaa98628dc42d83232c8eb41",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0ea4d39ca82409a25a43b61ce828048a90000920",
"reference": "0ea4d39ca82409a25a43b61ce828048a90000920",
"shasum": ""
},
"require": {
@@ -1141,7 +1141,7 @@
"symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
"symfony/yaml": ""
},
"time": "2019-07-19T11:52:08+00:00",
"time": "2019-11-08T16:18:30+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1176,26 +1176,26 @@
},
{
"name": "symfony/dotenv",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/dotenv.git",
"reference": "3f4fdfb551bf36f2017d75cd2e6490fbe67f9d2d"
"reference": "c7e8e471fea74e868ae797970b383dea89ae548a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dotenv/zipball/3f4fdfb551bf36f2017d75cd2e6490fbe67f9d2d",
"reference": "3f4fdfb551bf36f2017d75cd2e6490fbe67f9d2d",
"url": "https://api.github.com/repos/symfony/dotenv/zipball/c7e8e471fea74e868ae797970b383dea89ae548a",
"reference": "c7e8e471fea74e868ae797970b383dea89ae548a",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8"
},
"require-dev": {
"symfony/process": "~3.2|~4.0"
"symfony/process": "^3.4.2|^4.0"
},
"time": "2019-06-23T08:10:04+00:00",
"time": "2019-10-18T10:00:34+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1235,17 +1235,17 @@
},
{
"name": "symfony/event-dispatcher",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "f18fdd6cc7006441865e698420cee26bac94741f"
"reference": "f9031c22ec127d4a2450760f81a8677fe8a10177"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f18fdd6cc7006441865e698420cee26bac94741f",
"reference": "f18fdd6cc7006441865e698420cee26bac94741f",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177",
"reference": "f9031c22ec127d4a2450760f81a8677fe8a10177",
"shasum": ""
},
"require": {
@@ -1265,7 +1265,7 @@
"symfony/dependency-injection": "",
"symfony/http-kernel": ""
},
"time": "2019-06-25T07:45:31+00:00",
"time": "2019-10-24T15:33:53+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1300,24 +1300,24 @@
},
{
"name": "symfony/filesystem",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "70adda061ef83bb7def63a17953dc41f203308a7"
"reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/70adda061ef83bb7def63a17953dc41f203308a7",
"reference": "70adda061ef83bb7def63a17953dc41f203308a7",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516",
"reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8",
"symfony/polyfill-ctype": "~1.8"
},
"time": "2019-06-23T09:29:17+00:00",
"time": "2019-08-20T13:31:17+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1352,23 +1352,23 @@
},
{
"name": "symfony/finder",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "1e762fdf73ace6ceb42ba5a6ca280be86082364a"
"reference": "3e915e5ce305f8bc8017597f71f1f4095092ddf8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/1e762fdf73ace6ceb42ba5a6ca280be86082364a",
"reference": "1e762fdf73ace6ceb42ba5a6ca280be86082364a",
"url": "https://api.github.com/repos/symfony/finder/zipball/3e915e5ce305f8bc8017597f71f1f4095092ddf8",
"reference": "3e915e5ce305f8bc8017597f71f1f4095092ddf8",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8"
},
"time": "2019-06-28T08:02:59+00:00",
"time": "2019-10-30T12:43:22+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1403,32 +1403,32 @@
},
{
"name": "symfony/framework-bundle",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
"reference": "0bb32eafe4adeb39faff1902dd9ec54e0ed2a265"
"reference": "3cb98792e8d1fa332c65b28521eeaa6e9bbeea34"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0bb32eafe4adeb39faff1902dd9ec54e0ed2a265",
"reference": "0bb32eafe4adeb39faff1902dd9ec54e0ed2a265",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3cb98792e8d1fa332c65b28521eeaa6e9bbeea34",
"reference": "3cb98792e8d1fa332c65b28521eeaa6e9bbeea34",
"shasum": ""
},
"require": {
"ext-xml": "*",
"php": "^5.5.9|>=7.0.8",
"symfony/cache": "~3.4|~4.0",
"symfony/cache": "~3.4.31|^4.3.4",
"symfony/class-loader": "~3.2",
"symfony/config": "~3.4|~4.0",
"symfony/config": "^3.4.31|^4.3.4",
"symfony/debug": "~2.8|~3.0|~4.0",
"symfony/dependency-injection": "^3.4.24|^4.2.5",
"symfony/event-dispatcher": "~3.4|~4.0",
"symfony/filesystem": "~2.8|~3.0|~4.0",
"symfony/finder": "~2.8|~3.0|~4.0",
"symfony/http-foundation": "^3.3.11|~4.0",
"symfony/http-kernel": "~3.4|~4.0",
"symfony/http-foundation": "^3.4.13|~4.3",
"symfony/http-kernel": "^3.4.31|^4.3.4",
"symfony/polyfill-mbstring": "~1.0",
"symfony/routing": "^3.4.5|^4.0.5"
},
@@ -1447,17 +1447,17 @@
"symfony/workflow": "<3.3"
},
"require-dev": {
"doctrine/annotations": "~1.0",
"doctrine/annotations": "~1.7",
"doctrine/cache": "~1.0",
"fig/link-util": "^1.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
"symfony/asset": "~3.3|~4.0",
"symfony/browser-kit": "~2.8|~3.0|~4.0",
"symfony/console": "~3.4|~4.0",
"symfony/console": "~3.4.31|^4.3.4",
"symfony/css-selector": "~2.8|~3.0|~4.0",
"symfony/dom-crawler": "~2.8|~3.0|~4.0",
"symfony/expression-language": "~2.8|~3.0|~4.0",
"symfony/form": "^3.4.22|~4.1.11|^4.2.3",
"symfony/form": "^3.4.31|^4.3.4",
"symfony/lock": "~3.4|~4.0",
"symfony/polyfill-intl-icu": "~1.0",
"symfony/process": "~2.8|~3.0|~4.0",
@@ -1485,7 +1485,7 @@
"symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
"symfony/yaml": "For using the debug:config and lint:yaml commands"
},
"time": "2019-07-24T16:59:53+00:00",
"time": "2019-11-03T19:32:26+00:00",
"type": "symfony-bundle",
"extra": {
"branch-alias": {
@@ -1520,17 +1520,17 @@
},
{
"name": "symfony/http-foundation",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "c450706851050ade2e1f30d012d50bb9173f7f3d"
"reference": "9e4b3ac8fa3348b4811674d23de32d201de225ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/c450706851050ade2e1f30d012d50bb9173f7f3d",
"reference": "c450706851050ade2e1f30d012d50bb9173f7f3d",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/9e4b3ac8fa3348b4811674d23de32d201de225ce",
"reference": "9e4b3ac8fa3348b4811674d23de32d201de225ce",
"shasum": ""
},
"require": {
@@ -1541,7 +1541,7 @@
"require-dev": {
"symfony/expression-language": "~2.8|~3.0|~4.0"
},
"time": "2019-07-23T06:27:47+00:00",
"time": "2019-11-11T12:53:10+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1576,17 +1576,17 @@
},
{
"name": "symfony/http-kernel",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "83a1b30c5dd02f5c3cd708a432071d0c99474eb3"
"reference": "e1764b3de00ec5636dd03d02fd44bcb1147d70d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/83a1b30c5dd02f5c3cd708a432071d0c99474eb3",
"reference": "83a1b30c5dd02f5c3cd708a432071d0c99474eb3",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/e1764b3de00ec5636dd03d02fd44bcb1147d70d9",
"reference": "e1764b3de00ec5636dd03d02fd44bcb1147d70d9",
"shasum": ""
},
"require": {
@@ -1595,7 +1595,8 @@
"symfony/debug": "^3.3.3|~4.0",
"symfony/event-dispatcher": "~2.8|~3.0|~4.0",
"symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1",
"symfony/polyfill-ctype": "~1.8"
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-php56": "~1.8"
},
"conflict": {
"symfony/config": "<2.8",
@@ -1632,7 +1633,7 @@
"symfony/finder": "",
"symfony/var-dumper": ""
},
"time": "2019-07-27T17:14:06+00:00",
"time": "2019-11-13T08:44:50+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1844,6 +1845,64 @@
"shim"
]
},
{
"name": "symfony/polyfill-php56",
"version": "v1.12.0",
"version_normalized": "1.12.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php56.git",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/polyfill-util": "~1.0"
},
"time": "2019-08-06T08:03:45+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.12-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php56\\": ""
},
"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.6+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
]
},
{
"name": "symfony/polyfill-php70",
"version": "v1.12.0",
@@ -1906,18 +1965,72 @@
]
},
{
"name": "symfony/routing",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"name": "symfony/polyfill-util",
"version": "v1.12.0",
"version_normalized": "1.12.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "8d804d8a65a26dc9de1aaf2ff3a421e581d050e6"
"url": "https://github.com/symfony/polyfill-util.git",
"reference": "4317de1386717b4c22caed7725350a8887ab205c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/8d804d8a65a26dc9de1aaf2ff3a421e581d050e6",
"reference": "8d804d8a65a26dc9de1aaf2ff3a421e581d050e6",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c",
"reference": "4317de1386717b4c22caed7725350a8887ab205c",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "2019-08-06T08:03:45+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.12-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Util\\": ""
}
},
"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 utilities for portability of PHP codes",
"homepage": "https://symfony.com",
"keywords": [
"compat",
"compatibility",
"polyfill",
"shim"
]
},
{
"name": "symfony/routing",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "afc10b9c6b5196e0fecbc3bd373c7b4482e5b6b5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/afc10b9c6b5196e0fecbc3bd373c7b4482e5b6b5",
"reference": "afc10b9c6b5196e0fecbc3bd373c7b4482e5b6b5",
"shasum": ""
},
"require": {
@@ -1944,7 +2057,7 @@
"symfony/http-foundation": "For using a Symfony Request object",
"symfony/yaml": "For using the YAML loader"
},
"time": "2019-06-26T11:14:13+00:00",
"time": "2019-11-08T17:25:00+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1985,23 +2098,23 @@
},
{
"name": "symfony/stopwatch",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
"reference": "2a651c2645c10bbedd21170771f122d935e0dd58"
"reference": "efe0af281ad336bc3b10375c88b117499f1d8494"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/2a651c2645c10bbedd21170771f122d935e0dd58",
"reference": "2a651c2645c10bbedd21170771f122d935e0dd58",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/efe0af281ad336bc3b10375c88b117499f1d8494",
"reference": "efe0af281ad336bc3b10375c88b117499f1d8494",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8"
},
"time": "2019-01-16T09:39:14+00:00",
"time": "2019-11-03T17:17:59+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2036,34 +2149,35 @@
},
{
"name": "symfony/twig-bridge",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
"reference": "bf136ba1fbd18126ab65a930ea0daebb0b0fd159"
"reference": "a2fa4d04a4f22c8abf7d12188d89510e2e9bd1c1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/bf136ba1fbd18126ab65a930ea0daebb0b0fd159",
"reference": "bf136ba1fbd18126ab65a930ea0daebb0b0fd159",
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/a2fa4d04a4f22c8abf7d12188d89510e2e9bd1c1",
"reference": "a2fa4d04a4f22c8abf7d12188d89510e2e9bd1c1",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8",
"twig/twig": "^1.40|^2.9"
"twig/twig": "^1.41|^2.10"
},
"conflict": {
"symfony/console": "<3.4",
"symfony/form": "<3.4.13|>=4.0,<4.0.13|>=4.1,<4.1.2"
"symfony/form": "<3.4.31|>=4.0,<4.3.4"
},
"require-dev": {
"fig/link-util": "^1.0",
"symfony/asset": "~2.8|~3.0|~4.0",
"symfony/console": "~3.4|~4.0",
"symfony/dependency-injection": "~2.8|~3.0|~4.0",
"symfony/expression-language": "~2.8|~3.0|~4.0",
"symfony/finder": "~2.8|~3.0|~4.0",
"symfony/form": "^3.4.23|^4.2.4",
"symfony/form": "^3.4.31|^4.3.4",
"symfony/http-foundation": "^3.3.11|~4.0",
"symfony/http-kernel": "~3.2|~4.0",
"symfony/polyfill-intl-icu": "~1.0",
@@ -2093,7 +2207,7 @@
"symfony/web-link": "For using the WebLinkExtension",
"symfony/yaml": "For using the YamlExtension"
},
"time": "2019-07-24T19:39:07+00:00",
"time": "2019-10-24T15:33:53+00:00",
"type": "symfony-bridge",
"extra": {
"branch-alias": {
@@ -2128,17 +2242,17 @@
},
{
"name": "symfony/twig-bundle",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
"reference": "fae76fd8d8cff50295282d752e9842324bd277e4"
"reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/fae76fd8d8cff50295282d752e9842324bd277e4",
"reference": "fae76fd8d8cff50295282d752e9842324bd277e4",
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9",
"reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9",
"shasum": ""
},
"require": {
@@ -2149,14 +2263,14 @@
"symfony/http-kernel": "^3.3|~4.0",
"symfony/polyfill-ctype": "~1.8",
"symfony/twig-bridge": "^3.4.3|^4.0.3",
"twig/twig": "~1.40|~2.9"
"twig/twig": "~1.41|~2.10"
},
"conflict": {
"symfony/dependency-injection": "<3.4",
"symfony/event-dispatcher": "<3.3.1"
},
"require-dev": {
"doctrine/annotations": "~1.0",
"doctrine/annotations": "~1.7",
"doctrine/cache": "~1.0",
"symfony/asset": "~2.8|~3.0|~4.0",
"symfony/dependency-injection": "~3.4.24|^4.2.5",
@@ -2170,7 +2284,7 @@
"symfony/web-link": "~3.3|~4.0",
"symfony/yaml": "~2.8|~3.0|~4.0"
},
"time": "2019-07-19T08:16:37+00:00",
"time": "2019-10-01T15:13:36+00:00",
"type": "symfony-bundle",
"extra": {
"branch-alias": {
@@ -2205,17 +2319,17 @@
},
{
"name": "symfony/var-dumper",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "b6a45abfe961183a4c26fad98a6112c487e983bf"
"reference": "569e261461600810845a8305ca3f64abd3e712c0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/b6a45abfe961183a4c26fad98a6112c487e983bf",
"reference": "b6a45abfe961183a4c26fad98a6112c487e983bf",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/569e261461600810845a8305ca3f64abd3e712c0",
"reference": "569e261461600810845a8305ca3f64abd3e712c0",
"shasum": ""
},
"require": {
@@ -2234,7 +2348,7 @@
"ext-intl": "To show region name in time zone dump",
"ext-symfony_debug": ""
},
"time": "2019-07-26T11:29:23+00:00",
"time": "2019-10-10T11:03:19+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2276,17 +2390,17 @@
},
{
"name": "symfony/web-profiler-bundle",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
"reference": "0e9627b1a3864949fa1d72eec78dab02830b5206"
"reference": "b4c78b585d60a0b96ed735ce40f964bd3a228f73"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/0e9627b1a3864949fa1d72eec78dab02830b5206",
"reference": "0e9627b1a3864949fa1d72eec78dab02830b5206",
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/b4c78b585d60a0b96ed735ce40f964bd3a228f73",
"reference": "b4c78b585d60a0b96ed735ce40f964bd3a228f73",
"shasum": ""
},
"require": {
@@ -2310,7 +2424,7 @@
"symfony/dependency-injection": "~3.4|~4.0",
"symfony/stopwatch": "~2.8|~3.0|~4.0"
},
"time": "2019-07-24T10:33:03+00:00",
"time": "2019-10-01T15:13:36+00:00",
"type": "symfony-bundle",
"extra": {
"branch-alias": {
@@ -2345,17 +2459,17 @@
},
{
"name": "symfony/yaml",
"version": "v3.4.30",
"version_normalized": "3.4.30.0",
"version": "v3.4.35",
"version_normalized": "3.4.35.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "051d045c684148060ebfc9affb7e3f5e0899d40b"
"reference": "dab657db15207879217fc81df4f875947bf68804"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/051d045c684148060ebfc9affb7e3f5e0899d40b",
"reference": "051d045c684148060ebfc9affb7e3f5e0899d40b",
"url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804",
"reference": "dab657db15207879217fc81df4f875947bf68804",
"shasum": ""
},
"require": {
@@ -2371,7 +2485,7 @@
"suggest": {
"symfony/console": "For validating YAML files using the lint command"
},
"time": "2019-07-24T13:01:31+00:00",
"time": "2019-10-24T15:33:53+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2406,29 +2520,29 @@
},
{
"name": "twig/twig",
"version": "v1.42.2",
"version_normalized": "1.42.2.0",
"version": "v1.42.4",
"version_normalized": "1.42.4.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "21707d6ebd05476854805e4f91b836531941bcd4"
"reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/21707d6ebd05476854805e4f91b836531941bcd4",
"reference": "21707d6ebd05476854805e4f91b836531941bcd4",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152",
"reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"php": ">=5.5.0",
"symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
"psr/container": "^1.0",
"symfony/debug": "^2.7",
"symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0"
"symfony/debug": "^3.4|^4.2",
"symfony/phpunit-bridge": "^4.4@dev|^5.0"
},
"time": "2019-06-18T15:35:16+00:00",
"time": "2019-11-11T16:49:32+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2451,19 +2565,19 @@
"authors": [
{
"name": "Fabien Potencier",
"role": "Lead Developer",
"email": "fabien@symfony.com",
"homepage": "http://fabien.potencier.org"
},
{
"name": "Armin Ronacher",
"role": "Project Founder",
"email": "armin.ronacher@active-4.com"
"homepage": "http://fabien.potencier.org",
"role": "Lead Developer"
},
{
"name": "Twig Team",
"role": "Contributors",
"homepage": "https://twig.symfony.com/contributors"
"homepage": "https://twig.symfony.com/contributors",
"role": "Contributors"
},
{
"name": "Armin Ronacher",
"email": "armin.ronacher@active-4.com",
"role": "Project Founder"
}
],
"description": "Twig, the flexible, fast, and secure template language for PHP",

View File

@@ -118,6 +118,8 @@ interface LoggerInterface
* @param array $context
*
* @return void
*
* @throws \Psr\Log\InvalidArgumentException
*/
public function log($level, $message, array $context = array());
}

View File

@@ -135,6 +135,8 @@ trait LoggerTrait
* @param array $context
*
* @return void
*
* @throws \Psr\Log\InvalidArgumentException
*/
abstract public function log($level, $message, array $context = array());
}

View File

@@ -20,6 +20,8 @@ class NullLogger extends AbstractLogger
* @param array $context
*
* @return void
*
* @throws \Psr\Log\InvalidArgumentException
*/
public function log($level, $message, array $context = array())
{

View File

@@ -4,6 +4,7 @@ namespace Psr\Log\Test;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use PHPUnit\Framework\TestCase;
/**
* Provides a base test class for ensuring compliance with the LoggerInterface.
@@ -11,7 +12,7 @@ use Psr\Log\LogLevel;
* Implementors can extend the class and implement abstract methods to run this
* as part of their test suite.
*/
abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
abstract class LoggerInterfaceTest extends TestCase
{
/**
* @return LoggerInterface
@@ -140,5 +141,6 @@ class DummyTest
{
public function __toString()
{
return 'DummyTest';
}
}

View File

@@ -142,5 +142,6 @@ class TestLogger extends AbstractLogger
public function reset()
{
$this->records = [];
$this->recordsByLevel = [];
}
}

View File

@@ -38,6 +38,12 @@ class Foo
if ($this->logger) {
$this->logger->info('Doing work');
}
try {
$this->doSomethingElse();
} catch (Exception $exception) {
$this->logger->error('Oh no!', array('exception' => $exception));
}
// do something useful
}

View File

@@ -20,7 +20,7 @@
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
"dev-master": "1.1.x-dev"
}
}
}

View File

@@ -49,7 +49,7 @@ abstract class AbstractAdapter implements AdapterInterface, LoggerAwareInterface
throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s")', $this->maxIdLength - 24, \strlen($namespace), $namespace));
}
$this->createCacheItem = \Closure::bind(
function ($key, $value, $isHit) use ($defaultLifetime) {
static function ($key, $value, $isHit) use ($defaultLifetime) {
$item = new CacheItem();
$item->key = $key;
$item->value = $value;
@@ -63,7 +63,7 @@ abstract class AbstractAdapter implements AdapterInterface, LoggerAwareInterface
);
$getId = function ($key) { return $this->getId((string) $key); };
$this->mergeByLifetime = \Closure::bind(
function ($deferred, $namespace, &$expiredIds) use ($getId) {
static function ($deferred, $namespace, &$expiredIds) use ($getId) {
$byLifetime = [];
$now = time();
$expiredIds = [];
@@ -86,11 +86,10 @@ abstract class AbstractAdapter implements AdapterInterface, LoggerAwareInterface
}
/**
* @param string $namespace
* @param int $defaultLifetime
* @param string $version
* @param string $directory
* @param LoggerInterface|null $logger
* @param string $namespace
* @param int $defaultLifetime
* @param string $version
* @param string $directory
*
* @return AdapterInterface
*/
@@ -276,6 +275,16 @@ abstract class AbstractAdapter implements AdapterInterface, LoggerAwareInterface
return $ok;
}
public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}
public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}
public function __destruct()
{
if ($this->deferred) {

View File

@@ -34,7 +34,7 @@ class ArrayAdapter implements AdapterInterface, LoggerAwareInterface, Resettable
{
$this->storeSerialized = $storeSerialized;
$this->createCacheItem = \Closure::bind(
function ($key, $value, $isHit) use ($defaultLifetime) {
static function ($key, $value, $isHit) use ($defaultLifetime) {
$item = new CacheItem();
$item->key = $key;
$item->value = $value;

View File

@@ -56,7 +56,7 @@ class ChainAdapter implements AdapterInterface, PruneableInterface, ResettableIn
$this->adapterCount = \count($this->adapters);
$this->syncItem = \Closure::bind(
function ($sourceItem, $item) use ($defaultLifetime) {
static function ($sourceItem, $item) use ($defaultLifetime) {
$item->value = $sourceItem->value;
$item->expiry = $sourceItem->expiry;
$item->isHit = $sourceItem->isHit;

View File

@@ -19,9 +19,8 @@ class DoctrineAdapter extends AbstractAdapter
use DoctrineTrait;
/**
* @param CacheProvider $provider
* @param string $namespace
* @param int $defaultLifetime
* @param string $namespace
* @param int $defaultLifetime
*/
public function __construct(CacheProvider $provider, $namespace = '', $defaultLifetime = 0)
{

View File

@@ -42,7 +42,7 @@ class PhpArrayAdapter implements AdapterInterface, PruneableInterface, Resettabl
$this->pool = $fallbackPool;
$this->zendDetectUnicode = filter_var(ini_get('zend.detect_unicode'), FILTER_VALIDATE_BOOLEAN);
$this->createCacheItem = \Closure::bind(
function ($key, $value, $isHit) {
static function ($key, $value, $isHit) {
$item = new CacheItem();
$item->key = $key;
$item->value = $value;
@@ -266,7 +266,7 @@ class PhpArrayAdapter implements AdapterInterface, PruneableInterface, Resettabl
/**
* @throws \ReflectionException When $class is not found and is required
*
* @internal
* @internal to be removed in Symfony 5.0
*/
public static function throwOnRequiredClass($class)
{

View File

@@ -31,9 +31,8 @@ class ProxyAdapter implements AdapterInterface, PruneableInterface, ResettableIn
private $poolHash;
/**
* @param CacheItemPoolInterface $pool
* @param string $namespace
* @param int $defaultLifetime
* @param string $namespace
* @param int $defaultLifetime
*/
public function __construct(CacheItemPoolInterface $pool, $namespace = '', $defaultLifetime = 0)
{
@@ -42,7 +41,7 @@ class ProxyAdapter implements AdapterInterface, PruneableInterface, ResettableIn
$this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace);
$this->namespaceLen = \strlen($namespace);
$this->createCacheItem = \Closure::bind(
function ($key, $innerItem) use ($defaultLifetime, $poolHash) {
static function ($key, $innerItem) use ($defaultLifetime, $poolHash) {
$item = new CacheItem();
$item->key = $key;
$item->defaultLifetime = $defaultLifetime;

View File

@@ -42,7 +42,7 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
$this->tags = $tagsPool ?: $itemsPool;
$this->knownTagVersionsTtl = $knownTagVersionsTtl;
$this->createCacheItem = \Closure::bind(
function ($key, $value, CacheItem $protoItem) {
static function ($key, $value, CacheItem $protoItem) {
$item = new CacheItem();
$item->key = $key;
$item->value = $value;
@@ -56,7 +56,7 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
CacheItem::class
);
$this->setCacheItemTags = \Closure::bind(
function (CacheItem $item, $key, array &$itemTags) {
static function (CacheItem $item, $key, array &$itemTags) {
if (!$item->isHit) {
return $item;
}
@@ -76,7 +76,7 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
CacheItem::class
);
$this->getTagsByKey = \Closure::bind(
function ($deferred) {
static function ($deferred) {
$tagsByKey = [];
foreach ($deferred as $key => $item) {
$tagsByKey[$key] = $item->tags;
@@ -88,7 +88,7 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
CacheItem::class
);
$this->invalidateTags = \Closure::bind(
function (AdapterInterface $tagsAdapter, array $tags) {
static function (AdapterInterface $tagsAdapter, array $tags) {
foreach ($tags as $v) {
$v->defaultLifetime = 0;
$v->expiry = null;
@@ -156,7 +156,14 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
if (!$this->pool->hasItem($key)) {
return false;
}
if (!$itemTags = $this->pool->getItem(static::TAGS_PREFIX.$key)->get()) {
$itemTags = $this->pool->getItem(static::TAGS_PREFIX.$key);
if (!$itemTags->isHit()) {
return false;
}
if (!$itemTags = $itemTags->get()) {
return true;
}
@@ -177,6 +184,8 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
foreach ($this->getItems([$key]) as $item) {
return $item;
}
return null;
}
/**
@@ -273,6 +282,16 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
return $this->invalidateTags([]);
}
public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}
public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}
public function __destruct()
{
$this->commit();
@@ -294,7 +313,10 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
}
unset($tagKeys[$key]);
$itemTags[$key] = $item->get() ?: [];
if ($item->isHit()) {
$itemTags[$key] = $item->get() ?: [];
}
if (!$tagKeys) {
$tagVersions = $this->getTagVersions($itemTags);
@@ -348,7 +370,7 @@ class TagAwareAdapter implements TagAwareAdapterInterface, PruneableInterface, R
continue;
}
$version -= $this->knownTagVersions[$tag][1];
if ((0 !== $version && 1 !== $version) || $this->knownTagVersionsTtl > $now - $this->knownTagVersions[$tag][0]) {
if ((0 !== $version && 1 !== $version) || $now - $this->knownTagVersions[$tag][0] >= $this->knownTagVersionsTtl) {
// reuse previously fetched tag versions up to the ttl, unless we are storing items or a potential miss arises
$fetchTagVersions = true;
} else {

View File

@@ -56,6 +56,8 @@ final class CacheItem implements CacheItemInterface
/**
* {@inheritdoc}
*
* @return $this
*/
public function set($value)
{
@@ -66,6 +68,8 @@ final class CacheItem implements CacheItemInterface
/**
* {@inheritdoc}
*
* @return $this
*/
public function expiresAt($expiration)
{
@@ -82,6 +86,8 @@ final class CacheItem implements CacheItemInterface
/**
* {@inheritdoc}
*
* @return $this
*/
public function expiresAfter($time)
{
@@ -103,7 +109,7 @@ final class CacheItem implements CacheItemInterface
*
* @param string|string[] $tags A tag or array of tags
*
* @return static
* @return $this
*
* @throws InvalidArgumentException When $tag is not valid
*/

View File

@@ -30,8 +30,7 @@ class CacheDataCollector extends DataCollector implements LateDataCollectorInter
private $instances = [];
/**
* @param string $name
* @param TraceableAdapter $instance
* @param string $name
*/
public function addInstance($name, TraceableAdapter $instance)
{

View File

@@ -90,7 +90,7 @@ class DoctrineProvider extends CacheProvider implements PruneableInterface, Rese
*/
protected function doFlush()
{
$this->pool->clear();
return $this->pool->clear();
}
/**
@@ -98,5 +98,6 @@ class DoctrineProvider extends CacheProvider implements PruneableInterface, Rese
*/
protected function doGetStats()
{
return null;
}
}

View File

@@ -19,9 +19,8 @@ class DoctrineCache extends AbstractCache
use DoctrineTrait;
/**
* @param CacheProvider $provider
* @param string $namespace
* @param int $defaultLifetime
* @param string $namespace
* @param int $defaultLifetime
*/
public function __construct(CacheProvider $provider, $namespace = '', $defaultLifetime = 0)
{

View File

@@ -20,9 +20,8 @@ class MemcachedCache extends AbstractCache
protected $maxIdLength = 250;
/**
* @param \Memcached $client
* @param string $namespace
* @param int $defaultLifetime
* @param string $namespace
* @param int $defaultLifetime
*/
public function __construct(\Memcached $client, $namespace = '', $defaultLifetime = 0)
{

View File

@@ -41,7 +41,7 @@ class Psr6Cache implements CacheInterface, PruneableInterface, ResettableInterfa
}
$cacheItemPrototype = &$this->cacheItemPrototype;
$createCacheItem = \Closure::bind(
function ($key, $value, $allowInt = false) use (&$cacheItemPrototype) {
static function ($key, $value, $allowInt = false) use (&$cacheItemPrototype) {
$item = clone $cacheItemPrototype;
$item->key = $allowInt && \is_int($key) ? (string) $key : CacheItem::validateKey($key);
$item->value = $value;

View File

@@ -28,7 +28,7 @@ abstract class AbstractRedisAdapterTest extends AdapterTestCase
return new RedisAdapter(self::$redis, str_replace('\\', '.', __CLASS__), $defaultLifetime);
}
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!\extension_loaded('redis')) {
self::markTestSkipped('Extension redis required.');

View File

@@ -11,6 +11,7 @@
namespace Symfony\Component\Cache\Tests\Adapter;
use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Cache\Adapter\AdapterInterface;
use Symfony\Component\Cache\Adapter\ArrayAdapter;
use Symfony\Component\Cache\Adapter\ChainAdapter;
@@ -29,21 +30,17 @@ class ChainAdapterTest extends AdapterTestCase
return new ChainAdapter([new ArrayAdapter($defaultLifetime), new ExternalAdapter(), new FilesystemAdapter('', $defaultLifetime)], $defaultLifetime);
}
/**
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage At least one adapter must be specified.
*/
public function testEmptyAdaptersException()
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('At least one adapter must be specified.');
new ChainAdapter([]);
}
/**
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage The class "stdClass" does not implement
*/
public function testInvalidAdapterException()
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('The class "stdClass" does not implement');
new ChainAdapter([new \stdClass()]);
}
@@ -69,7 +66,7 @@ class ChainAdapterTest extends AdapterTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|PruneableCacheInterface
* @return MockObject|PruneableCacheInterface
*/
private function getPruneableMock()
{
@@ -86,7 +83,7 @@ class ChainAdapterTest extends AdapterTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|PruneableCacheInterface
* @return MockObject|PruneableCacheInterface
*/
private function getFailingPruneableMock()
{
@@ -103,7 +100,7 @@ class ChainAdapterTest extends AdapterTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|AdapterInterface
* @return MockObject|AdapterInterface
*/
private function getNonPruneableMock()
{

View File

@@ -40,6 +40,10 @@ class MaxIdLengthAdapterTest extends TestCase
->setConstructorArgs([str_repeat('-', 26)])
->getMock();
$cache
->method('doFetch')
->willReturn(['2:']);
$reflectionClass = new \ReflectionClass(AbstractAdapter::class);
$reflectionMethod = $reflectionClass->getMethod('getId');
@@ -56,19 +60,17 @@ class MaxIdLengthAdapterTest extends TestCase
$reflectionProperty->setValue($cache, true);
// Versioning enabled
$this->assertEquals('--------------------------:1:------------', $reflectionMethod->invokeArgs($cache, [str_repeat('-', 12)]));
$this->assertEquals('--------------------------:2:------------', $reflectionMethod->invokeArgs($cache, [str_repeat('-', 12)]));
$this->assertLessThanOrEqual(50, \strlen($reflectionMethod->invokeArgs($cache, [str_repeat('-', 12)])));
$this->assertLessThanOrEqual(50, \strlen($reflectionMethod->invokeArgs($cache, [str_repeat('-', 23)])));
$this->assertLessThanOrEqual(50, \strlen($reflectionMethod->invokeArgs($cache, [str_repeat('-', 40)])));
}
/**
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage Namespace must be 26 chars max, 40 given ("----------------------------------------")
*/
public function testTooLongNamespace()
{
$cache = $this->getMockBuilder(MaxIdLengthAdapter::class)
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('Namespace must be 26 chars max, 40 given ("----------------------------------------")');
$this->getMockBuilder(MaxIdLengthAdapter::class)
->setConstructorArgs([str_repeat('-', 40)])
->getMock();
}

View File

@@ -23,7 +23,7 @@ class MemcachedAdapterTest extends AdapterTestCase
protected static $client;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!MemcachedAdapter::isSupported()) {
self::markTestSkipped('Extension memcached >=2.2.0 required.');
@@ -63,11 +63,11 @@ class MemcachedAdapterTest extends AdapterTestCase
/**
* @dataProvider provideBadOptions
* @expectedException \ErrorException
* @expectedExceptionMessage constant(): Couldn't find constant Memcached::
*/
public function testBadOptions($name, $value)
{
$this->expectException('ErrorException');
$this->expectExceptionMessage('constant(): Couldn\'t find constant Memcached::');
MemcachedAdapter::createConnection([], [$name => $value]);
}
@@ -93,12 +93,10 @@ class MemcachedAdapterTest extends AdapterTestCase
$this->assertSame(1, $client->getOption(\Memcached::OPT_LIBKETAMA_COMPATIBLE));
}
/**
* @expectedException \Symfony\Component\Cache\Exception\CacheException
* @expectedExceptionMessage MemcachedAdapter: "serializer" option must be "php" or "igbinary".
*/
public function testOptionSerializer()
{
$this->expectException('Symfony\Component\Cache\Exception\CacheException');
$this->expectExceptionMessage('MemcachedAdapter: "serializer" option must be "php" or "igbinary".');
if (!\Memcached::HAVE_JSON) {
$this->markTestSkipped('Memcached::HAVE_JSON required');
}

View File

@@ -23,7 +23,7 @@ class PdoAdapterTest extends AdapterTestCase
protected static $dbFile;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!\extension_loaded('pdo_sqlite')) {
self::markTestSkipped('Extension pdo_sqlite required.');

View File

@@ -24,7 +24,7 @@ class PdoDbalAdapterTest extends AdapterTestCase
protected static $dbFile;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!\extension_loaded('pdo_sqlite')) {
self::markTestSkipped('Extension pdo_sqlite required.');

View File

@@ -55,7 +55,7 @@ class PhpArrayAdapterTest extends AdapterTestCase
protected static $file;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
self::$file = sys_get_temp_dir().'/symfony-cache/php-array-adapter-test.php';
}

View File

@@ -30,7 +30,7 @@ class PhpArrayAdapterWithFallbackTest extends AdapterTestCase
protected static $file;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
self::$file = sys_get_temp_dir().'/symfony-cache/php-array-adapter-test.php';
}

View File

@@ -16,9 +16,9 @@ use Symfony\Component\Cache\Adapter\RedisAdapter;
class PredisAdapterTest extends AbstractRedisAdapterTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
parent::setupBeforeClass();
parent::setUpBeforeClass();
self::$redis = new \Predis\Client(['host' => getenv('REDIS_HOST')]);
}

View File

@@ -13,9 +13,9 @@ namespace Symfony\Component\Cache\Tests\Adapter;
class PredisClusterAdapterTest extends AbstractRedisAdapterTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
parent::setupBeforeClass();
parent::setUpBeforeClass();
self::$redis = new \Predis\Client([['host' => getenv('REDIS_HOST')]]);
}

View File

@@ -13,7 +13,7 @@ namespace Symfony\Component\Cache\Tests\Adapter;
class PredisRedisClusterAdapterTest extends AbstractRedisAdapterTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!$hosts = getenv('REDIS_CLUSTER_HOSTS')) {
self::markTestSkipped('REDIS_CLUSTER_HOSTS env var is not defined.');

View File

@@ -32,12 +32,10 @@ class ProxyAdapterTest extends AdapterTestCase
return new ProxyAdapter(new ArrayAdapter(), '', $defaultLifetime);
}
/**
* @expectedException \Exception
* @expectedExceptionMessage OK bar
*/
public function testProxyfiedItem()
{
$this->expectException('Exception');
$this->expectExceptionMessage('OK bar');
$item = new CacheItem();
$pool = new ProxyAdapter(new TestingArrayAdapter($item));

View File

@@ -17,9 +17,9 @@ use Symfony\Component\Cache\Traits\RedisProxy;
class RedisAdapterTest extends AbstractRedisAdapterTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
parent::setupBeforeClass();
parent::setUpBeforeClass();
self::$redis = AbstractAdapter::createConnection('redis://'.getenv('REDIS_HOST'), ['lazy' => true]);
}
@@ -55,11 +55,11 @@ class RedisAdapterTest extends AbstractRedisAdapterTest
/**
* @dataProvider provideFailedCreateConnection
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage Redis connection failed
*/
public function testFailedCreateConnection($dsn)
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('Redis connection failed');
RedisAdapter::createConnection($dsn);
}
@@ -74,11 +74,11 @@ class RedisAdapterTest extends AbstractRedisAdapterTest
/**
* @dataProvider provideInvalidCreateConnection
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage Invalid Redis DSN
*/
public function testInvalidCreateConnection($dsn)
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('Invalid Redis DSN');
RedisAdapter::createConnection($dsn);
}

View File

@@ -13,7 +13,7 @@ namespace Symfony\Component\Cache\Tests\Adapter;
class RedisArrayAdapterTest extends AbstractRedisAdapterTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
parent::setupBeforeClass();
if (!class_exists('RedisArray')) {

View File

@@ -13,7 +13,7 @@ namespace Symfony\Component\Cache\Tests\Adapter;
class RedisClusterAdapterTest extends AbstractRedisAdapterTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!class_exists('RedisCluster')) {
self::markTestSkipped('The RedisCluster class is required.');

View File

@@ -11,6 +11,8 @@
namespace Symfony\Component\Cache\Tests\Adapter;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Cache\CacheItemInterface;
use Symfony\Component\Cache\Adapter\AdapterInterface;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Symfony\Component\Cache\Adapter\TagAwareAdapter;
@@ -30,11 +32,9 @@ class TagAwareAdapterTest extends AdapterTestCase
FilesystemAdapterTest::rmdir(sys_get_temp_dir().'/symfony-cache');
}
/**
* @expectedException \Psr\Cache\InvalidArgumentException
*/
public function testInvalidTag()
{
$this->expectException('Psr\Cache\InvalidArgumentException');
$pool = $this->createCachePool();
$item = $pool->getItem('foo');
$item->tag(':');
@@ -161,8 +161,119 @@ class TagAwareAdapterTest extends AdapterTestCase
$this->assertFalse($cache->prune());
}
public function testKnownTagVersionsTtl()
{
$itemsPool = new FilesystemAdapter('', 10);
$tagsPool = $this
->getMockBuilder(AdapterInterface::class)
->getMock();
$pool = new TagAwareAdapter($itemsPool, $tagsPool, 10);
$item = $pool->getItem('foo');
$item->tag(['baz']);
$item->expiresAfter(100);
$tag = $this->getMockBuilder(CacheItemInterface::class)->getMock();
$tag->expects(self::exactly(2))->method('get')->willReturn(10);
$tagsPool->expects(self::exactly(2))->method('getItems')->willReturn([
'baz'.TagAwareAdapter::TAGS_PREFIX => $tag,
]);
$pool->save($item);
$this->assertTrue($pool->getItem('foo')->isHit());
$this->assertTrue($pool->getItem('foo')->isHit());
sleep(20);
$this->assertTrue($pool->getItem('foo')->isHit());
sleep(5);
$this->assertTrue($pool->getItem('foo')->isHit());
}
public function testTagEntryIsCreatedForItemWithoutTags()
{
$pool = $this->createCachePool();
$itemKey = 'foo';
$item = $pool->getItem($itemKey);
$pool->save($item);
$adapter = new FilesystemAdapter();
$this->assertTrue($adapter->hasItem(TagAwareAdapter::TAGS_PREFIX.$itemKey));
}
public function testHasItemReturnsFalseWhenPoolDoesNotHaveItemTags()
{
$pool = $this->createCachePool();
$itemKey = 'foo';
$item = $pool->getItem($itemKey);
$pool->save($item);
$anotherPool = $this->createCachePool();
$adapter = new FilesystemAdapter();
$adapter->deleteItem(TagAwareAdapter::TAGS_PREFIX.$itemKey); //simulate item losing tags pair
$this->assertFalse($anotherPool->hasItem($itemKey));
}
public function testGetItemReturnsCacheMissWhenPoolDoesNotHaveItemTags()
{
$pool = $this->createCachePool();
$itemKey = 'foo';
$item = $pool->getItem($itemKey);
$pool->save($item);
$anotherPool = $this->createCachePool();
$adapter = new FilesystemAdapter();
$adapter->deleteItem(TagAwareAdapter::TAGS_PREFIX.$itemKey); //simulate item losing tags pair
$item = $anotherPool->getItem($itemKey);
$this->assertFalse($item->isHit());
}
public function testHasItemReturnsFalseWhenPoolDoesNotHaveItemAndOnlyHasTags()
{
$pool = $this->createCachePool();
$itemKey = 'foo';
$item = $pool->getItem($itemKey);
$pool->save($item);
$anotherPool = $this->createCachePool();
$adapter = new FilesystemAdapter();
$adapter->deleteItem($itemKey); //simulate losing item but keeping tags
$this->assertFalse($anotherPool->hasItem($itemKey));
}
public function testGetItemReturnsCacheMissWhenPoolDoesNotHaveItemAndOnlyHasTags()
{
$pool = $this->createCachePool();
$itemKey = 'foo';
$item = $pool->getItem($itemKey);
$pool->save($item);
$anotherPool = $this->createCachePool();
$adapter = new FilesystemAdapter();
$adapter->deleteItem($itemKey); //simulate losing item but keeping tags
$item = $anotherPool->getItem($itemKey);
$this->assertFalse($item->isHit());
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|PruneableCacheInterface
* @return MockObject|PruneableCacheInterface
*/
private function getPruneableMock()
{
@@ -179,7 +290,7 @@ class TagAwareAdapterTest extends AdapterTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|PruneableCacheInterface
* @return MockObject|PruneableCacheInterface
*/
private function getFailingPruneableMock()
{
@@ -196,7 +307,7 @@ class TagAwareAdapterTest extends AdapterTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|AdapterInterface
* @return MockObject|AdapterInterface
*/
private function getNonPruneableMock()
{

View File

@@ -23,11 +23,11 @@ class CacheItemTest extends TestCase
/**
* @dataProvider provideInvalidKey
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage Cache key
*/
public function testInvalidKey($key)
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('Cache key');
CacheItem::validateKey($key);
}
@@ -66,11 +66,11 @@ class CacheItemTest extends TestCase
/**
* @dataProvider provideInvalidKey
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage Cache tag
*/
public function testInvalidTag($tag)
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('Cache tag');
$item = new CacheItem();
$item->tag($tag);
}

View File

@@ -28,7 +28,7 @@ abstract class AbstractRedisCacheTest extends CacheTestCase
return new RedisCache(self::$redis, str_replace('\\', '.', __CLASS__), $defaultLifetime);
}
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!\extension_loaded('redis')) {
self::markTestSkipped('Extension redis required.');

View File

@@ -11,6 +11,7 @@
namespace Symfony\Component\Cache\Tests\Simple;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\SimpleCache\CacheInterface;
use Symfony\Component\Cache\PruneableInterface;
use Symfony\Component\Cache\Simple\ArrayCache;
@@ -27,21 +28,17 @@ class ChainCacheTest extends CacheTestCase
return new ChainCache([new ArrayCache($defaultLifetime), new FilesystemCache('', $defaultLifetime)], $defaultLifetime);
}
/**
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage At least one cache must be specified.
*/
public function testEmptyCachesException()
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('At least one cache must be specified.');
new ChainCache([]);
}
/**
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage The class "stdClass" does not implement
*/
public function testInvalidCacheException()
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('The class "stdClass" does not implement');
new ChainCache([new \stdClass()]);
}
@@ -67,7 +64,7 @@ class ChainCacheTest extends CacheTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|PruneableCacheInterface
* @return MockObject|PruneableCacheInterface
*/
private function getPruneableMock()
{
@@ -84,7 +81,7 @@ class ChainCacheTest extends CacheTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|PruneableCacheInterface
* @return MockObject|PruneableCacheInterface
*/
private function getFailingPruneableMock()
{
@@ -101,7 +98,7 @@ class ChainCacheTest extends CacheTestCase
}
/**
* @return \PHPUnit_Framework_MockObject_MockObject|CacheInterface
* @return MockObject|CacheInterface
*/
private function getNonPruneableMock()
{

View File

@@ -24,7 +24,7 @@ class MemcachedCacheTest extends CacheTestCase
protected static $client;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!MemcachedCache::isSupported()) {
self::markTestSkipped('Extension memcached >=2.2.0 required.');
@@ -73,11 +73,11 @@ class MemcachedCacheTest extends CacheTestCase
/**
* @dataProvider provideBadOptions
* @expectedException \ErrorException
* @expectedExceptionMessage constant(): Couldn't find constant Memcached::
*/
public function testBadOptions($name, $value)
{
$this->expectException('ErrorException');
$this->expectExceptionMessage('constant(): Couldn\'t find constant Memcached::');
MemcachedCache::createConnection([], [$name => $value]);
}
@@ -102,12 +102,10 @@ class MemcachedCacheTest extends CacheTestCase
$this->assertSame(1, $client->getOption(\Memcached::OPT_LIBKETAMA_COMPATIBLE));
}
/**
* @expectedException \Symfony\Component\Cache\Exception\CacheException
* @expectedExceptionMessage MemcachedAdapter: "serializer" option must be "php" or "igbinary".
*/
public function testOptionSerializer()
{
$this->expectException('Symfony\Component\Cache\Exception\CacheException');
$this->expectExceptionMessage('MemcachedAdapter: "serializer" option must be "php" or "igbinary".');
if (!\Memcached::HAVE_JSON) {
$this->markTestSkipped('Memcached::HAVE_JSON required');
}

View File

@@ -23,7 +23,7 @@ class PdoCacheTest extends CacheTestCase
protected static $dbFile;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!\extension_loaded('pdo_sqlite')) {
self::markTestSkipped('Extension pdo_sqlite required.');

View File

@@ -24,7 +24,7 @@ class PdoDbalCacheTest extends CacheTestCase
protected static $dbFile;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!\extension_loaded('pdo_sqlite')) {
self::markTestSkipped('Extension pdo_sqlite required.');

View File

@@ -49,7 +49,7 @@ class PhpArrayCacheTest extends CacheTestCase
protected static $file;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
self::$file = sys_get_temp_dir().'/symfony-cache/php-array-adapter-test.php';
}

View File

@@ -36,7 +36,7 @@ class PhpArrayCacheWithFallbackTest extends CacheTestCase
protected static $file;
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
self::$file = sys_get_temp_dir().'/symfony-cache/php-array-adapter-test.php';
}

View File

@@ -13,7 +13,7 @@ namespace Symfony\Component\Cache\Tests\Simple;
class RedisArrayCacheTest extends AbstractRedisCacheTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
parent::setupBeforeClass();
if (!class_exists('RedisArray')) {

View File

@@ -15,7 +15,7 @@ use Symfony\Component\Cache\Simple\RedisCache;
class RedisCacheTest extends AbstractRedisCacheTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
parent::setupBeforeClass();
self::$redis = RedisCache::createConnection('redis://'.getenv('REDIS_HOST'));
@@ -45,11 +45,11 @@ class RedisCacheTest extends AbstractRedisCacheTest
/**
* @dataProvider provideFailedCreateConnection
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage Redis connection failed
*/
public function testFailedCreateConnection($dsn)
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('Redis connection failed');
RedisCache::createConnection($dsn);
}
@@ -64,11 +64,11 @@ class RedisCacheTest extends AbstractRedisCacheTest
/**
* @dataProvider provideInvalidCreateConnection
* @expectedException \Symfony\Component\Cache\Exception\InvalidArgumentException
* @expectedExceptionMessage Invalid Redis DSN
*/
public function testInvalidCreateConnection($dsn)
{
$this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException');
$this->expectExceptionMessage('Invalid Redis DSN');
RedisCache::createConnection($dsn);
}

View File

@@ -13,7 +13,7 @@ namespace Symfony\Component\Cache\Tests\Simple;
class RedisClusterCacheTest extends AbstractRedisCacheTest
{
public static function setupBeforeClass()
public static function setUpBeforeClass()
{
if (!class_exists('RedisCluster')) {
self::markTestSkipped('The RedisCluster class is required.');

View File

@@ -26,7 +26,7 @@ trait MemcachedTrait
'persistent_id' => null,
'username' => null,
'password' => null,
'serializer' => 'php',
\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_PHP,
];
private $client;
@@ -249,6 +249,7 @@ trait MemcachedTrait
foreach ($this->checkResultCode($this->getClient()->deleteMulti($encodedIds)) as $result) {
if (\Memcached::RES_SUCCESS !== $result && \Memcached::RES_NOTFOUND !== $result) {
$ok = false;
break;
}
}

View File

@@ -113,6 +113,8 @@ class ApcClassLoader
return true;
}
return null;
}
/**

View File

@@ -161,6 +161,8 @@ class ClassLoader
return true;
}
return null;
}
/**
@@ -203,5 +205,7 @@ class ClassLoader
if ($this->useIncludePath && $file = stream_resolve_include_path($classPath)) {
return $file;
}
return null;
}
}

View File

@@ -63,8 +63,6 @@ class MapClassLoader
*/
public function findFile($class)
{
if (isset($this->map[$class])) {
return $this->map[$class];
}
return isset($this->map[$class]) ? $this->map[$class] : null;
}
}

View File

@@ -55,6 +55,8 @@ class Psr4ClassLoader
}
}
}
return null;
}
/**

View File

@@ -208,11 +208,9 @@ class ClassCollectionLoaderTest extends TestCase
];
}
/**
* @expectedException \InvalidArgumentException
*/
public function testUnableToLoadClassException()
{
$this->expectException('InvalidArgumentException');
if (is_file($file = sys_get_temp_dir().'/foo.php')) {
unlink($file);
}

View File

@@ -112,6 +112,8 @@ class WinCacheClassLoader
return true;
}
return null;
}
/**

View File

@@ -106,6 +106,8 @@ class XcacheClassLoader
return true;
}
return null;
}
/**

View File

@@ -38,17 +38,13 @@ class ArrayNode extends BaseNode implements PrototypeNodeInterface
}
/**
* Normalizes keys between the different configuration formats.
* {@inheritdoc}
*
* Namely, you mostly have foo_bar in YAML while you have foo-bar in XML.
* After running this method, all keys are normalized to foo_bar.
*
* If you have a mixed key like foo-bar_moo, it will not be altered.
* The key will also not be altered if the target key already exists.
*
* @param mixed $value
*
* @return array The value with normalized keys
*/
protected function preNormalize($value)
{

View File

@@ -49,21 +49,37 @@ abstract class BaseNode implements NodeInterface
$this->parent = $parent;
}
/**
* @param string $key
*/
public function setAttribute($key, $value)
{
$this->attributes[$key] = $value;
}
/**
* @param string $key
*
* @return mixed
*/
public function getAttribute($key, $default = null)
{
return isset($this->attributes[$key]) ? $this->attributes[$key] : $default;
}
/**
* @param string $key
*
* @return bool
*/
public function hasAttribute($key)
{
return isset($this->attributes[$key]);
}
/**
* @return array
*/
public function getAttributes()
{
return $this->attributes;
@@ -74,6 +90,9 @@ abstract class BaseNode implements NodeInterface
$this->attributes = $attributes;
}
/**
* @param string $key
*/
public function removeAttribute($key)
{
unset($this->attributes[$key]);
@@ -92,7 +111,7 @@ abstract class BaseNode implements NodeInterface
/**
* Returns info message.
*
* @return string The info text
* @return string|null The info text
*/
public function getInfo()
{
@@ -112,7 +131,7 @@ abstract class BaseNode implements NodeInterface
/**
* Retrieves the example configuration for this node.
*
* @return string|array The example
* @return string|array|null The example
*/
public function getExample()
{
@@ -280,9 +299,9 @@ abstract class BaseNode implements NodeInterface
/**
* Normalizes the value before any other normalization is applied.
*
* @param $value
* @param mixed $value
*
* @return The normalized array value
* @return mixed The normalized array value
*/
protected function preNormalize($value)
{

View File

@@ -42,10 +42,9 @@ class XmlReferenceDumper
}
/**
* @param NodeInterface $node
* @param int $depth
* @param bool $root If the node is the root node
* @param string $namespace The namespace of the node
* @param int $depth
* @param bool $root If the node is the root node
* @param string $namespace The namespace of the node
*/
private function writeNode(NodeInterface $node, $depth = 0, $root = false, $namespace = null)
{
@@ -307,5 +306,7 @@ class XmlReferenceDumper
if (\is_array($value)) {
return implode(',', $value);
}
return '';
}
}

View File

@@ -70,10 +70,8 @@ class YamlReferenceDumper
}
/**
* @param NodeInterface $node
* @param NodeInterface|null $parentNode
* @param int $depth
* @param bool $prototypedArray
* @param int $depth
* @param bool $prototypedArray
*/
private function writeNode(NodeInterface $node, NodeInterface $parentNode = null, $depth = 0, $prototypedArray = false)
{
@@ -215,8 +213,6 @@ class YamlReferenceDumper
}
/**
* @param PrototypedArrayNode $node
*
* @return array
*/
private function getPrototypeChildren(PrototypedArrayNode $node)

View File

@@ -78,7 +78,7 @@ class PrototypedArrayNode extends ArrayNode
/**
* Retrieves the name of the attribute which value should be used as key.
*
* @return string The name of the attribute
* @return string|null The name of the attribute
*/
public function getKeyAttribute()
{

View File

@@ -168,5 +168,7 @@ abstract class FileLoader extends Loader
throw new FileLoaderLoadException($resource, $sourceResource, null, $e, $type);
}
}
return null;
}
}

View File

@@ -76,10 +76,14 @@ class ClassExistenceResource implements SelfCheckingResourceInterface, \Serializ
try {
$exists = class_exists($this->resource) || interface_exists($this->resource, false) || trait_exists($this->resource, false);
} catch (\ReflectionException $e) {
if (0 >= $timestamp) {
unset(self::$existsCache[1][$this->resource]);
throw $e;
} catch (\Exception $e) {
try {
self::throwOnRequiredClass($this->resource, $e);
} catch (\ReflectionException $e) {
if (0 >= $timestamp) {
unset(self::$existsCache[1][$this->resource]);
throw $e;
}
}
} finally {
self::$autoloadedClass = $autoloadedClass;
@@ -117,24 +121,57 @@ class ClassExistenceResource implements SelfCheckingResourceInterface, \Serializ
}
/**
* @throws \ReflectionException When $class is not found and is required
* Throws a reflection exception when the passed class does not exist but is required.
*
* A class is considered "not required" when it's loaded as part of a "class_exists" or similar check.
*
* This function can be used as an autoload function to throw a reflection
* exception if the class was not found by previous autoload functions.
*
* A previous exception can be passed. In this case, the class is considered as being
* required totally, so if it doesn't exist, a reflection exception is always thrown.
* If it exists, the previous exception is rethrown.
*
* @throws \ReflectionException
*
* @internal
*/
public static function throwOnRequiredClass($class)
public static function throwOnRequiredClass($class, \Exception $previous = null)
{
if (self::$autoloadedClass === $class) {
// If the passed class is the resource being checked, we shouldn't throw.
if (null === $previous && self::$autoloadedClass === $class) {
return;
}
$e = new \ReflectionException("Class $class not found");
if (class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false)) {
if (null !== $previous) {
throw $previous;
}
return;
}
if ($previous instanceof \ReflectionException) {
throw $previous;
}
$e = new \ReflectionException(sprintf('Class "%s" not found while loading "%s".', $class, self::$autoloadedClass), 0, $previous);
if (null !== $previous) {
throw $e;
}
$trace = $e->getTrace();
$autoloadFrame = [
'function' => 'spl_autoload_call',
'args' => [$class],
];
$i = 1 + array_search($autoloadFrame, $trace, true);
if (isset($trace[$i]['function']) && !isset($trace[$i]['class'])) {
if (false === $i = array_search($autoloadFrame, $trace, true)) {
throw $e;
}
if (isset($trace[++$i]['function']) && !isset($trace[$i]['class'])) {
switch ($trace[$i]['function']) {
case 'get_class_methods':
case 'get_class_vars':

View File

@@ -100,7 +100,9 @@ class GlobResource implements \IteratorAggregate, SelfCheckingResourceInterface,
}
if (0 !== strpos($this->prefix, 'phar://') && false === strpos($this->pattern, '/**/') && (\defined('GLOB_BRACE') || false === strpos($this->pattern, '{'))) {
foreach (glob($this->prefix.$this->pattern, \defined('GLOB_BRACE') ? GLOB_BRACE : 0) as $path) {
$paths = glob($this->prefix.$this->pattern, GLOB_NOSORT | (\defined('GLOB_BRACE') ? GLOB_BRACE : 0));
sort($paths);
foreach ($paths as $path) {
if ($this->recursive && is_dir($path)) {
$files = iterator_to_array(new \RecursiveIteratorIterator(
new \RecursiveCallbackFilterIterator(

View File

@@ -140,7 +140,7 @@ class ReflectionClassResource implements SelfCheckingResourceInterface, \Seriali
foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED) as $p) {
yield $p->getDocComment().$p;
yield print_r(isset($defaults[$p->name]) ? $defaults[$p->name] : null, true);
yield print_r(isset($defaults[$p->name]) && !\is_object($defaults[$p->name]) ? $defaults[$p->name] : null, true);
}
}

View File

@@ -16,12 +16,10 @@ use Symfony\Component\Config\ConfigCacheFactory;
class ConfigCacheFactoryTest extends TestCase
{
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Invalid type for callback argument. Expected callable, but got "object".
*/
public function testCacheWithInvalidCallback()
{
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('Invalid type for callback argument. Expected callable, but got "object".');
$cacheFactory = new ConfigCacheFactory(true);
$cacheFactory->cache('file', new \stdClass());

View File

@@ -18,21 +18,17 @@ use Symfony\Component\Config\Definition\ScalarNode;
class ArrayNodeTest extends TestCase
{
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException
*/
public function testNormalizeThrowsExceptionWhenFalseIsNotAllowed()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$node = new ArrayNode('root');
$node->normalize(false);
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
* @expectedExceptionMessage Unrecognized option "foo" under "root"
*/
public function testExceptionThrownOnUnrecognizedChild()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$this->expectExceptionMessage('Unrecognized option "foo" under "root"');
$node = new ArrayNode('root');
$node->normalize(['foo' => 'bar']);
}
@@ -55,12 +51,8 @@ class ArrayNodeTest extends TestCase
public function testIgnoreAndRemoveBehaviors($ignore, $remove, $expected, $message = '')
{
if ($expected instanceof \Exception) {
if (method_exists($this, 'expectException')) {
$this->expectException(\get_class($expected));
$this->expectExceptionMessage($expected->getMessage());
} else {
$this->setExpectedException(\get_class($expected), $expected->getMessage());
}
$this->expectException(\get_class($expected));
$this->expectExceptionMessage($expected->getMessage());
}
$node = new ArrayNode('root');
$node->setIgnoreExtraKeys($ignore, $remove);
@@ -180,24 +172,20 @@ class ArrayNodeTest extends TestCase
];
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Child nodes must be named.
*/
public function testAddChildEmptyName()
{
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('Child nodes must be named.');
$node = new ArrayNode('root');
$childNode = new ArrayNode('');
$node->addChild($childNode);
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage A child node named "foo" already exists.
*/
public function testAddChildNameAlreadyExists()
{
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('A child node named "foo" already exists.');
$node = new ArrayNode('root');
$childNode = new ArrayNode('foo');
@@ -207,12 +195,10 @@ class ArrayNodeTest extends TestCase
$node->addChild($childNodeWithSameName);
}
/**
* @expectedException \RuntimeException
* @expectedExceptionMessage The node at path "foo" has no default value.
*/
public function testGetDefaultValueWithoutDefaultValue()
{
$this->expectException('RuntimeException');
$this->expectExceptionMessage('The node at path "foo" has no default value.');
$node = new ArrayNode('foo');
$node->getDefaultValue();
}

View File

@@ -48,10 +48,10 @@ class BooleanNodeTest extends TestCase
/**
* @dataProvider getInvalidValues
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException
*/
public function testNormalizeThrowsExceptionOnInvalidValues($value)
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$node = new BooleanNode('test');
$node->normalize($value);
}

View File

@@ -36,11 +36,11 @@ class ArrayNodeDefinitionTest extends TestCase
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException
* @dataProvider providePrototypeNodeSpecificCalls
*/
public function testPrototypeNodeSpecificOption($method, $args)
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException');
$node = new ArrayNodeDefinition('root');
\call_user_func_array([$node, $method], $args);
@@ -58,11 +58,9 @@ class ArrayNodeDefinitionTest extends TestCase
];
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException
*/
public function testConcreteNodeSpecificOption()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException');
$node = new ArrayNodeDefinition('root');
$node
->addDefaultsIfNotSet()
@@ -71,11 +69,9 @@ class ArrayNodeDefinitionTest extends TestCase
$node->getNode();
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException
*/
public function testPrototypeNodesCantHaveADefaultValueWhenUsingDefaultChildren()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException');
$node = new ArrayNodeDefinition('root');
$node
->defaultValue([])

View File

@@ -16,12 +16,10 @@ use Symfony\Component\Config\Definition\Builder\BooleanNodeDefinition;
class BooleanNodeDefinitionTest extends TestCase
{
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException
* @expectedExceptionMessage ->cannotBeEmpty() is not applicable to BooleanNodeDefinition.
*/
public function testCannotBeEmptyThrowsAnException()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException');
$this->expectExceptionMessage('->cannotBeEmpty() is not applicable to BooleanNodeDefinition.');
$def = new BooleanNodeDefinition('foo');
$def->cannotBeEmpty();
}

View File

@@ -34,22 +34,18 @@ class EnumNodeDefinitionTest extends TestCase
$this->assertEquals(['foo'], $node->getValues());
}
/**
* @expectedException \RuntimeException
* @expectedExceptionMessage You must call ->values() on enum nodes.
*/
public function testNoValuesPassed()
{
$this->expectException('RuntimeException');
$this->expectExceptionMessage('You must call ->values() on enum nodes.');
$def = new EnumNodeDefinition('foo');
$def->getNode();
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage ->values() must be called with at least one value.
*/
public function testWithNoValues()
{
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('->values() must be called with at least one value.');
$def = new EnumNodeDefinition('foo');
$def->values([]);
}

View File

@@ -164,11 +164,9 @@ class ExprBuilderTest extends TestCase
yield [['value'], ['value']];
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
*/
public function testThenInvalid()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$test = $this->getTestBuilder()
->ifString()
->thenInvalid('Invalid value')
@@ -185,21 +183,17 @@ class ExprBuilderTest extends TestCase
$this->assertEquals([], $this->finalizeTestBuilder($test));
}
/**
* @expectedException \RuntimeException
* @expectedExceptionMessage You must specify an if part.
*/
public function testEndIfPartNotSpecified()
{
$this->expectException('RuntimeException');
$this->expectExceptionMessage('You must specify an if part.');
$this->getTestBuilder()->end();
}
/**
* @expectedException \RuntimeException
* @expectedExceptionMessage You must specify a then part.
*/
public function testEndThenPartNotSpecified()
{
$this->expectException('RuntimeException');
$this->expectExceptionMessage('You must specify a then part.');
$builder = $this->getTestBuilder();
$builder->ifPart = 'test';
$builder->end();

View File

@@ -17,20 +17,16 @@ use Symfony\Component\Config\Definition\Builder\VariableNodeDefinition as BaseVa
class NodeBuilderTest extends TestCase
{
/**
* @expectedException \RuntimeException
*/
public function testThrowsAnExceptionWhenTryingToCreateANonRegisteredNodeType()
{
$this->expectException('RuntimeException');
$builder = new BaseNodeBuilder();
$builder->node('', 'foobar');
}
/**
* @expectedException \RuntimeException
*/
public function testThrowsAnExceptionWhenTheNodeClassIsNotFound()
{
$this->expectException('RuntimeException');
$builder = new BaseNodeBuilder();
$builder
->setNodeClass('noclasstype', '\\foo\\bar\\noclass')

View File

@@ -14,46 +14,37 @@ namespace Symfony\Component\Config\Tests\Definition\Builder;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Config\Definition\Builder\FloatNodeDefinition;
use Symfony\Component\Config\Definition\Builder\IntegerNodeDefinition;
use Symfony\Component\Config\Definition\Builder\IntegerNodeDefinition as NumericNodeDefinition;
class NumericNodeDefinitionTest extends TestCase
{
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage You cannot define a min(4) as you already have a max(3)
*/
public function testIncoherentMinAssertion()
{
$def = new NumericNodeDefinition('foo');
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('You cannot define a min(4) as you already have a max(3)');
$def = new IntegerNodeDefinition('foo');
$def->max(3)->min(4);
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage You cannot define a max(2) as you already have a min(3)
*/
public function testIncoherentMaxAssertion()
{
$node = new NumericNodeDefinition('foo');
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('You cannot define a max(2) as you already have a min(3)');
$node = new IntegerNodeDefinition('foo');
$node->min(3)->max(2);
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
* @expectedExceptionMessage The value 4 is too small for path "foo". Should be greater than or equal to 5
*/
public function testIntegerMinAssertion()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$this->expectExceptionMessage('The value 4 is too small for path "foo". Should be greater than or equal to 5');
$def = new IntegerNodeDefinition('foo');
$def->min(5)->getNode()->finalize(4);
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
* @expectedExceptionMessage The value 4 is too big for path "foo". Should be less than or equal to 3
*/
public function testIntegerMaxAssertion()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$this->expectExceptionMessage('The value 4 is too big for path "foo". Should be less than or equal to 3');
$def = new IntegerNodeDefinition('foo');
$def->max(3)->getNode()->finalize(4);
}
@@ -65,22 +56,18 @@ class NumericNodeDefinitionTest extends TestCase
$this->assertEquals(4, $node->finalize(4));
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
* @expectedExceptionMessage The value 400 is too small for path "foo". Should be greater than or equal to 500
*/
public function testFloatMinAssertion()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$this->expectExceptionMessage('The value 400 is too small for path "foo". Should be greater than or equal to 500');
$def = new FloatNodeDefinition('foo');
$def->min(5E2)->getNode()->finalize(4e2);
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
* @expectedExceptionMessage The value 4.3 is too big for path "foo". Should be less than or equal to 0.3
*/
public function testFloatMaxAssertion()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$this->expectExceptionMessage('The value 4.3 is too big for path "foo". Should be less than or equal to 0.3');
$def = new FloatNodeDefinition('foo');
$def->max(0.3)->getNode()->finalize(4.3);
}
@@ -92,13 +79,11 @@ class NumericNodeDefinitionTest extends TestCase
$this->assertEquals(4.5, $node->finalize(4.5));
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException
* @expectedExceptionMessage ->cannotBeEmpty() is not applicable to NumericNodeDefinition.
*/
public function testCannotBeEmptyThrowsAnException()
{
$def = new NumericNodeDefinition('foo');
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException');
$this->expectExceptionMessage('->cannotBeEmpty() is not applicable to NumericNodeDefinition.');
$def = new IntegerNodeDefinition('foo');
$def->cannotBeEmpty();
}
}

View File

@@ -128,7 +128,7 @@ class TreeBuilderTest extends TestCase
$tree = $builder->buildTree();
$children = $tree->getChildren();
$this->assertInternalType('array', $tree->getExample());
$this->assertIsArray($tree->getExample());
$this->assertEquals('example', $children['child']->getExample());
}
}

View File

@@ -22,12 +22,10 @@ class EnumNodeTest extends TestCase
$this->assertSame('foo', $node->finalize('foo'));
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage $values must contain at least one element.
*/
public function testConstructionWithNoValues()
{
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('$values must contain at least one element.');
new EnumNode('foo', null, []);
}
@@ -43,12 +41,10 @@ class EnumNodeTest extends TestCase
$this->assertSame('foo', $node->finalize('foo'));
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
* @expectedExceptionMessage The value "foobar" is not allowed for path "foo". Permissible values: "foo", "bar"
*/
public function testFinalizeWithInvalidValue()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$this->expectExceptionMessage('The value "foobar" is not allowed for path "foo". Permissible values: "foo", "bar"');
$node = new EnumNode('foo', null, ['foo', 'bar']);
$node->finalize('foobar');
}

View File

@@ -54,10 +54,10 @@ class FloatNodeTest extends TestCase
/**
* @dataProvider getInvalidValues
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException
*/
public function testNormalizeThrowsExceptionOnInvalidValues($value)
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$node = new FloatNode('test');
$node->normalize($value);
}

View File

@@ -49,10 +49,10 @@ class IntegerNodeTest extends TestCase
/**
* @dataProvider getInvalidValues
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException
*/
public function testNormalizeThrowsExceptionOnInvalidValues($value)
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$node = new IntegerNode('test');
$node->normalize($value);
}

View File

@@ -16,11 +16,9 @@ use Symfony\Component\Config\Definition\Builder\TreeBuilder;
class MergeTest extends TestCase
{
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException
*/
public function testForbiddenOverwrite()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException');
$tb = new TreeBuilder();
$tree = $tb
->root('root', 'array')
@@ -92,11 +90,9 @@ class MergeTest extends TestCase
], $tree->merge($a, $b));
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
*/
public function testDoesNotAllowNewKeysInSubsequentConfigs()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$tb = new TreeBuilder();
$tree = $tb
->root('config', 'array')

View File

@@ -169,12 +169,10 @@ class NormalizationTest extends TestCase
return array_map(function ($v) { return [$v]; }, $configs);
}
/**
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
* @expectedExceptionMessage The attribute "id" must be set for path "root.thing".
*/
public function testNonAssociativeArrayThrowsExceptionIfAttributeNotSet()
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$this->expectExceptionMessage('The attribute "id" must be set for path "root.thing".');
$denormalized = [
'thing' => [
['foo', 'bar'], ['baz', 'qux'],

View File

@@ -262,7 +262,6 @@ class PrototypedArrayNodeTest extends TestCase
* ]
* ]
*
*
* @dataProvider getDataForKeyRemovedLeftValueOnly
*/
public function testMappedAttributeKeyIsRemovedLeftValueOnly($value, $children, $expected)

View File

@@ -74,10 +74,10 @@ class ScalarNodeTest extends TestCase
/**
* @dataProvider getInvalidValues
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException
*/
public function testNormalizeThrowsExceptionOnInvalidValues($value)
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$node = new ScalarNode('test');
$node->normalize($value);
}
@@ -95,12 +95,8 @@ class ScalarNodeTest extends TestCase
{
$node = new ScalarNode('test');
if (method_exists($this, 'expectException')) {
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$this->expectExceptionMessage('Invalid type for path "test". Expected scalar, but got array.');
} else {
$this->setExpectedException('Symfony\Component\Config\Definition\Exception\InvalidTypeException', 'Invalid type for path "test". Expected scalar, but got array.');
}
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$this->expectExceptionMessage('Invalid type for path "test". Expected scalar, but got array.');
$node->normalize([]);
}
@@ -110,12 +106,8 @@ class ScalarNodeTest extends TestCase
$node = new ScalarNode('test');
$node->setInfo('"the test value"');
if (method_exists($this, 'expectException')) {
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$this->expectExceptionMessage("Invalid type for path \"test\". Expected scalar, but got array.\nHint: \"the test value\"");
} else {
$this->setExpectedException('Symfony\Component\Config\Definition\Exception\InvalidTypeException', "Invalid type for path \"test\". Expected scalar, but got array.\nHint: \"the test value\"");
}
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException');
$this->expectExceptionMessage("Invalid type for path \"test\". Expected scalar, but got array.\nHint: \"the test value\"");
$node->normalize([]);
}
@@ -148,12 +140,12 @@ class ScalarNodeTest extends TestCase
/**
* @dataProvider getEmptyValues
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
*
* @param mixed $value
*/
public function testNotAllowedEmptyValuesThrowException($value)
{
$this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException');
$node = new ScalarNode('test');
$node->setAllowEmptyValue(false);
$node->finalize($value);

View File

@@ -86,33 +86,27 @@ class FileLocatorTest extends TestCase
);
}
/**
* @expectedException \Symfony\Component\Config\Exception\FileLocatorFileNotFoundException
* @expectedExceptionMessage The file "foobar.xml" does not exist
*/
public function testLocateThrowsAnExceptionIfTheFileDoesNotExists()
{
$this->expectException('Symfony\Component\Config\Exception\FileLocatorFileNotFoundException');
$this->expectExceptionMessage('The file "foobar.xml" does not exist');
$loader = new FileLocator([__DIR__.'/Fixtures']);
$loader->locate('foobar.xml', __DIR__);
}
/**
* @expectedException \Symfony\Component\Config\Exception\FileLocatorFileNotFoundException
*/
public function testLocateThrowsAnExceptionIfTheFileDoesNotExistsInAbsolutePath()
{
$this->expectException('Symfony\Component\Config\Exception\FileLocatorFileNotFoundException');
$loader = new FileLocator([__DIR__.'/Fixtures']);
$loader->locate(__DIR__.'/Fixtures/foobar.xml', __DIR__);
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage An empty file name is not valid to be located.
*/
public function testLocateEmpty()
{
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('An empty file name is not valid to be located.');
$loader = new FileLocator([__DIR__.'/Fixtures']);
$loader->locate(null, __DIR__);

View File

@@ -19,7 +19,7 @@ class DelegatingLoaderTest extends TestCase
{
public function testConstructor()
{
$loader = new DelegatingLoader($resolver = new LoaderResolver());
new DelegatingLoader($resolver = new LoaderResolver());
$this->assertTrue(true, '__construct() takes a loader resolver as its first argument');
}
@@ -56,11 +56,9 @@ class DelegatingLoaderTest extends TestCase
$loader->load('foo');
}
/**
* @expectedException \Symfony\Component\Config\Exception\FileLoaderLoadException
*/
public function testLoadThrowsAnExceptionIfTheResourceCannotBeLoaded()
{
$this->expectException('Symfony\Component\Config\Exception\FileLoaderLoadException');
$loader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock();
$loader->expects($this->once())->method('supports')->willReturn(false);
$resolver = new LoaderResolver([$loader]);

View File

@@ -43,11 +43,9 @@ class LoaderTest extends TestCase
$this->assertSame($resolvedLoader, $loader->resolve('foo.xml'), '->resolve() finds a loader');
}
/**
* @expectedException \Symfony\Component\Config\Exception\FileLoaderLoadException
*/
public function testResolveWhenResolverCannotFindLoader()
{
$this->expectException('Symfony\Component\Config\Exception\FileLoaderLoadException');
$resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock();
$resolver->expects($this->once())
->method('resolve')

View File

@@ -67,7 +67,7 @@ EOF
$loadedClass = 123;
$res = new ClassExistenceResource('MissingFooClass', false);
new ClassExistenceResource('MissingFooClass', false);
$this->assertSame(123, $loadedClass);
} finally {
@@ -81,12 +81,11 @@ EOF
$this->assertTrue($res->isFresh(time()));
}
/**
* @expectedException \ReflectionException
* @expectedExceptionMessage Class Symfony\Component\Config\Tests\Fixtures\MissingParent not found
*/
public function testBadParentWithNoTimestamp()
{
$this->expectException('ReflectionException');
$this->expectExceptionMessage('Class "Symfony\Component\Config\Tests\Fixtures\MissingParent" not found while loading "Symfony\Component\Config\Tests\Fixtures\BadParent".');
$res = new ClassExistenceResource(BadParent::class, false);
$res->isFresh(0);
}

View File

@@ -63,13 +63,11 @@ class DirectoryResourceTest extends TestCase
$this->assertEquals('bar', $resource->getPattern());
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessageRegExp /The directory ".*" does not exist./
*/
public function testResourceDoesNotExist()
{
$resource = new DirectoryResource('/____foo/foobar'.mt_rand(1, 999999));
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessageRegExp('/The directory ".*" does not exist./');
new DirectoryResource('/____foo/foobar'.mt_rand(1, 999999));
}
public function testIsFresh()
@@ -167,7 +165,7 @@ class DirectoryResourceTest extends TestCase
{
$resource = new DirectoryResource($this->directory, '/\.(foo|xml)$/');
$unserialized = unserialize(serialize($resource));
unserialize(serialize($resource));
$this->assertSame(realpath($this->directory), $resource->getResource());
$this->assertSame('/\.(foo|xml)$/', $resource->getPattern());

View File

@@ -53,13 +53,11 @@ class FileResourceTest extends TestCase
$this->assertSame(realpath($this->file), (string) $this->resource);
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessageRegExp /The file ".*" does not exist./
*/
public function testResourceDoesNotExist()
{
$resource = new FileResource('/____foo/foobar'.mt_rand(1, 999999));
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessageRegExp('/The file ".*" does not exist./');
new FileResource('/____foo/foobar'.mt_rand(1, 999999));
}
public function testIsFresh()
@@ -78,7 +76,7 @@ class FileResourceTest extends TestCase
public function testSerializeUnserialize()
{
$unserialized = unserialize(serialize($this->resource));
unserialize(serialize($this->resource));
$this->assertSame(realpath($this->file), $this->resource->getResource());
}

View File

@@ -170,6 +170,15 @@ EOPHP;
$res = new ReflectionClassResource(new \ReflectionClass(TestServiceSubscriber::class));
$this->assertTrue($res->isFresh(0));
}
public function testIgnoresObjectsInSignature()
{
$res = new ReflectionClassResource(new \ReflectionClass(TestServiceWithStaticProperty::class));
$this->assertTrue($res->isFresh(0));
TestServiceWithStaticProperty::$initializedObject = new TestServiceWithStaticProperty();
$this->assertTrue($res->isFresh(0));
}
}
interface DummyInterface
@@ -195,3 +204,8 @@ class TestServiceSubscriber implements ServiceSubscriberInterface
return self::$subscribedServices;
}
}
class TestServiceWithStaticProperty
{
public static $initializedObject;
}

View File

@@ -24,28 +24,28 @@ class XmlUtilsTest extends TestCase
XmlUtils::loadFile($fixtures.'invalid.xml');
$this->fail();
} catch (\InvalidArgumentException $e) {
$this->assertContains('ERROR 77', $e->getMessage());
$this->assertStringContainsString('ERROR 77', $e->getMessage());
}
try {
XmlUtils::loadFile($fixtures.'document_type.xml');
$this->fail();
} catch (\InvalidArgumentException $e) {
$this->assertContains('Document types are not allowed', $e->getMessage());
$this->assertStringContainsString('Document types are not allowed', $e->getMessage());
}
try {
XmlUtils::loadFile($fixtures.'invalid_schema.xml', $fixtures.'schema.xsd');
$this->fail();
} catch (\InvalidArgumentException $e) {
$this->assertContains('ERROR 1845', $e->getMessage());
$this->assertStringContainsString('ERROR 1845', $e->getMessage());
}
try {
XmlUtils::loadFile($fixtures.'invalid_schema.xml', 'invalid_callback_or_file');
$this->fail();
} catch (\InvalidArgumentException $e) {
$this->assertContains('XSD file or callable', $e->getMessage());
$this->assertStringContainsString('XSD file or callable', $e->getMessage());
}
$mock = $this->getMockBuilder(__NAMESPACE__.'\Validator')->getMock();
@@ -62,12 +62,10 @@ class XmlUtilsTest extends TestCase
$this->assertSame([], libxml_get_errors());
}
/**
* @expectedException \Symfony\Component\Config\Util\Exception\InvalidXmlException
* @expectedExceptionMessage The XML is not valid
*/
public function testParseWithInvalidValidatorCallable()
{
$this->expectException('Symfony\Component\Config\Util\Exception\InvalidXmlException');
$this->expectExceptionMessage('The XML is not valid');
$fixtures = __DIR__.'/../Fixtures/Util/';
$mock = $this->getMockBuilder(__NAMESPACE__.'\Validator')->getMock();
@@ -166,12 +164,8 @@ class XmlUtilsTest extends TestCase
{
$file = __DIR__.'/../Fixtures/foo.xml';
if (method_exists($this, 'expectException')) {
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage(sprintf('File %s does not contain valid XML, it is empty.', $file));
} else {
$this->setExpectedException('InvalidArgumentException', sprintf('File %s does not contain valid XML, it is empty.', $file));
}
$this->expectException('InvalidArgumentException');
$this->expectExceptionMessage(sprintf('File %s does not contain valid XML, it is empty.', $file));
XmlUtils::loadFile($file);
}

View File

@@ -152,7 +152,7 @@ class XmlUtils
* @param \DOMElement $element A \DOMElement instance
* @param bool $checkPrefix Check prefix in an element or an attribute name
*
* @return array A PHP array
* @return mixed
*/
public static function convertDomElementToArray(\DOMElement $element, $checkPrefix = true)
{
@@ -219,7 +219,7 @@ class XmlUtils
switch (true) {
case 'null' === $lowercaseValue:
return;
return null;
case ctype_digit($value):
$raw = $value;
$cast = (int) $value;
@@ -234,7 +234,7 @@ class XmlUtils
return true;
case 'false' === $lowercaseValue:
return false;
case isset($value[1]) && '0b' == $value[0].$value[1]:
case isset($value[1]) && '0b' == $value[0].$value[1] && preg_match('/^0b[01]*$/', $value):
return bindec($value);
case is_numeric($value):
return '0x' === $value[0].$value[1] ? hexdec($value) : (float) $value;

View File

@@ -454,12 +454,11 @@ class Application
if (!$command->isEnabled()) {
$command->setApplication(null);
return;
return null;
}
if (null === $command->getDefinition()) {
throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', \get_class($command)));
}
// Will throw if the command is not correctly initialized.
$command->getDefinition();
if (!$command->getName()) {
throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', \get_class($command)));
@@ -530,6 +529,10 @@ class Application
{
$namespaces = [];
foreach ($this->all() as $command) {
if ($command->isHidden()) {
continue;
}
$namespaces = array_merge($namespaces, $this->extractAllNamespaces($command->getName()));
foreach ($command->getAliases() as $alias) {
@@ -623,6 +626,11 @@ class Application
$message = sprintf('Command "%s" is not defined.', $name);
if ($alternatives = $this->findAlternatives($name, $allCommands)) {
// remove hidden commands
$alternatives = array_filter($alternatives, function ($name) {
return !$this->get($name)->isHidden();
});
if (1 == \count($alternatives)) {
$message .= "\n\nDid you mean this?\n ";
} else {
@@ -631,7 +639,7 @@ class Application
$message .= implode("\n ", $alternatives);
}
throw new CommandNotFoundException($message, $alternatives);
throw new CommandNotFoundException($message, array_values($alternatives));
}
// filter out aliases for commands which are already on the list
@@ -655,13 +663,18 @@ class Application
}
$abbrevs = array_map(function ($cmd) use ($commandList, $usableWidth, $maxLen) {
if (!$commandList[$cmd] instanceof Command) {
return $cmd;
$commandList[$cmd] = $this->commandLoader->get($cmd);
}
if ($commandList[$cmd]->isHidden()) {
return false;
}
$abbrev = str_pad($cmd, $maxLen, ' ').' '.$commandList[$cmd]->getDescription();
return Helper::strlen($abbrev) > $usableWidth ? Helper::substr($abbrev, 0, $usableWidth - 3).'...' : $abbrev;
}, array_values($commands));
$suggestions = $this->getAbbreviationSuggestions($abbrevs);
$suggestions = $this->getAbbreviationSuggestions(array_filter($abbrevs));
throw new CommandNotFoundException(sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s", $name, $suggestions), array_values($commands));
}
@@ -809,11 +822,11 @@ class Application
for ($i = 0, $count = \count($trace); $i < $count; ++$i) {
$class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
$type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
$function = $trace[$i]['function'];
$function = isset($trace[$i]['function']) ? $trace[$i]['function'] : '';
$file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a';
$line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a';
$output->writeln(sprintf(' %s%s%s() at <info>%s:%s</info>', $class, $type, $function, $file, $line), OutputInterface::VERBOSITY_QUIET);
$output->writeln(sprintf(' %s%s at <info>%s:%s</info>', $class, $function ? $type.$function.'()' : '', $file, $line), OutputInterface::VERBOSITY_QUIET);
}
$output->writeln('', OutputInterface::VERBOSITY_QUIET);
@@ -1023,7 +1036,7 @@ class Application
/**
* Gets the name of the command based on input.
*
* @return string The command name
* @return string|null
*/
protected function getCommandName(InputInterface $input)
{
@@ -1099,8 +1112,7 @@ class Application
*/
public function extractNamespace($name, $limit = null)
{
$parts = explode(':', $name);
array_pop($parts);
$parts = explode(':', $name, -1);
return implode(':', null === $limit ? $parts : \array_slice($parts, 0, $limit));
}

View File

@@ -22,7 +22,7 @@ CHANGELOG
with value optional explicitly passed empty
* added console.error event to catch exceptions thrown by other listeners
* deprecated console.exception event in favor of console.error
* added ability to handle `CommandNotFoundException` through the
* added ability to handle `CommandNotFoundException` through the
`console.error` event
* deprecated default validation in `SymfonyQuestionHelper::ask`
@@ -38,7 +38,7 @@ CHANGELOG
-----
* added truncate method to FormatterHelper
* added setColumnWidth(s) method to Table
* added setColumnWidth(s) method to Table
2.8.3
-----

View File

@@ -40,8 +40,8 @@ class Command
private $aliases = [];
private $definition;
private $hidden = false;
private $help;
private $description;
private $help = '';
private $description = '';
private $ignoreValidationErrors = false;
private $applicationDefinitionMerged = false;
private $applicationDefinitionMergedWithArgs = false;
@@ -105,7 +105,7 @@ class Command
/**
* Gets the helper set.
*
* @return HelperSet A HelperSet instance
* @return HelperSet|null A HelperSet instance
*/
public function getHelperSet()
{
@@ -115,7 +115,7 @@ class Command
/**
* Gets the application instance for this command.
*
* @return Application An Application instance
* @return Application|null An Application instance
*/
public function getApplication()
{
@@ -278,7 +278,7 @@ class Command
$r = new \ReflectionFunction($code);
if (null === $r->getClosureThis()) {
if (\PHP_VERSION_ID < 70000) {
// Bug in PHP5: https://bugs.php.net/bug.php?id=64761
// Bug in PHP5: https://bugs.php.net/64761
// This means that we cannot bind static closures and therefore we must
// ignore any errors here. There is no way to test if the closure is
// bindable.
@@ -347,6 +347,10 @@ class Command
*/
public function getDefinition()
{
if (null === $this->definition) {
throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', \get_class($this)));
}
return $this->definition;
}
@@ -449,7 +453,7 @@ class Command
/**
* Returns the command name.
*
* @return string The command name
* @return string|null
*/
public function getName()
{

View File

@@ -44,7 +44,6 @@ class ApplicationDescription
private $aliases;
/**
* @param Application $application
* @param string|null $namespace
* @param bool $showHidden
*/

View File

@@ -23,9 +23,7 @@ interface DescriptorInterface
/**
* Describes an object if supported.
*
* @param OutputInterface $output
* @param object $object
* @param array $options
* @param object $object
*/
public function describe(OutputInterface $output, $object, array $options = []);
}

Some files were not shown because too many files have changed in this diff Show More