diff --git a/composer.lock b/composer.lock index 74e34788d..6058e8d9c 100644 --- a/composer.lock +++ b/composer.lock @@ -2309,16 +2309,16 @@ }, { "name": "symfony/console", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "535846c7ee6bc4dd027ca0d93220601456734b10" + "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/535846c7ee6bc4dd027ca0d93220601456734b10", - "reference": "535846c7ee6bc4dd027ca0d93220601456734b10", + "url": "https://api.github.com/repos/symfony/console/zipball/dccb8d251a9017d5994c988b034d3e18aaabf740", + "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740", "shasum": "" }, "require": { @@ -2388,7 +2388,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.11" + "source": "https://github.com/symfony/console/tree/v5.4.19" }, "funding": [ { @@ -2404,7 +2404,7 @@ "type": "tidelift" } ], - "time": "2022-07-22T10:42:43+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/css-selector", @@ -2630,16 +2630,16 @@ }, { "name": "symfony/dotenv", - "version": "v5.4.5", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" + "reference": "38190ba62566afa26ca723a795d0a004e061bd2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/38190ba62566afa26ca723a795d0a004e061bd2a", + "reference": "38190ba62566afa26ca723a795d0a004e061bd2a", "shasum": "" }, "require": { @@ -2681,7 +2681,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.4.5" + "source": "https://github.com/symfony/dotenv/tree/v5.4.19" }, "funding": [ { @@ -2697,7 +2697,7 @@ "type": "tidelift" } ], - "time": "2022-02-15T17:04:12+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/error-handler", @@ -3063,16 +3063,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "a0660b602357d5c2ceaac1c9f80c5820bbff803d" + "reference": "a208ee578000f9dedcb50a9784ec7ff8706a7bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a0660b602357d5c2ceaac1c9f80c5820bbff803d", - "reference": "a0660b602357d5c2ceaac1c9f80c5820bbff803d", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a208ee578000f9dedcb50a9784ec7ff8706a7bf1", + "reference": "a208ee578000f9dedcb50a9784ec7ff8706a7bf1", "shasum": "" }, "require": { @@ -3124,7 +3124,7 @@ "symfony/workflow": "<5.2" }, "require-dev": { - "doctrine/annotations": "^1.13.1", + "doctrine/annotations": "^1.13.1|^2", "doctrine/cache": "^1.11|^2.0", "doctrine/persistence": "^1.3|^2|^3", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", @@ -3194,7 +3194,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.4.11" + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.19" }, "funding": [ { @@ -3210,7 +3210,7 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-10T17:40:25+00:00" }, { "name": "symfony/http-foundation", @@ -4591,16 +4591,16 @@ }, { "name": "symfony/twig-bundle", - "version": "v5.4.8", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "c992b4474c3a31f3c40a1ca593d213833f91b818" + "reference": "286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c992b4474c3a31f3c40a1ca593d213833f91b818", - "reference": "c992b4474c3a31f3c40a1ca593d213833f91b818", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd", + "reference": "286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd", "shasum": "" }, "require": { @@ -4620,7 +4620,7 @@ "symfony/translation": "<5.0" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.10.4|^2", "doctrine/cache": "^1.0|^2.0", "symfony/asset": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^5.3|^6.0", @@ -4660,7 +4660,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v5.4.8" + "source": "https://github.com/symfony/twig-bundle/tree/v5.4.19" }, "funding": [ { @@ -4676,7 +4676,7 @@ "type": "tidelift" } ], - "time": "2022-04-03T13:03:10+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/var-dumper", @@ -4842,16 +4842,16 @@ }, { "name": "symfony/yaml", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "05d4ea560f3402c6c116afd99fdc66e60eda227e" + "reference": "71c05db20cb9b54d381a28255f17580e2b7e36a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/05d4ea560f3402c6c116afd99fdc66e60eda227e", - "reference": "05d4ea560f3402c6c116afd99fdc66e60eda227e", + "url": "https://api.github.com/repos/symfony/yaml/zipball/71c05db20cb9b54d381a28255f17580e2b7e36a5", + "reference": "71c05db20cb9b54d381a28255f17580e2b7e36a5", "shasum": "" }, "require": { @@ -4897,7 +4897,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.11" + "source": "https://github.com/symfony/yaml/tree/v5.4.19" }, "funding": [ { @@ -4913,7 +4913,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2023-01-10T18:51:14+00:00" }, { "name": "thenetworg/oauth2-azure", @@ -5110,16 +5110,16 @@ "packages-dev": [ { "name": "symfony/stopwatch", - "version": "v5.4.5", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30" + "reference": "bd2b066090fd6a67039371098fa25a84cb2679ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", - "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/bd2b066090fd6a67039371098fa25a84cb2679ec", + "reference": "bd2b066090fd6a67039371098fa25a84cb2679ec", "shasum": "" }, "require": { @@ -5152,7 +5152,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.5" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.19" }, "funding": [ { @@ -5168,20 +5168,20 @@ "type": "tidelift" } ], - "time": "2022-02-18T16:06:09+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v5.4.10", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "f61c99d8dbd864b11935851b598f784bcff36fc7" + "reference": "cd83822071f2bc05583af1e53c1bc46be625a56d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/f61c99d8dbd864b11935851b598f784bcff36fc7", - "reference": "f61c99d8dbd864b11935851b598f784bcff36fc7", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/cd83822071f2bc05583af1e53c1bc46be625a56d", + "reference": "cd83822071f2bc05583af1e53c1bc46be625a56d", "shasum": "" }, "require": { @@ -5232,7 +5232,7 @@ "description": "Provides a development tool that gives detailed information about the execution of any request", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.10" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.19" }, "funding": [ { @@ -5248,7 +5248,7 @@ "type": "tidelift" } ], - "time": "2022-06-06T19:10:58+00:00" + "time": "2023-01-01T08:32:19+00:00" } ], "aliases": [], diff --git a/lib/composer/autoload_classmap.php b/lib/composer/autoload_classmap.php index 332b7396f..fc021687e 100644 --- a/lib/composer/autoload_classmap.php +++ b/lib/composer/autoload_classmap.php @@ -145,10 +145,6 @@ return array( 'CAS_Request_Exception' => $vendorDir . '/apereo/phpcas/source/CAS/Request/Exception.php', 'CAS_Request_MultiRequestInterface' => $vendorDir . '/apereo/phpcas/source/CAS/Request/MultiRequestInterface.php', 'CAS_Request_RequestInterface' => $vendorDir . '/apereo/phpcas/source/CAS/Request/RequestInterface.php', - 'CAS_ServiceBaseUrl_AllowedListDiscovery' => $vendorDir . '/apereo/phpcas/source/CAS/ServiceBaseUrl/AllowedListDiscovery.php', - 'CAS_ServiceBaseUrl_Base' => $vendorDir . '/apereo/phpcas/source/CAS/ServiceBaseUrl/Base.php', - 'CAS_ServiceBaseUrl_Interface' => $vendorDir . '/apereo/phpcas/source/CAS/ServiceBaseUrl/Interface.php', - 'CAS_ServiceBaseUrl_Static' => $vendorDir . '/apereo/phpcas/source/CAS/ServiceBaseUrl/Static.php', 'CAS_Session_PhpSession' => $vendorDir . '/apereo/phpcas/source/CAS/Session/PhpSession.php', 'CAS_TypeMismatchException' => $vendorDir . '/apereo/phpcas/source/CAS/TypeMismatchException.php', 'CLILikeWebPage' => $baseDir . '/sources/Application/WebPage/CLILikeWebPage.php', diff --git a/lib/composer/autoload_static.php b/lib/composer/autoload_static.php index b08a9ff69..2490b45bf 100644 --- a/lib/composer/autoload_static.php +++ b/lib/composer/autoload_static.php @@ -510,10 +510,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f 'CAS_Request_Exception' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/Exception.php', 'CAS_Request_MultiRequestInterface' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/MultiRequestInterface.php', 'CAS_Request_RequestInterface' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/RequestInterface.php', - 'CAS_ServiceBaseUrl_AllowedListDiscovery' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ServiceBaseUrl/AllowedListDiscovery.php', - 'CAS_ServiceBaseUrl_Base' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ServiceBaseUrl/Base.php', - 'CAS_ServiceBaseUrl_Interface' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ServiceBaseUrl/Interface.php', - 'CAS_ServiceBaseUrl_Static' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ServiceBaseUrl/Static.php', 'CAS_Session_PhpSession' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Session/PhpSession.php', 'CAS_TypeMismatchException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/TypeMismatchException.php', 'CLILikeWebPage' => __DIR__ . '/../..' . '/sources/Application/WebPage/CLILikeWebPage.php', diff --git a/lib/composer/installed.json b/lib/composer/installed.json index 21ac16c4c..8b5ee2b36 100644 --- a/lib/composer/installed.json +++ b/lib/composer/installed.json @@ -2402,17 +2402,17 @@ }, { "name": "symfony/console", - "version": "v5.4.11", - "version_normalized": "5.4.11.0", + "version": "v5.4.19", + "version_normalized": "5.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "535846c7ee6bc4dd027ca0d93220601456734b10" + "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/535846c7ee6bc4dd027ca0d93220601456734b10", - "reference": "535846c7ee6bc4dd027ca0d93220601456734b10", + "url": "https://api.github.com/repos/symfony/console/zipball/dccb8d251a9017d5994c988b034d3e18aaabf740", + "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740", "shasum": "" }, "require": { @@ -2450,7 +2450,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2022-07-22T10:42:43+00:00", + "time": "2023-01-01T08:32:19+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2484,7 +2484,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.11" + "source": "https://github.com/symfony/console/tree/v5.4.19" }, "funding": [ { @@ -2735,17 +2735,17 @@ }, { "name": "symfony/dotenv", - "version": "v5.4.5", - "version_normalized": "5.4.5.0", + "version": "v5.4.19", + "version_normalized": "5.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" + "reference": "38190ba62566afa26ca723a795d0a004e061bd2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/38190ba62566afa26ca723a795d0a004e061bd2a", + "reference": "38190ba62566afa26ca723a795d0a004e061bd2a", "shasum": "" }, "require": { @@ -2756,7 +2756,7 @@ "symfony/console": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0" }, - "time": "2022-02-15T17:04:12+00:00", + "time": "2023-01-01T08:32:19+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2789,7 +2789,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.4.5" + "source": "https://github.com/symfony/dotenv/tree/v5.4.19" }, "funding": [ { @@ -3186,17 +3186,17 @@ }, { "name": "symfony/framework-bundle", - "version": "v5.4.11", - "version_normalized": "5.4.11.0", + "version": "v5.4.19", + "version_normalized": "5.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "a0660b602357d5c2ceaac1c9f80c5820bbff803d" + "reference": "a208ee578000f9dedcb50a9784ec7ff8706a7bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a0660b602357d5c2ceaac1c9f80c5820bbff803d", - "reference": "a0660b602357d5c2ceaac1c9f80c5820bbff803d", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a208ee578000f9dedcb50a9784ec7ff8706a7bf1", + "reference": "a208ee578000f9dedcb50a9784ec7ff8706a7bf1", "shasum": "" }, "require": { @@ -3248,7 +3248,7 @@ "symfony/workflow": "<5.2" }, "require-dev": { - "doctrine/annotations": "^1.13.1", + "doctrine/annotations": "^1.13.1|^2", "doctrine/cache": "^1.11|^2.0", "doctrine/persistence": "^1.3|^2|^3", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", @@ -3292,7 +3292,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": "2022-07-20T13:00:38+00:00", + "time": "2023-01-10T17:40:25+00:00", "type": "symfony-bundle", "installation-source": "dist", "autoload": { @@ -3320,7 +3320,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.4.11" + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.19" }, "funding": [ { @@ -4471,24 +4471,24 @@ }, { "name": "symfony/stopwatch", - "version": "v5.4.5", - "version_normalized": "5.4.5.0", + "version": "v5.4.19", + "version_normalized": "5.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30" + "reference": "bd2b066090fd6a67039371098fa25a84cb2679ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", - "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/bd2b066090fd6a67039371098fa25a84cb2679ec", + "reference": "bd2b066090fd6a67039371098fa25a84cb2679ec", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/service-contracts": "^1|^2|^3" }, - "time": "2022-02-18T16:06:09+00:00", + "time": "2023-01-01T08:32:19+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4516,7 +4516,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.5" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.19" }, "funding": [ { @@ -4830,17 +4830,17 @@ }, { "name": "symfony/twig-bundle", - "version": "v5.4.8", - "version_normalized": "5.4.8.0", + "version": "v5.4.19", + "version_normalized": "5.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "c992b4474c3a31f3c40a1ca593d213833f91b818" + "reference": "286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c992b4474c3a31f3c40a1ca593d213833f91b818", - "reference": "c992b4474c3a31f3c40a1ca593d213833f91b818", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd", + "reference": "286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd", "shasum": "" }, "require": { @@ -4860,7 +4860,7 @@ "symfony/translation": "<5.0" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.10.4|^2", "doctrine/cache": "^1.0|^2.0", "symfony/asset": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^5.3|^6.0", @@ -4874,7 +4874,7 @@ "symfony/web-link": "^4.4|^5.0|^6.0", "symfony/yaml": "^4.4|^5.0|^6.0" }, - "time": "2022-04-03T13:03:10+00:00", + "time": "2023-01-01T08:32:19+00:00", "type": "symfony-bundle", "installation-source": "dist", "autoload": { @@ -4902,7 +4902,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v5.4.8" + "source": "https://github.com/symfony/twig-bundle/tree/v5.4.19" }, "funding": [ { @@ -5090,17 +5090,17 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v5.4.10", - "version_normalized": "5.4.10.0", + "version": "v5.4.19", + "version_normalized": "5.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "f61c99d8dbd864b11935851b598f784bcff36fc7" + "reference": "cd83822071f2bc05583af1e53c1bc46be625a56d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/f61c99d8dbd864b11935851b598f784bcff36fc7", - "reference": "f61c99d8dbd864b11935851b598f784bcff36fc7", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/cd83822071f2bc05583af1e53c1bc46be625a56d", + "reference": "cd83822071f2bc05583af1e53c1bc46be625a56d", "shasum": "" }, "require": { @@ -5125,7 +5125,7 @@ "symfony/css-selector": "^4.4|^5.0|^6.0", "symfony/stopwatch": "^4.4|^5.0|^6.0" }, - "time": "2022-06-06T19:10:58+00:00", + "time": "2023-01-01T08:32:19+00:00", "type": "symfony-bundle", "installation-source": "dist", "autoload": { @@ -5153,7 +5153,7 @@ "description": "Provides a development tool that gives detailed information about the execution of any request", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.10" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.19" }, "funding": [ { @@ -5173,17 +5173,17 @@ }, { "name": "symfony/yaml", - "version": "v5.4.11", - "version_normalized": "5.4.11.0", + "version": "v5.4.19", + "version_normalized": "5.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "05d4ea560f3402c6c116afd99fdc66e60eda227e" + "reference": "71c05db20cb9b54d381a28255f17580e2b7e36a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/05d4ea560f3402c6c116afd99fdc66e60eda227e", - "reference": "05d4ea560f3402c6c116afd99fdc66e60eda227e", + "url": "https://api.github.com/repos/symfony/yaml/zipball/71c05db20cb9b54d381a28255f17580e2b7e36a5", + "reference": "71c05db20cb9b54d381a28255f17580e2b7e36a5", "shasum": "" }, "require": { @@ -5200,7 +5200,7 @@ "suggest": { "symfony/console": "For validating YAML files using the lint command" }, - "time": "2022-06-27T16:58:25+00:00", + "time": "2023-01-10T18:51:14+00:00", "bin": [ "Resources/bin/yaml-lint" ], @@ -5231,7 +5231,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.11" + "source": "https://github.com/symfony/yaml/tree/v5.4.19" }, "funding": [ { diff --git a/lib/composer/installed.php b/lib/composer/installed.php index 08f2006c5..6527429f6 100644 --- a/lib/composer/installed.php +++ b/lib/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => 'f25f91ad79b38d9dcbe2a175bdb2fd2635255968', + 'reference' => '5ee603f2ba067f521d8b98a14c42d09820dec2fb', 'name' => 'combodo/itop', 'dev' => true, ), @@ -25,7 +25,7 @@ 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => 'f25f91ad79b38d9dcbe2a175bdb2fd2635255968', + 'reference' => '5ee603f2ba067f521d8b98a14c42d09820dec2fb', 'dev_requirement' => false, ), 'combodo/tcpdf' => array( @@ -393,12 +393,12 @@ 'dev_requirement' => false, ), 'symfony/console' => array( - 'pretty_version' => 'v5.4.11', - 'version' => '5.4.11.0', + 'pretty_version' => 'v5.4.19', + 'version' => '5.4.19.0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), - 'reference' => '535846c7ee6bc4dd027ca0d93220601456734b10', + 'reference' => 'dccb8d251a9017d5994c988b034d3e18aaabf740', 'dev_requirement' => false, ), 'symfony/css-selector' => array( @@ -429,12 +429,12 @@ 'dev_requirement' => false, ), 'symfony/dotenv' => array( - 'pretty_version' => 'v5.4.5', - 'version' => '5.4.5.0', + 'pretty_version' => 'v5.4.19', + 'version' => '5.4.19.0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dotenv', 'aliases' => array(), - 'reference' => '83a2310904a4f5d4f42526227b5a578ac82232a9', + 'reference' => '38190ba62566afa26ca723a795d0a004e061bd2a', 'dev_requirement' => false, ), 'symfony/error-handler' => array( @@ -489,12 +489,12 @@ 'dev_requirement' => false, ), 'symfony/framework-bundle' => array( - 'pretty_version' => 'v5.4.11', - 'version' => '5.4.11.0', + 'pretty_version' => 'v5.4.19', + 'version' => '5.4.19.0', 'type' => 'symfony-bundle', 'install_path' => __DIR__ . '/../symfony/framework-bundle', 'aliases' => array(), - 'reference' => 'a0660b602357d5c2ceaac1c9f80c5820bbff803d', + 'reference' => 'a208ee578000f9dedcb50a9784ec7ff8706a7bf1', 'dev_requirement' => false, ), 'symfony/http-foundation' => array( @@ -621,12 +621,12 @@ ), ), 'symfony/stopwatch' => array( - 'pretty_version' => 'v5.4.5', - 'version' => '5.4.5.0', + 'pretty_version' => 'v5.4.19', + 'version' => '5.4.19.0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/stopwatch', 'aliases' => array(), - 'reference' => '4d04b5c24f3c9a1a168a131f6cbe297155bc0d30', + 'reference' => 'bd2b066090fd6a67039371098fa25a84cb2679ec', 'dev_requirement' => true, ), 'symfony/string' => array( @@ -657,12 +657,12 @@ 'dev_requirement' => false, ), 'symfony/twig-bundle' => array( - 'pretty_version' => 'v5.4.8', - 'version' => '5.4.8.0', + 'pretty_version' => 'v5.4.19', + 'version' => '5.4.19.0', 'type' => 'symfony-bundle', 'install_path' => __DIR__ . '/../symfony/twig-bundle', 'aliases' => array(), - 'reference' => 'c992b4474c3a31f3c40a1ca593d213833f91b818', + 'reference' => '286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd', 'dev_requirement' => false, ), 'symfony/var-dumper' => array( @@ -684,21 +684,21 @@ 'dev_requirement' => false, ), 'symfony/web-profiler-bundle' => array( - 'pretty_version' => 'v5.4.10', - 'version' => '5.4.10.0', + 'pretty_version' => 'v5.4.19', + 'version' => '5.4.19.0', 'type' => 'symfony-bundle', 'install_path' => __DIR__ . '/../symfony/web-profiler-bundle', 'aliases' => array(), - 'reference' => 'f61c99d8dbd864b11935851b598f784bcff36fc7', + 'reference' => 'cd83822071f2bc05583af1e53c1bc46be625a56d', 'dev_requirement' => true, ), 'symfony/yaml' => array( - 'pretty_version' => 'v5.4.11', - 'version' => '5.4.11.0', + 'pretty_version' => 'v5.4.19', + 'version' => '5.4.19.0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/yaml', 'aliases' => array(), - 'reference' => '05d4ea560f3402c6c116afd99fdc66e60eda227e', + 'reference' => '71c05db20cb9b54d381a28255f17580e2b7e36a5', 'dev_requirement' => false, ), 'tecnickcom/tcpdf' => array( diff --git a/lib/symfony/console/Application.php b/lib/symfony/console/Application.php index 366d61204..29951e9c1 100644 --- a/lib/symfony/console/Application.php +++ b/lib/symfony/console/Application.php @@ -276,7 +276,9 @@ class Application implements ResetInterface $alternative = $alternatives[0]; $style = new SymfonyStyle($input, $output); - $style->block(sprintf("\nCommand \"%s\" is not defined.\n", $name), null, 'error'); + $output->writeln(''); + $formattedBlock = (new FormatterHelper())->formatBlock(sprintf('Command "%s" is not defined.', $name), 'error', true); + $output->writeln($formattedBlock); if (!$style->confirm(sprintf('Do you want to run "%s" instead? ', $alternative), false)) { if (null !== $this->dispatcher) { $event = new ConsoleErrorEvent($input, $output, $e); @@ -933,11 +935,21 @@ class Application implements ResetInterface } switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) { - case -1: $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); break; - case 1: $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); break; - case 2: $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); break; - case 3: $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); break; - default: $shellVerbosity = 0; break; + case -1: + $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); + break; + case 1: + $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); + break; + case 2: + $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); + break; + case 3: + $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); + break; + default: + $shellVerbosity = 0; + break; } if (true === $input->hasParameterOption(['--quiet', '-q'], true)) { @@ -983,22 +995,26 @@ class Application implements ResetInterface } } - if ($command instanceof SignalableCommandInterface && ($this->signalsToDispatchEvent || $command->getSubscribedSignals())) { - if (!$this->signalRegistry) { - throw new RuntimeException('Unable to subscribe to signal events. Make sure that the `pcntl` extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.'); - } + if ($this->signalsToDispatchEvent) { + $commandSignals = $command instanceof SignalableCommandInterface ? $command->getSubscribedSignals() : []; - if (Terminal::hasSttyAvailable()) { - $sttyMode = shell_exec('stty -g'); + if ($commandSignals || null !== $this->dispatcher) { + if (!$this->signalRegistry) { + throw new RuntimeException('Unable to subscribe to signal events. Make sure that the `pcntl` extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.'); + } - foreach ([\SIGINT, \SIGTERM] as $signal) { - $this->signalRegistry->register($signal, static function () use ($sttyMode) { - shell_exec('stty '.$sttyMode); - }); + if (Terminal::hasSttyAvailable()) { + $sttyMode = shell_exec('stty -g'); + + foreach ([\SIGINT, \SIGTERM] as $signal) { + $this->signalRegistry->register($signal, static function () use ($sttyMode) { + shell_exec('stty '.$sttyMode); + }); + } } } - if ($this->dispatcher) { + if (null !== $this->dispatcher) { foreach ($this->signalsToDispatchEvent as $signal) { $event = new ConsoleSignalEvent($command, $input, $output, $signal); @@ -1015,7 +1031,7 @@ class Application implements ResetInterface } } - foreach ($command->getSubscribedSignals() as $signal) { + foreach ($commandSignals as $signal) { $this->signalRegistry->register($signal, [$command, 'handleSignal']); } } diff --git a/lib/symfony/console/Command/DumpCompletionCommand.php b/lib/symfony/console/Command/DumpCompletionCommand.php index dc0cfaef7..518d606a0 100644 --- a/lib/symfony/console/Command/DumpCompletionCommand.php +++ b/lib/symfony/console/Command/DumpCompletionCommand.php @@ -93,8 +93,14 @@ EOH if (!file_exists($completionFile)) { $supportedShells = $this->getSupportedShells(); - ($output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output) - ->writeln(sprintf('Detected shell "%s", which is not supported by Symfony shell completion (supported shells: "%s").', $shell, implode('", "', $supportedShells))); + if ($output instanceof ConsoleOutputInterface) { + $output = $output->getErrorOutput(); + } + if ($shell) { + $output->writeln(sprintf('Detected shell "%s", which is not supported by Symfony shell completion (supported shells: "%s").', $shell, implode('", "', $supportedShells))); + } else { + $output->writeln(sprintf('Shell not detected, Symfony shell completion only supports "%s").', implode('", "', $supportedShells))); + } return self::INVALID; } diff --git a/lib/symfony/console/Descriptor/ApplicationDescription.php b/lib/symfony/console/Descriptor/ApplicationDescription.php index fac01ad37..2a3acc99b 100644 --- a/lib/symfony/console/Descriptor/ApplicationDescription.php +++ b/lib/symfony/console/Descriptor/ApplicationDescription.php @@ -131,7 +131,7 @@ class ApplicationDescription } if ($namespacedCommands) { - ksort($namespacedCommands); + ksort($namespacedCommands, \SORT_STRING); foreach ($namespacedCommands as $key => $commandsSet) { ksort($commandsSet); $sortedCommands[$key] = $commandsSet; diff --git a/lib/symfony/console/Exception/InvalidOptionException.php b/lib/symfony/console/Exception/InvalidOptionException.php index b2eec6165..5cf62792e 100644 --- a/lib/symfony/console/Exception/InvalidOptionException.php +++ b/lib/symfony/console/Exception/InvalidOptionException.php @@ -12,7 +12,7 @@ namespace Symfony\Component\Console\Exception; /** - * Represents an incorrect option name typed in the console. + * Represents an incorrect option name or value typed in the console. * * @author Jérôme Tamarelle */ diff --git a/lib/symfony/console/Helper/Helper.php b/lib/symfony/console/Helper/Helper.php index 50f51c790..c7d3e25d0 100644 --- a/lib/symfony/console/Helper/Helper.php +++ b/lib/symfony/console/Helper/Helper.php @@ -171,6 +171,8 @@ abstract class Helper implements HelperInterface $string = $formatter->format($string ?? ''); // remove already formatted characters $string = preg_replace("/\033\[[^m]*m/", '', $string ?? ''); + // remove terminal hyperlinks + $string = preg_replace('/\\033]8;[^;]*;[^\\033]*\\033\\\\/', '', $string ?? ''); $formatter->setDecorated($isDecorated); return $string; diff --git a/lib/symfony/console/Helper/ProgressBar.php b/lib/symfony/console/Helper/ProgressBar.php index b1fb213b6..eb6aacb1a 100644 --- a/lib/symfony/console/Helper/ProgressBar.php +++ b/lib/symfony/console/Helper/ProgressBar.php @@ -53,7 +53,6 @@ final class ProgressBar private $startTime; private $stepWidth; private $percent = 0.0; - private $formatLineCount; private $messages = []; private $overwrite = true; private $terminal; @@ -446,8 +445,6 @@ final class ProgressBar } else { $this->format = $format; } - - $this->formatLineCount = substr_count($this->format, "\n"); } /** @@ -464,7 +461,7 @@ final class ProgressBar if ($this->overwrite) { if (null !== $this->previousMessage) { if ($this->output instanceof ConsoleSectionOutput) { - $messageLines = explode("\n", $message); + $messageLines = explode("\n", $this->previousMessage); $lineCount = \count($messageLines); foreach ($messageLines as $messageLine) { $messageLineLength = Helper::width(Helper::removeDecoration($this->output->getFormatter(), $messageLine)); @@ -474,7 +471,8 @@ final class ProgressBar } $this->output->clear($lineCount); } else { - for ($i = 0; $i < $this->formatLineCount; ++$i) { + $lineCount = substr_count($this->previousMessage, "\n"); + for ($i = 0; $i < $lineCount; ++$i) { $this->cursor->moveToColumn(1); $this->cursor->clearLine(); $this->cursor->moveUp(); diff --git a/lib/symfony/console/LICENSE b/lib/symfony/console/LICENSE index 88bf75bb4..008370457 100644 --- a/lib/symfony/console/LICENSE +++ b/lib/symfony/console/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-2023 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/symfony/console/Resources/completion.bash b/lib/symfony/console/Resources/completion.bash index fba46070c..64b87ccf7 100644 --- a/lib/symfony/console/Resources/completion.bash +++ b/lib/symfony/console/Resources/completion.bash @@ -11,20 +11,21 @@ _sf_{{ COMMAND_NAME }}() { local sf_cmd="${COMP_WORDS[0]}" # for an alias, get the real script behind it - if [[ $(type -t $sf_cmd) == "alias" ]]; then + sf_cmd_type=$(type -t $sf_cmd) + if [[ $sf_cmd_type == "alias" ]]; then sf_cmd=$(alias $sf_cmd | sed -E "s/alias $sf_cmd='(.*)'/\1/") - else + elif [[ $sf_cmd_type == "file" ]]; then sf_cmd=$(type -p $sf_cmd) fi - if [ ! -x "$sf_cmd" ]; then + if [[ $sf_cmd_type != "function" && ! -x $sf_cmd ]]; then return 1 fi local cur prev words cword _get_comp_words_by_ref -n := cur prev words cword - local completecmd=("$sf_cmd" "_complete" "-sbash" "-c$cword" "-S{{ VERSION }}") + local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-S{{ VERSION }}") for w in ${words[@]}; do w=$(printf -- '%b' "$w") # remove quotes from typed values diff --git a/lib/symfony/dotenv/LICENSE b/lib/symfony/dotenv/LICENSE index 7fa953905..f2345234a 100644 --- a/lib/symfony/dotenv/LICENSE +++ b/lib/symfony/dotenv/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016-2022 Fabien Potencier +Copyright (c) 2016-2023 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/symfony/framework-bundle/Command/CacheWarmupCommand.php b/lib/symfony/framework-bundle/Command/CacheWarmupCommand.php index 3529c5457..ddaf9eb63 100644 --- a/lib/symfony/framework-bundle/Command/CacheWarmupCommand.php +++ b/lib/symfony/framework-bundle/Command/CacheWarmupCommand.php @@ -55,11 +55,6 @@ The %command.name% command warms up the cache. Before running this command, the cache must be empty. -This command does not generate the classes cache (as when executing this -command, too many classes that should be part of the cache are already loaded -in memory). Use curl or any other similar tool to warm up -the classes cache if you want. - EOF ) ; diff --git a/lib/symfony/framework-bundle/Command/ConfigDumpReferenceCommand.php b/lib/symfony/framework-bundle/Command/ConfigDumpReferenceCommand.php index 7a56ec5ab..63e6496bd 100644 --- a/lib/symfony/framework-bundle/Command/ConfigDumpReferenceCommand.php +++ b/lib/symfony/framework-bundle/Command/ConfigDumpReferenceCommand.php @@ -69,7 +69,7 @@ When the option is not provided, yaml is used. For dumping a specific option, add its path as second argument (only available for the yaml format): - php %command.full_name% framework profiler.matcher + php %command.full_name% framework http_client.default_options EOF ) @@ -99,7 +99,7 @@ EOF $errorIo->comment([ 'Provide the name of a bundle as the first argument of this command to dump its default configuration. (e.g. config:dump-reference FrameworkBundle)', - 'For dumping a specific option, add its path as the second argument of this command. (e.g. config:dump-reference FrameworkBundle profiler.matcher to dump the framework.profiler.matcher configuration)', + 'For dumping a specific option, add its path as the second argument of this command. (e.g. config:dump-reference FrameworkBundle http_client.default_options to dump the framework.http_client.default_options configuration)', ]); return 0; diff --git a/lib/symfony/framework-bundle/Command/TranslationUpdateCommand.php b/lib/symfony/framework-bundle/Command/TranslationUpdateCommand.php index de9332615..f0e1dc887 100644 --- a/lib/symfony/framework-bundle/Command/TranslationUpdateCommand.php +++ b/lib/symfony/framework-bundle/Command/TranslationUpdateCommand.php @@ -407,6 +407,7 @@ EOF { $extractedCatalogue = new MessageCatalogue($locale); $this->extractor->setPrefix($prefix); + $transPaths = $this->filterDuplicateTransPaths($transPaths); foreach ($transPaths as $path) { if (is_dir($path) || is_file($path)) { $this->extractor->extract($path, $extractedCatalogue); @@ -416,6 +417,27 @@ EOF return $extractedCatalogue; } + private function filterDuplicateTransPaths(array $transPaths): array + { + $transPaths = array_filter(array_map('realpath', $transPaths)); + + sort($transPaths); + + $filteredPaths = []; + + foreach ($transPaths as $path) { + foreach ($filteredPaths as $filteredPath) { + if (str_starts_with($path, $filteredPath.\DIRECTORY_SEPARATOR)) { + continue 2; + } + } + + $filteredPaths[] = $path; + } + + return $filteredPaths; + } + private function loadCurrentMessages(string $locale, array $transPaths): MessageCatalogue { $currentCatalogue = new MessageCatalogue($locale); diff --git a/lib/symfony/framework-bundle/Console/Descriptor/JsonDescriptor.php b/lib/symfony/framework-bundle/Console/Descriptor/JsonDescriptor.php index 3e282ac10..0ad063343 100644 --- a/lib/symfony/framework-bundle/Console/Descriptor/JsonDescriptor.php +++ b/lib/symfony/framework-bundle/Console/Descriptor/JsonDescriptor.php @@ -245,7 +245,7 @@ class JsonDescriptor extends Descriptor if ($factory[0] instanceof Reference) { $data['factory_service'] = (string) $factory[0]; } elseif ($factory[0] instanceof Definition) { - throw new \InvalidArgumentException('Factory is not describable.'); + $data['factory_service'] = sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured'); } else { $data['factory_class'] = $factory[0]; } @@ -361,7 +361,7 @@ class JsonDescriptor extends Descriptor } $data['name'] = $r->name; - if ($class = $r->getClosureScopeClass()) { + if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { $data['class'] = $class->name; if (!$r->getClosureThis()) { $data['static'] = true; diff --git a/lib/symfony/framework-bundle/Console/Descriptor/MarkdownDescriptor.php b/lib/symfony/framework-bundle/Console/Descriptor/MarkdownDescriptor.php index ad1a804ce..a3fbabc6d 100644 --- a/lib/symfony/framework-bundle/Console/Descriptor/MarkdownDescriptor.php +++ b/lib/symfony/framework-bundle/Console/Descriptor/MarkdownDescriptor.php @@ -224,7 +224,7 @@ class MarkdownDescriptor extends Descriptor if ($factory[0] instanceof Reference) { $output .= "\n".'- Factory Service: `'.$factory[0].'`'; } elseif ($factory[0] instanceof Definition) { - throw new \InvalidArgumentException('Factory is not describable.'); + $output .= "\n".sprintf('- Factory Service: inline factory service (%s)', $factory[0]->getClass() ? sprintf('`%s`', $factory[0]->getClass()) : 'not configured'); } else { $output .= "\n".'- Factory Class: `'.$factory[0].'`'; } @@ -377,7 +377,7 @@ class MarkdownDescriptor extends Descriptor } $string .= "\n".sprintf('- Name: `%s`', $r->name); - if ($class = $r->getClosureScopeClass()) { + if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { $string .= "\n".sprintf('- Class: `%s`', $class->name); if (!$r->getClosureThis()) { $string .= "\n- Static: yes"; diff --git a/lib/symfony/framework-bundle/Console/Descriptor/TextDescriptor.php b/lib/symfony/framework-bundle/Console/Descriptor/TextDescriptor.php index ac22fa731..e7eb18762 100644 --- a/lib/symfony/framework-bundle/Console/Descriptor/TextDescriptor.php +++ b/lib/symfony/framework-bundle/Console/Descriptor/TextDescriptor.php @@ -315,7 +315,7 @@ class TextDescriptor extends Descriptor if ($factory[0] instanceof Reference) { $tableRows[] = ['Factory Service', $factory[0]]; } elseif ($factory[0] instanceof Definition) { - throw new \InvalidArgumentException('Factory is not describable.'); + $tableRows[] = ['Factory Service', sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'class not configured')]; } else { $tableRows[] = ['Factory Class', $factory[0]]; } @@ -614,7 +614,7 @@ class TextDescriptor extends Descriptor if (str_contains($r->name, '{closure}')) { return 'Closure()'; } - if ($class = $r->getClosureScopeClass()) { + if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { return sprintf('%s::%s()', $class->name, $r->name); } diff --git a/lib/symfony/framework-bundle/Console/Descriptor/XmlDescriptor.php b/lib/symfony/framework-bundle/Console/Descriptor/XmlDescriptor.php index 62e8fa50c..350452f33 100644 --- a/lib/symfony/framework-bundle/Console/Descriptor/XmlDescriptor.php +++ b/lib/symfony/framework-bundle/Console/Descriptor/XmlDescriptor.php @@ -324,7 +324,7 @@ class XmlDescriptor extends Descriptor if ($factory[0] instanceof Reference) { $factoryXML->setAttribute('service', (string) $factory[0]); } elseif ($factory[0] instanceof Definition) { - throw new \InvalidArgumentException('Factory is not describable.'); + $factoryXML->setAttribute('service', sprintf('inline factory service (%s)', $factory[0]->getClass() ?? 'not configured')); } else { $factoryXML->setAttribute('class', $factory[0]); } @@ -548,7 +548,7 @@ class XmlDescriptor extends Descriptor } $callableXML->setAttribute('name', $r->name); - if ($class = $r->getClosureScopeClass()) { + if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { $callableXML->setAttribute('class', $class->name); if (!$r->getClosureThis()) { $callableXML->setAttribute('static', 'true'); diff --git a/lib/symfony/framework-bundle/DependencyInjection/Compiler/TestServiceContainerRealRefPass.php b/lib/symfony/framework-bundle/DependencyInjection/Compiler/TestServiceContainerRealRefPass.php index 222b5c7b7..942eb635b 100644 --- a/lib/symfony/framework-bundle/DependencyInjection/Compiler/TestServiceContainerRealRefPass.php +++ b/lib/symfony/framework-bundle/DependencyInjection/Compiler/TestServiceContainerRealRefPass.php @@ -11,6 +11,7 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler; +use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; @@ -38,6 +39,16 @@ class TestServiceContainerRealRefPass implements CompilerPassInterface } } + foreach ($container->getAliases() as $id => $target) { + while ($container->hasAlias($target = (string) $target)) { + $target = $container->getAlias($target); + } + + if ($definitions[$target]->hasTag('container.private')) { + $privateServices[$id] = new ServiceClosureArgument(new Reference($target)); + } + } + $privateContainer->replaceArgument(0, $privateServices); } } diff --git a/lib/symfony/framework-bundle/DependencyInjection/Configuration.php b/lib/symfony/framework-bundle/DependencyInjection/Configuration.php index a86bac9fb..c70a07635 100644 --- a/lib/symfony/framework-bundle/DependencyInjection/Configuration.php +++ b/lib/symfony/framework-bundle/DependencyInjection/Configuration.php @@ -1121,7 +1121,7 @@ class Configuration implements ConfigurationInterface ->booleanNode('public')->defaultFalse()->end() ->scalarNode('default_lifetime') ->info('Default lifetime of the pool') - ->example('"600" for 5 minutes expressed in seconds, "PT5M" for five minutes expressed as ISO 8601 time interval, or "5 minutes" as a date expression') + ->example('"300" for 5 minutes expressed in seconds, "PT5M" for five minutes expressed as ISO 8601 time interval, or "5 minutes" as a date expression') ->end() ->scalarNode('provider') ->info('Overwrite the setting from the default provider for this adapter.') @@ -1194,48 +1194,48 @@ class Configuration implements ConfigurationInterface $logLevels = (new \ReflectionClass(LogLevel::class))->getConstants(); $rootNode + ->fixXmlConfig('exception') ->children() ->arrayNode('exceptions') ->info('Exception handling configuration') + ->useAttributeAsKey('class') ->beforeNormalization() + // Handle legacy XML configuration ->ifArray() ->then(function (array $v): array { if (!\array_key_exists('exception', $v)) { return $v; } - // Fix XML normalization - $data = isset($v['exception'][0]) ? $v['exception'] : [$v['exception']]; - $exceptions = []; - foreach ($data as $exception) { - $config = []; - if (\array_key_exists('log-level', $exception)) { - $config['log_level'] = $exception['log-level']; - } - if (\array_key_exists('status-code', $exception)) { - $config['status_code'] = $exception['status-code']; - } - $exceptions[$exception['name']] = $config; + $v = $v['exception']; + unset($v['exception']); + + foreach ($v as &$exception) { + $exception['class'] = $exception['name']; + unset($exception['name']); } - return $exceptions; + return $v; }) ->end() ->prototype('array') - ->fixXmlConfig('exception') ->children() ->scalarNode('log_level') ->info('The level of log message. Null to let Symfony decide.') ->validate() - ->ifTrue(function ($v) use ($logLevels) { return !\in_array($v, $logLevels); }) + ->ifTrue(function ($v) use ($logLevels) { return null !== $v && !\in_array($v, $logLevels, true); }) ->thenInvalid(sprintf('The log level is not valid. Pick one among "%s".', implode('", "', $logLevels))) ->end() ->defaultNull() ->end() ->scalarNode('status_code') - ->info('The status code of the response. Null to let Symfony decide.') + ->info('The status code of the response. Null or 0 to let Symfony decide.') + ->beforeNormalization() + ->ifTrue(function ($v) { return 0 === $v; }) + ->then(function ($v) { return null; }) + ->end() ->validate() - ->ifTrue(function ($v) { return $v < 100 || $v > 599; }) + ->ifTrue(function ($v) { return null !== $v && ($v < 100 || $v > 599); }) ->thenInvalid('The status code is not valid. Pick a value between 100 and 599.') ->end() ->defaultNull() @@ -1271,12 +1271,15 @@ class Configuration implements ConfigurationInterface }) ->end() ->addDefaultsIfNotSet() + ->validate() + ->ifTrue(static function (array $config) { return $config['enabled'] && !$config['resources']; }) + ->thenInvalid('At least one resource must be defined.') + ->end() ->fixXmlConfig('resource') ->children() ->arrayNode('resources') ->normalizeKeys(false) ->useAttributeAsKey('name') - ->requiresAtLeastOneElement() ->defaultValue(['default' => [class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphore' : 'flock']]) ->beforeNormalization() ->ifString()->then(function ($v) { return ['default' => $v]; }) diff --git a/lib/symfony/framework-bundle/DependencyInjection/FrameworkExtension.php b/lib/symfony/framework-bundle/DependencyInjection/FrameworkExtension.php index d72ef5f6d..00412e5c6 100644 --- a/lib/symfony/framework-bundle/DependencyInjection/FrameworkExtension.php +++ b/lib/symfony/framework-bundle/DependencyInjection/FrameworkExtension.php @@ -162,8 +162,10 @@ use Symfony\Component\Notifier\Bridge\Twilio\TwilioTransportFactory; use Symfony\Component\Notifier\Bridge\Vonage\VonageTransportFactory; use Symfony\Component\Notifier\Bridge\Yunpian\YunpianTransportFactory; use Symfony\Component\Notifier\Bridge\Zulip\ZulipTransportFactory; +use Symfony\Component\Notifier\ChatterInterface; use Symfony\Component\Notifier\Notifier; use Symfony\Component\Notifier\Recipient\Recipient; +use Symfony\Component\Notifier\TexterInterface; use Symfony\Component\Notifier\Transport\TransportFactoryInterface as NotifierTransportFactoryInterface; use Symfony\Component\PropertyAccess\PropertyAccessor; use Symfony\Component\PropertyInfo\Extractor\PhpStanExtractor; @@ -1629,9 +1631,16 @@ class FrameworkExtension extends Extension $loader->load('annotations.php'); + // registerUniqueLoader exists since doctrine/annotations v1.6 if (!method_exists(AnnotationRegistry::class, 'registerUniqueLoader')) { - $container->getDefinition('annotations.dummy_registry') - ->setMethodCalls([['registerLoader', ['class_exists']]]); + // registerLoader exists only in doctrine/annotations v1 + if (method_exists(AnnotationRegistry::class, 'registerLoader')) { + $container->getDefinition('annotations.dummy_registry') + ->setMethodCalls([['registerLoader', ['class_exists']]]); + } else { + // remove the dummy registry when doctrine/annotations v2 is used + $container->removeDefinition('annotations.dummy_registry'); + } } if ('none' === $config['cache']) { @@ -2489,11 +2498,13 @@ class FrameworkExtension extends Extension $container->getDefinition('chatter.transports')->setArgument(0, $config['chatter_transports']); } else { $container->removeDefinition('chatter'); + $container->removeAlias(ChatterInterface::class); } if ($config['texter_transports']) { $container->getDefinition('texter.transports')->setArgument(0, $config['texter_transports']); } else { $container->removeDefinition('texter'); + $container->removeAlias(TexterInterface::class); } if ($this->mailerConfigEnabled) { @@ -2583,7 +2594,7 @@ class FrameworkExtension extends Extension } } - if (ContainerBuilder::willBeAvailable('symfony/mercure-notifier', MercureTransportFactory::class, $parentPackages, true) && ContainerBuilder::willBeAvailable('symfony/mercure-bundle', MercureBundle::class, $parentPackages, true)) { + if (ContainerBuilder::willBeAvailable('symfony/mercure-notifier', MercureTransportFactory::class, $parentPackages, true) && ContainerBuilder::willBeAvailable('symfony/mercure-bundle', MercureBundle::class, $parentPackages, true) && \in_array(MercureBundle::class, $container->getParameter('kernel.bundles'), true)) { $container->getDefinition($classToServices[MercureTransportFactory::class]) ->replaceArgument('$registry', new Reference(HubRegistry::class)); } elseif (ContainerBuilder::willBeAvailable('symfony/mercure-notifier', MercureTransportFactory::class, $parentPackages, true)) { diff --git a/lib/symfony/framework-bundle/LICENSE b/lib/symfony/framework-bundle/LICENSE index 88bf75bb4..008370457 100644 --- a/lib/symfony/framework-bundle/LICENSE +++ b/lib/symfony/framework-bundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-2023 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/symfony/framework-bundle/Resources/bin/check-unused-known-tags.php b/lib/symfony/framework-bundle/Resources/bin/check-unused-known-tags.php index 4920c43eb..55658f5b1 100644 --- a/lib/symfony/framework-bundle/Resources/bin/check-unused-known-tags.php +++ b/lib/symfony/framework-bundle/Resources/bin/check-unused-known-tags.php @@ -9,6 +9,10 @@ * file that was distributed with this source code. */ +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + require dirname(__DIR__, 6).'/vendor/autoload.php'; use Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler\UnusedTagsPassUtils; diff --git a/lib/symfony/framework-bundle/Resources/config/annotations.php b/lib/symfony/framework-bundle/Resources/config/annotations.php index 64e3f4e31..33a2f4698 100644 --- a/lib/symfony/framework-bundle/Resources/config/annotations.php +++ b/lib/symfony/framework-bundle/Resources/config/annotations.php @@ -26,7 +26,7 @@ return static function (ContainerConfigurator $container) { ->set('annotations.reader', AnnotationReader::class) ->call('addGlobalIgnoredName', [ 'required', - service('annotations.dummy_registry'), // dummy arg to register class_exists as annotation loader only when required + service('annotations.dummy_registry')->nullOnInvalid(), // dummy arg to register class_exists as annotation loader only when required ]) ->set('annotations.dummy_registry', AnnotationRegistry::class) diff --git a/lib/symfony/framework-bundle/Resources/config/schema/symfony-1.0.xsd b/lib/symfony/framework-bundle/Resources/config/schema/symfony-1.0.xsd index d5f369cb1..d4be9fb6f 100644 --- a/lib/symfony/framework-bundle/Resources/config/schema/symfony-1.0.xsd +++ b/lib/symfony/framework-bundle/Resources/config/schema/symfony-1.0.xsd @@ -30,6 +30,7 @@ + @@ -361,14 +362,29 @@ - + - - + - + + + + + + + + + + + + + + + + + diff --git a/lib/symfony/framework-bundle/Resources/config/serializer.php b/lib/symfony/framework-bundle/Resources/config/serializer.php index 6a4508d0d..ca0cf9b53 100644 --- a/lib/symfony/framework-bundle/Resources/config/serializer.php +++ b/lib/symfony/framework-bundle/Resources/config/serializer.php @@ -78,7 +78,8 @@ return static function (ContainerConfigurator $container) { // Normalizer ->set('serializer.normalizer.constraint_violation_list', ConstraintViolationListNormalizer::class) - ->args([[], service('serializer.name_converter.metadata_aware')]) + ->args([1 => service('serializer.name_converter.metadata_aware')]) + ->autowire(true) ->tag('serializer.normalizer', ['priority' => -915]) ->set('serializer.normalizer.mime_message', MimeMessageNormalizer::class) @@ -124,7 +125,6 @@ return static function (ContainerConfigurator $container) { service('property_info')->ignoreOnInvalid(), service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(), null, - [], ]) ->tag('serializer.normalizer', ['priority' => -1000]) @@ -137,7 +137,6 @@ return static function (ContainerConfigurator $container) { service('property_info')->ignoreOnInvalid(), service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(), null, - [], ]) ->alias(PropertyNormalizer::class, 'serializer.normalizer.property') @@ -176,6 +175,7 @@ return static function (ContainerConfigurator $container) { ->tag('serializer.encoder') ->set('serializer.encoder.json', JsonEncoder::class) + ->args([null, null]) ->tag('serializer.encoder') ->set('serializer.encoder.yaml', YamlEncoder::class) diff --git a/lib/symfony/framework-bundle/composer.json b/lib/symfony/framework-bundle/composer.json index c9482a767..089e2e082 100644 --- a/lib/symfony/framework-bundle/composer.json +++ b/lib/symfony/framework-bundle/composer.json @@ -34,7 +34,7 @@ "symfony/routing": "^5.3|^6.0" }, "require-dev": { - "doctrine/annotations": "^1.13.1", + "doctrine/annotations": "^1.13.1|^2", "doctrine/cache": "^1.11|^2.0", "doctrine/persistence": "^1.3|^2|^3", "symfony/asset": "^5.3|^6.0", diff --git a/lib/symfony/stopwatch/LICENSE b/lib/symfony/stopwatch/LICENSE index 88bf75bb4..008370457 100644 --- a/lib/symfony/stopwatch/LICENSE +++ b/lib/symfony/stopwatch/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-2023 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/symfony/twig-bundle/LICENSE b/lib/symfony/twig-bundle/LICENSE index 88bf75bb4..008370457 100644 --- a/lib/symfony/twig-bundle/LICENSE +++ b/lib/symfony/twig-bundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-2023 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/symfony/twig-bundle/composer.json b/lib/symfony/twig-bundle/composer.json index 5635bb430..a92b08930 100644 --- a/lib/symfony/twig-bundle/composer.json +++ b/lib/symfony/twig-bundle/composer.json @@ -37,7 +37,7 @@ "symfony/yaml": "^4.4|^5.0|^6.0", "symfony/framework-bundle": "^5.0|^6.0", "symfony/web-link": "^4.4|^5.0|^6.0", - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.10.4|^2", "doctrine/cache": "^1.0|^2.0" }, "conflict": { diff --git a/lib/symfony/web-profiler-bundle/LICENSE b/lib/symfony/web-profiler-bundle/LICENSE index 88bf75bb4..008370457 100644 --- a/lib/symfony/web-profiler-bundle/LICENSE +++ b/lib/symfony/web-profiler-bundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-2023 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/symfony/web-profiler-bundle/Resources/views/Collector/form.html.twig b/lib/symfony/web-profiler-bundle/Resources/views/Collector/form.html.twig index db97100e4..d99ad4f77 100644 --- a/lib/symfony/web-profiler-bundle/Resources/views/Collector/form.html.twig +++ b/lib/symfony/web-profiler-bundle/Resources/views/Collector/form.html.twig @@ -90,7 +90,8 @@ cursor: pointer; padding: 5px 7px 5px 22px; position: relative; - + overflow: hidden; + text-overflow: ellipsis; } .tree .toggle-button { /* provide a bigger clickable area than just 10x10px */ @@ -449,7 +450,7 @@ {% import _self as tree %} {% set has_error = data.errors is defined and data.errors|length > 0 %}
  • -
    +
    {% if has_error %}
    {{ data.errors|length }}
    {% endif %} diff --git a/lib/symfony/web-profiler-bundle/Resources/views/Collector/logger.html.twig b/lib/symfony/web-profiler-bundle/Resources/views/Collector/logger.html.twig index df2679d79..b1642d4e1 100644 --- a/lib/symfony/web-profiler-bundle/Resources/views/Collector/logger.html.twig +++ b/lib/symfony/web-profiler-bundle/Resources/views/Collector/logger.html.twig @@ -253,10 +253,6 @@ {% if has_trace %} {% set trace_id = 'trace-' ~ category ~ '-' ~ log_index %} - -
    - {{ profiler_dump(log.context.exception.trace, maxDepth=1) }} -
    {% endif %} {% if has_context %} diff --git a/lib/symfony/web-profiler-bundle/Resources/views/Profiler/layout.html.twig b/lib/symfony/web-profiler-bundle/Resources/views/Profiler/layout.html.twig index 379653cf9..00c64cadf 100644 --- a/lib/symfony/web-profiler-bundle/Resources/views/Profiler/layout.html.twig +++ b/lib/symfony/web-profiler-bundle/Resources/views/Profiler/layout.html.twig @@ -108,7 +108,7 @@ {{ include('@WebProfiler/Icon/search.svg') }} Search - {{ render(controller('web_profiler.controller.profiler::searchBarAction', request.query.all)) }} + {{ render(controller('web_profiler.controller.profiler::searchBarAction', query=request.query.all)) }}
    diff --git a/lib/symfony/web-profiler-bundle/Twig/WebProfilerExtension.php b/lib/symfony/web-profiler-bundle/Twig/WebProfilerExtension.php index 8a8721a3a..b5f0f3cad 100644 --- a/lib/symfony/web-profiler-bundle/Twig/WebProfilerExtension.php +++ b/lib/symfony/web-profiler-bundle/Twig/WebProfilerExtension.php @@ -90,13 +90,19 @@ class WebProfilerExtension extends ProfilerExtension $message = twig_escape_filter($env, $message); $message = preg_replace('/"(.*?)"/', '"$1"', $message); - if (null === $context || !str_contains($message, '{')) { + $replacements = []; + foreach ($context ?? [] as $k => $v) { + $k = '{'.twig_escape_filter($env, $k).'}'; + if (str_contains($message, $k)) { + $replacements[$k] = $v; + } + } + + if (!$replacements) { return ''.$message.''; } - $replacements = []; - foreach ($context as $k => $v) { - $k = '{'.twig_escape_filter($env, $k).'}'; + foreach ($replacements as $k => $v) { $replacements['"'.$k.'"'] = $replacements['"'.$k.'"'] = $replacements[$k] = $this->dumpData($env, $v); } diff --git a/lib/symfony/yaml/Dumper.php b/lib/symfony/yaml/Dumper.php index 711840c10..679d533cb 100644 --- a/lib/symfony/yaml/Dumper.php +++ b/lib/symfony/yaml/Dumper.php @@ -58,6 +58,8 @@ class Dumper if ($inline <= 0 || (!\is_array($input) && !$input instanceof TaggedValue && $dumpObjectAsInlineMap) || empty($input)) { $output .= $prefix.Inline::dump($input, $flags); + } elseif ($input instanceof TaggedValue) { + $output .= $this->dumpTaggedValue($input, $inline, $indent, $flags, $prefix); } else { $dumpAsMap = Inline::isHash($input); @@ -137,4 +139,28 @@ class Dumper return $output; } + + private function dumpTaggedValue(TaggedValue $value, int $inline, int $indent, int $flags, string $prefix): string + { + $output = sprintf('%s!%s', $prefix ? $prefix.' ' : '', $value->getTag()); + + if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && false !== strpos($value->getValue(), "\n") && false === strpos($value->getValue(), "\r\n")) { + // If the first line starts with a space character, the spec requires a blockIndicationIndicator + // http://www.yaml.org/spec/1.2/spec.html#id2793979 + $blockIndentationIndicator = (' ' === substr($value->getValue(), 0, 1)) ? (string) $this->indentation : ''; + $output .= sprintf(' |%s', $blockIndentationIndicator); + + foreach (explode("\n", $value->getValue()) as $row) { + $output .= sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row); + } + + return $output; + } + + if ($inline - 1 <= 0 || null === $value->getValue() || \is_scalar($value->getValue())) { + return $output.' '.$this->dump($value->getValue(), $inline - 1, 0, $flags)."\n"; + } + + return $output."\n".$this->dump($value->getValue(), $inline - 1, $indent, $flags); + } } diff --git a/lib/symfony/yaml/Inline.php b/lib/symfony/yaml/Inline.php index d8994cb34..8118a43ab 100644 --- a/lib/symfony/yaml/Inline.php +++ b/lib/symfony/yaml/Inline.php @@ -51,7 +51,7 @@ class Inline * Converts a YAML string to a PHP value. * * @param string $value A YAML string - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior * @param array $references Mapping of variable names to values * * @return mixed @@ -86,7 +86,7 @@ class Inline ++$i; break; default: - $result = self::parseScalar($value, $flags, null, $i, null === $tag, $references); + $result = self::parseScalar($value, $flags, null, $i, true, $references); } // some comments are allowed at the end @@ -657,7 +657,6 @@ class Inline } return octdec($value); - // Optimize for returning strings. case \in_array($scalar[0], ['+', '-', '.'], true) || is_numeric($scalar[0]): if (Parser::preg_match('{^[+-]?[0-9][0-9_]*$}', $scalar)) { $scalar = str_replace('_', '', $scalar); diff --git a/lib/symfony/yaml/LICENSE b/lib/symfony/yaml/LICENSE index 88bf75bb4..008370457 100644 --- a/lib/symfony/yaml/LICENSE +++ b/lib/symfony/yaml/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2022 Fabien Potencier +Copyright (c) 2004-2023 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/symfony/yaml/Parser.php b/lib/symfony/yaml/Parser.php index 6b4c790ba..d8886bb18 100644 --- a/lib/symfony/yaml/Parser.php +++ b/lib/symfony/yaml/Parser.php @@ -43,7 +43,7 @@ class Parser * Parses a YAML file into a PHP value. * * @param string $filename The path to the YAML file to be parsed - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior * * @return mixed * @@ -72,7 +72,7 @@ class Parser * Parses a YAML string to a PHP value. * * @param string $value A YAML string - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior * * @return mixed * @@ -711,7 +711,7 @@ class Parser * Parses a YAML value. * * @param string $value A YAML value - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior * @param string $context The parser context (either sequence or mapping) * * @return mixed diff --git a/lib/symfony/yaml/Resources/bin/yaml-lint b/lib/symfony/yaml/Resources/bin/yaml-lint index 0ad73d714..143869e01 100644 --- a/lib/symfony/yaml/Resources/bin/yaml-lint +++ b/lib/symfony/yaml/Resources/bin/yaml-lint @@ -10,6 +10,10 @@ * file that was distributed with this source code. */ +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + /** * Runs the Yaml lint command. *