From 3da40312c08a9a17f8c7b5c8a339b9ac5bf4121c Mon Sep 17 00:00:00 2001 From: bcweaver <brianweaver@gmail.com> Date: Thu, 18 Apr 2019 13:13:06 -0400 Subject: [PATCH] Update core dependencies for 8.6.15 --- composer.lock | 254 ++++++++------- .../brumann/polyfill-unserialize/.gitignore | 4 + .../brumann/polyfill-unserialize/.travis.yml | 20 ++ vendor/brumann/polyfill-unserialize/LICENSE | 21 ++ vendor/brumann/polyfill-unserialize/README.md | 61 ++++ .../polyfill-unserialize/composer.json | 26 ++ .../polyfill-unserialize/phpunit.xml.dist | 25 ++ .../polyfill-unserialize/src/Unserialize.php | 58 ++++ .../polyfill-unserialize/tests/Foo.php | 7 + .../tests/UnserializeTest.php | 196 ++++++++++++ vendor/composer/autoload_classmap.php | 16 + vendor/composer/autoload_psr4.php | 1 + vendor/composer/autoload_static.php | 24 ++ vendor/composer/installed.json | 291 ++++++++++-------- .../symfony/console/Helper/QuestionHelper.php | 9 +- .../symfony/console/Tester/CommandTester.php | 4 + .../symfony/console/Tests/ApplicationTest.php | 24 +- .../console/Tests/Helper/ProgressBarTest.php | 13 + .../Tests/Helper/QuestionHelperTest.php | 3 + .../console/Tests/Style/SymfonyStyleTest.php | 4 +- vendor/symfony/console/Tests/TerminalTest.php | 15 + vendor/symfony/debug/DebugClassLoader.php | 6 +- vendor/symfony/debug/ExceptionHandler.php | 10 +- .../symfony/debug/Tests/ErrorHandlerTest.php | 4 +- .../debug/Tests/Fixtures/FinalClasses.php | 3 +- .../debug/Tests/Fixtures/FinalMethod.php | 2 + .../Compiler/AutowirePass.php | 10 +- .../Compiler/ResolveBindingsPass.php | 11 +- .../dependency-injection/Container.php | 2 +- .../dependency-injection/ContainerBuilder.php | 39 +++ .../dependency-injection/Dumper/PhpDumper.php | 33 +- .../dependency-injection/Dumper/XmlDumper.php | 10 +- .../Configurator/ServiceConfigurator.php | 2 + .../Loader/FileLoader.php | 2 + .../Loader/XmlFileLoader.php | 3 +- .../Tests/Compiler/AutowirePassTest.php | 17 + .../Compiler/ResolveBindingsPassTest.php | 21 ++ .../Tests/ContainerBuilderTest.php | 32 ++ .../Tests/Dumper/PhpDumperTest.php | 8 +- .../Tests/Dumper/XmlDumperTest.php | 8 +- .../Tests/Fixtures/Bar.php | 3 + .../Tests/Fixtures/php/services33.php | 4 +- .../Tests/Fixtures/php/services_adawson.php | 46 +-- .../Fixtures/php/services_inline_requires.php | 8 +- .../Fixtures/php/services_inline_self_ref.php | 2 +- .../Tests/Fixtures/php/services_rot13_env.php | 4 +- .../Fixtures/php/services_subscriber.php | 12 +- .../php/services_unsupported_characters.php | 178 +++++++++++ .../Tests/Fixtures/xml/class_from_id.xml | 2 +- .../Tests/Fixtures/xml/defaults_bindings.xml | 15 + .../Tests/Fixtures/xml/defaults_bindings2.xml | 10 + .../Fixtures/xml/extension1/services.xml | 2 +- .../Fixtures/xml/extension2/services.xml | 2 +- .../Fixtures/xml/extensions/services2.xml | 2 +- .../Fixtures/xml/extensions/services3.xml | 2 +- .../Fixtures/xml/extensions/services5.xml | 2 +- .../Fixtures/xml/extensions/services6.xml | 2 +- .../Fixtures/xml/extensions/services7.xml | 2 +- .../xml/legacy_invalid_alias_definition.xml | 2 +- .../Tests/Fixtures/xml/namespaces.xml | 4 +- .../xml/nested_service_without_id.xml | 2 +- .../Tests/Fixtures/xml/services1.xml | 2 +- .../Tests/Fixtures/xml/services10.xml | 2 +- .../Tests/Fixtures/xml/services13.xml | 2 +- .../Tests/Fixtures/xml/services14.xml | 2 +- .../Tests/Fixtures/xml/services2.xml | 2 +- .../Tests/Fixtures/xml/services21.xml | 2 +- .../Tests/Fixtures/xml/services22.xml | 2 +- .../Tests/Fixtures/xml/services23.xml | 2 +- .../Tests/Fixtures/xml/services24.xml | 2 +- .../Tests/Fixtures/xml/services28.xml | 2 +- .../Tests/Fixtures/xml/services3.xml | 2 +- .../Tests/Fixtures/xml/services4.xml | 2 +- .../Fixtures/xml/services4_bad_import.xml | 2 +- .../Tests/Fixtures/xml/services5.xml | 2 +- .../Tests/Fixtures/xml/services6.xml | 2 +- .../Tests/Fixtures/xml/services7.xml | 2 +- .../Tests/Fixtures/xml/services8.xml | 2 +- .../Tests/Fixtures/xml/services9.xml | 2 +- .../Tests/Fixtures/xml/services_abstract.xml | 2 +- .../Fixtures/xml/services_autoconfigure.xml | 2 +- .../services_autoconfigure_with_parent.xml | 2 +- .../Tests/Fixtures/xml/services_bindings.xml | 2 +- .../xml/services_defaults_with_parent.xml | 2 +- .../Fixtures/xml/services_deprecated.xml | 2 +- .../Tests/Fixtures/xml/services_dump_load.xml | 2 +- .../xml/services_inline_not_candidate.xml | 2 +- .../Fixtures/xml/services_instanceof.xml | 2 +- .../xml/services_instanceof_with_parent.xml | 2 +- .../Fixtures/xml/services_named_args.xml | 2 +- .../Tests/Fixtures/xml/services_prototype.xml | 2 +- .../Tests/Fixtures/xml/services_tsantos.xml | 2 +- .../Fixtures/xml/services_without_id.xml | 2 +- .../Fixtures/xml/tag_with_empty_name.xml | 2 +- .../Tests/Fixtures/xml/tag_without_name.xml | 2 +- .../xml/with_key_outside_collection.xml | 2 +- .../Tests/Fixtures/xml/xml_with_wrong_ext.php | 2 +- .../Tests/Fixtures/yaml/defaults_bindings.yml | 11 + .../Fixtures/yaml/defaults_bindings2.yml | 7 + .../Tests/Loader/XmlFileLoaderTest.php | 17 + .../Tests/Loader/YamlFileLoaderTest.php | 17 + .../Debug/TraceableEventDispatcher.php | 4 - .../RegisterListenersPass.php | 2 +- vendor/symfony/http-foundation/CHANGELOG.md | 4 +- .../MimeType/MimeTypeExtensionGuesser.php | 8 +- vendor/symfony/http-foundation/Request.php | 45 ++- vendor/symfony/http-foundation/Response.php | 6 +- .../http-foundation/Session/Session.php | 4 +- .../Fixtures/case-sensitive-mime-type.xlsm | Bin 0 -> 4791 bytes .../Tests/File/UploadedFileTest.php | 13 + .../Tests/Session/SessionTest.php | 10 + .../DataCollector/LoggerDataCollector.php | 6 +- .../DataCollector/TimeDataCollector.php | 9 + .../EventListener/DebugHandlersListener.php | 17 +- .../HttpCache/ResponseCacheStrategy.php | 2 +- vendor/symfony/http-kernel/Kernel.php | 6 +- vendor/symfony/http-kernel/Log/Logger.php | 2 +- .../http-kernel/Resources/welcome.html.php | 16 +- .../DataCollector/TimeDataCollectorTest.php | 2 + vendor/symfony/polyfill-ctype/LICENSE | 2 +- vendor/symfony/polyfill-ctype/composer.json | 2 +- vendor/symfony/polyfill-iconv/LICENSE | 2 +- vendor/symfony/polyfill-iconv/composer.json | 2 +- vendor/symfony/polyfill-mbstring/LICENSE | 2 +- .../symfony/polyfill-mbstring/composer.json | 2 +- vendor/symfony/polyfill-php70/LICENSE | 2 +- vendor/symfony/polyfill-php70/composer.json | 2 +- vendor/symfony/process/ExecutableFinder.php | 2 +- .../psr-http-message-bridge/.travis.yml | 14 +- .../Factory/HttpFoundationFactory.php | 2 +- .../AbstractHttpMessageFactoryTest.php | 2 +- .../Tests/Factory/PsrHttpFactoryTest.php | 20 +- .../Tests/Fixtures/Message.php | 4 +- .../psr-http-message-bridge/composer.json | 3 +- vendor/symfony/routing/CHANGELOG.md | 2 +- .../routing/Loader/AnnotationFileLoader.php | 5 + .../ServiceRouterLoader.php | 2 - .../symfony/routing/Loader/PhpFileLoader.php | 2 +- .../symfony/routing/Loader/XmlFileLoader.php | 3 +- .../AnnotatedClasses/AbstractClass.php | 5 + .../controller/import__controller.xml | 2 +- .../Fixtures/controller/import_controller.xml | 2 +- .../controller/import_override_defaults.xml | 2 +- .../Fixtures/controller/override_defaults.xml | 2 +- .../Tests/Fixtures/controller/routing.xml | 2 +- .../routing/Tests/Fixtures/glob/bar.xml | 2 +- .../routing/Tests/Fixtures/glob/baz.xml | 2 +- .../Tests/Fixtures/glob/import_multiple.xml | 2 +- .../Tests/Fixtures/glob/import_single.xml | 2 +- .../routing/Tests/Fixtures/list_defaults.xml | 2 +- .../Tests/Fixtures/list_in_list_defaults.xml | 2 +- .../Tests/Fixtures/list_in_map_defaults.xml | 2 +- .../Tests/Fixtures/list_null_values.xml | 2 +- .../routing/Tests/Fixtures/localized/utf8.xml | 13 + .../routing/Tests/Fixtures/map_defaults.xml | 2 +- .../Tests/Fixtures/map_in_list_defaults.xml | 2 +- .../Tests/Fixtures/map_in_map_defaults.xml | 2 +- .../Tests/Fixtures/map_null_values.xml | 2 +- .../routing/Tests/Fixtures/missing_id.xml | 2 +- .../routing/Tests/Fixtures/missing_path.xml | 2 +- .../Tests/Fixtures/namespaceprefix.xml | 2 +- .../routing/Tests/Fixtures/nonvalid.xml | 2 +- .../routing/Tests/Fixtures/nonvalidnode.xml | 2 +- .../routing/Tests/Fixtures/nonvalidroute.xml | 2 +- .../routing/Tests/Fixtures/null_values.xml | 2 +- .../Tests/Fixtures/scalar_defaults.xml | 2 +- .../routing/Tests/Fixtures/validpattern.xml | 2 +- .../routing/Tests/Fixtures/validresource.xml | 2 +- .../Tests/Loader/AnnotationFileLoaderTest.php | 8 + .../Tests/Loader/XmlFileLoaderTest.php | 20 ++ vendor/symfony/routing/composer.json | 3 +- .../Normalizer/AbstractNormalizer.php | 15 +- .../Normalizer/AbstractObjectNormalizer.php | 48 ++- .../Normalizer/GetSetMethodNormalizer.php | 2 +- .../Normalizer/PropertyNormalizer.php | 2 +- .../Tests/Fixtures/serialization.xml | 2 +- .../Normalizer/GetSetMethodNormalizerTest.php | 17 + .../Tests/Normalizer/ObjectNormalizerTest.php | 37 +++ .../translation/DataCollectorTranslator.php | 13 +- .../translation/Dumper/PoFileDumper.php | 2 +- .../Resources/bin/translation-status.php | 5 + .../Tests/Dumper/PoFileDumperTest.php | 2 +- .../Tests/Dumper/YamlFileDumperTest.php | 18 +- .../Tests/Loader/PoFileLoaderTest.php | 2 +- .../translation/Tests/TranslatorCacheTest.php | 2 +- .../translation/Tests/fixtures/resources.po | 5 +- vendor/symfony/translation/composer.json | 2 + vendor/symfony/validator/Constraint.php | 36 ++- .../validator/Constraints/Collection.php | 2 +- .../symfony/validator/Constraints/Count.php | 3 + .../symfony/validator/Constraints/Length.php | 3 + .../validator/Mapping/Cache/Psr6Cache.php | 5 + .../Resources/translations/validators.ar.xlf | 4 + .../Resources/translations/validators.bg.xlf | 40 +-- .../Resources/translations/validators.cs.xlf | 16 + .../Resources/translations/validators.de.xlf | 32 ++ .../Resources/translations/validators.en.xlf | 28 ++ .../Resources/translations/validators.fr.xlf | 28 ++ .../Resources/translations/validators.hu.xlf | 28 ++ .../Resources/translations/validators.lt.xlf | 28 ++ .../translations/validators.sr_Latn.xlf | 4 +- .../Resources/translations/validators.sv.xlf | 16 + .../Resources/translations/validators.tl.xlf | 48 +++ .../Resources/translations/validators.vi.xlf | 84 +++++ .../translations/validators.zh_CN.xlf | 20 ++ .../Test/ConstraintValidatorTestCase.php | 6 +- .../Test/TestCaseSetUpTearDownTrait.php | 82 +++++ .../validator/Tests/ConstraintTest.php | 11 +- .../Tests/Constraints/ChoiceValidatorTest.php | 24 +- .../Tests/Constraints/CountValidatorTest.php | 9 + .../Tests/Constraints/LengthValidatorTest.php | 11 +- .../Tests/Mapping/Cache/Psr6CacheTest.php | 8 + .../Loader/constraint-mapping-non-strings.xml | 2 +- .../Mapping/Loader/constraint-mapping.xml | 2 +- .../Tests/Mapping/Loader/withdoctype.xml | 2 +- .../Tests/Validator/AbstractValidatorTest.php | 24 ++ .../RecursiveContextualValidator.php | 17 +- .../Fixtures/YtsSpecificationExamples.yml | 2 +- vendor/twig/twig/CHANGELOG | 27 ++ vendor/twig/twig/composer.json | 2 +- vendor/twig/twig/doc/filters/index.rst | 1 + vendor/twig/twig/doc/filters/json_encode.rst | 2 +- vendor/twig/twig/doc/filters/raw.rst | 2 + .../doc/functions/template_from_string.rst | 11 + vendor/twig/twig/doc/templates.rst | 59 ++-- vendor/twig/twig/ext/twig/php_twig.h | 2 +- vendor/twig/twig/lib/Twig/Autoloader.php | 2 + vendor/twig/twig/phpunit.xml.dist | 3 +- vendor/twig/twig/src/Environment.php | 55 ++-- vendor/twig/twig/src/Error/Error.php | 8 +- vendor/twig/twig/src/Error/LoaderError.php | 12 - .../twig/twig/src/Extension/CoreExtension.php | 99 +++--- .../twig/src/Extension/DebugExtension.php | 14 +- .../src/Extension/StringLoaderExtension.php | 9 +- vendor/twig/twig/src/Lexer.php | 149 +++++++-- .../twig/twig/src/Loader/FilesystemLoader.php | 2 +- .../twig/twig/src/Node/CheckToStringNode.php | 2 +- .../src/Node/Expression/CallExpression.php | 20 +- .../twig/src/Node/Expression/InlinePrint.php | 35 +++ .../src/Node/Expression/Test/DefinedTest.php | 2 +- vendor/twig/twig/src/Node/IncludeNode.php | 51 +-- vendor/twig/twig/src/Node/MacroNode.php | 2 +- vendor/twig/twig/src/Node/ModuleNode.php | 59 ++-- vendor/twig/twig/src/Node/Node.php | 22 +- vendor/twig/twig/src/Node/WithNode.php | 12 +- .../src/NodeVisitor/EscaperNodeVisitor.php | 55 +++- vendor/twig/twig/src/Profiler/Profile.php | 20 +- .../twig/twig/src/Sandbox/SecurityPolicy.php | 2 +- vendor/twig/twig/src/Template.php | 12 +- .../twig/src/Test/IntegrationTestCase.php | 2 +- vendor/twig/twig/src/Test/NodeTestCase.php | 2 +- .../twig/test/Twig/Tests/EnvironmentTest.php | 45 +-- .../test/Twig/Tests/ExpressionParserTest.php | 6 +- .../test/Twig/Tests/Extension/SandboxTest.php | 2 +- .../twig/test/Twig/Tests/FileCachingTest.php | 4 +- .../exception_in_extension_extends.test | 12 + .../exception_in_extension_include.test | 12 + .../Fixtures/exceptions/undefined_parent.test | 2 + .../call_argument_defined_twice.test | 8 + .../call_positional_arg_after_named_arg.test | 8 + .../Tests/Fixtures/expressions/floats.test | 2 +- .../Twig/Tests/Fixtures/filters/length.test | 3 + .../include/ignore_missing_exists.test | 11 + .../include/include_missing_extends.test | 13 + .../functions/template_from_string_error.test | 8 + .../Fixtures/tags/autoescape/literal.test | 44 ++- .../tags/include/ignore_missing_exists.test | 11 + .../tags/include/include_missing_extends.test | 13 + .../Tests/Fixtures/tags/include/only.test | 14 +- .../Fixtures/tags/include/with_variables.test | 6 +- .../Tests/Fixtures/tags/sandbox/array.test | 16 + .../Fixtures/tags/set/capture_scope.test | 10 + .../Tests/Fixtures/tags/set/inheritance.test | 24 ++ .../tags/set/inheritance_overriding.test | 24 ++ .../Tests/Fixtures/tags/set/mutating.test | 17 + .../Tests/Fixtures/tags/with/globals.test | 10 + .../Tests/Fixtures/tags/with/iterable.test | 10 + .../tests/defined_on_complex_expr.test | 8 + .../{tags => whitespace}/trim_block.test | 6 - .../whitespace/trim_delimiter_as_strings.test | 10 + .../Tests/Fixtures/whitespace/trim_left.test | 32 ++ .../Fixtures/whitespace/trim_line_left.test | 33 ++ .../Fixtures/whitespace/trim_line_right.test | 32 ++ .../Tests/Fixtures/whitespace/trim_right.test | 28 ++ .../twig/test/Twig/Tests/IntegrationTest.php | 39 ++- .../twig/test/Twig/Tests/Node/IncludeTest.php | 12 +- .../twig/test/Twig/Tests/Node/ModuleTest.php | 6 +- vendor/typo3/phar-stream-wrapper/README.md | 69 ++++- .../typo3/phar-stream-wrapper/composer.json | 5 +- .../phar-stream-wrapper/src/Collectable.php | 31 ++ .../typo3/phar-stream-wrapper/src/Helper.php | 18 +- .../Interceptor/ConjunctionInterceptor.php | 88 ++++++ .../Interceptor/PharExtensionInterceptor.php | 8 +- .../Interceptor/PharMetaDataInterceptor.php | 68 ++++ .../typo3/phar-stream-wrapper/src/Manager.php | 62 +++- .../src/Phar/Container.php | 59 ++++ .../src/Phar/DeserializationException.php | 18 ++ .../phar-stream-wrapper/src/Phar/Manifest.php | 176 +++++++++++ .../phar-stream-wrapper/src/Phar/Reader.php | 222 +++++++++++++ .../src/Phar/ReaderException.php | 18 ++ .../phar-stream-wrapper/src/Phar/Stub.php | 65 ++++ .../src/PharStreamWrapper.php | 27 +- .../phar-stream-wrapper/src/Resolvable.php | 24 ++ .../src/Resolver/PharInvocation.php | 77 +++++ .../src/Resolver/PharInvocationCollection.php | 143 +++++++++ .../src/Resolver/PharInvocationResolver.php | 137 +++++++++ 306 files changed, 4586 insertions(+), 891 deletions(-) create mode 100644 vendor/brumann/polyfill-unserialize/.gitignore create mode 100644 vendor/brumann/polyfill-unserialize/.travis.yml create mode 100644 vendor/brumann/polyfill-unserialize/LICENSE create mode 100644 vendor/brumann/polyfill-unserialize/README.md create mode 100644 vendor/brumann/polyfill-unserialize/composer.json create mode 100644 vendor/brumann/polyfill-unserialize/phpunit.xml.dist create mode 100644 vendor/brumann/polyfill-unserialize/src/Unserialize.php create mode 100644 vendor/brumann/polyfill-unserialize/tests/Foo.php create mode 100644 vendor/brumann/polyfill-unserialize/tests/UnserializeTest.php create mode 100644 vendor/symfony/dependency-injection/Tests/Fixtures/php/services_unsupported_characters.php create mode 100644 vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings.xml create mode 100644 vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings2.xml create mode 100644 vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings.yml create mode 100644 vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings2.yml create mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/case-sensitive-mime-type.xlsm create mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/utf8.xml create mode 100644 vendor/symfony/validator/Test/TestCaseSetUpTearDownTrait.php create mode 100644 vendor/twig/twig/src/Node/Expression/InlinePrint.php create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_extends.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_include.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_argument_defined_twice.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_positional_arg_after_named_arg.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing_exists.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/include_missing_extends.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string_error.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing_exists.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/include_missing_extends.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/array.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture_scope.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance_overriding.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/mutating.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/globals.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/iterable.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined_on_complex_expr.test rename vendor/twig/twig/test/Twig/Tests/Fixtures/{tags => whitespace}/trim_block.test (92%) create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_delimiter_as_strings.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_left.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_left.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_right.test create mode 100644 vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_right.test create mode 100644 vendor/typo3/phar-stream-wrapper/src/Collectable.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Interceptor/ConjunctionInterceptor.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Phar/Container.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Phar/DeserializationException.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Phar/Manifest.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Phar/Reader.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Phar/ReaderException.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Phar/Stub.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Resolvable.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocation.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationCollection.php create mode 100644 vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php diff --git a/composer.lock b/composer.lock index ce1586a6b1..529515edf1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "62411bfecca962974f1d45e84a4e66f4", + "content-hash": "83c37b3e20a43996d81b885e3e5e498c", "packages": [ { "name": "alchemy/zippy", @@ -132,6 +132,42 @@ }, "type": "drupal-library" }, + { + "name": "brumann/polyfill-unserialize", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/dbrumann/polyfill-unserialize.git", + "reference": "844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dbrumann/polyfill-unserialize/zipball/844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b", + "reference": "844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brumann\\Polyfill\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Denis Brumann", + "email": "denis.brumann@sensiolabs.de" + } + ], + "description": "Backports unserialize options introduced in PHP 7.0 to older PHP versions.", + "time": "2017-02-03T09:55:47+00:00" + }, { "name": "ckeditor/indentblock", "version": "4.8.0", @@ -3716,7 +3752,9 @@ "message": "Beta releases are not covered by Drupal security advisories." } }, - "patches_applied": [] + "patches_applied": { + "2881745": "patches/entity_embed_2881745-22.patch" + } }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ @@ -5157,7 +5195,8 @@ "homepage": "https://www.drupal.org/project/migrate_devel", "support": { "source": "http://cgit.drupalcode.org/migrate_devel" - } + }, + "time": "2017-06-25T23:46:13+00:00" }, { "name": "drupal/migrate_plus", @@ -9026,7 +9065,7 @@ }, { "name": "symfony/class-loader", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", @@ -9146,16 +9185,16 @@ }, { "name": "symfony/console", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "71ce77f37af0c5ffb9590e43cc4f70e426945c5e" + "reference": "15a9104356436cb26e08adab97706654799d31d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/71ce77f37af0c5ffb9590e43cc4f70e426945c5e", - "reference": "71ce77f37af0c5ffb9590e43cc4f70e426945c5e", + "url": "https://api.github.com/repos/symfony/console/zipball/15a9104356436cb26e08adab97706654799d31d8", + "reference": "15a9104356436cb26e08adab97706654799d31d8", "shasum": "" }, "require": { @@ -9214,7 +9253,7 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-04-08T09:29:13+00:00" }, { "name": "symfony/css-selector", @@ -9271,16 +9310,16 @@ }, { "name": "symfony/debug", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "8d8a9e877b3fcdc50ddecf8dcea146059753f782" + "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/8d8a9e877b3fcdc50ddecf8dcea146059753f782", - "reference": "8d8a9e877b3fcdc50ddecf8dcea146059753f782", + "url": "https://api.github.com/repos/symfony/debug/zipball/681afbb26488903c5ac15e63734f1d8ac430c9b9", + "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9", "shasum": "" }, "require": { @@ -9323,20 +9362,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-02-24T15:45:11+00:00" + "time": "2019-04-11T09:48:14+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c3dd7b7ea8cd8ec12304a5e222d7dc01cac8fa11" + "reference": "dee85a9148399cdb2731603802842bcfd8afe5ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c3dd7b7ea8cd8ec12304a5e222d7dc01cac8fa11", - "reference": "c3dd7b7ea8cd8ec12304a5e222d7dc01cac8fa11", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/dee85a9148399cdb2731603802842bcfd8afe5ab", + "reference": "dee85a9148399cdb2731603802842bcfd8afe5ab", "shasum": "" }, "require": { @@ -9394,7 +9433,7 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-04-16T11:13:42+00:00" }, { "name": "symfony/dom-crawler", @@ -9455,16 +9494,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "ec625e2fff7f584eeb91754821807317b2e79236" + "reference": "a088aafcefb4eef2520a290ed82e4374092a6dff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ec625e2fff7f584eeb91754821807317b2e79236", - "reference": "ec625e2fff7f584eeb91754821807317b2e79236", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a088aafcefb4eef2520a290ed82e4374092a6dff", + "reference": "a088aafcefb4eef2520a290ed82e4374092a6dff", "shasum": "" }, "require": { @@ -9514,7 +9553,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-04-02T08:51:52+00:00" }, { "name": "symfony/filesystem", @@ -9617,16 +9656,16 @@ }, { "name": "symfony/http-foundation", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "9a96d77ceb1fd913c9d4a89e8a7e1be87604be8a" + "reference": "90454ad44c95d75faf3507d56388056001b74baf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9a96d77ceb1fd913c9d4a89e8a7e1be87604be8a", - "reference": "9a96d77ceb1fd913c9d4a89e8a7e1be87604be8a", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/90454ad44c95d75faf3507d56388056001b74baf", + "reference": "90454ad44c95d75faf3507d56388056001b74baf", "shasum": "" }, "require": { @@ -9667,20 +9706,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-04-17T14:51:18+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "0362368c761cb8d9c79e56ab0db61d2c692db594" + "reference": "14fa41ccd38570b5e3120a3754bbaa144a15f311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/0362368c761cb8d9c79e56ab0db61d2c692db594", - "reference": "0362368c761cb8d9c79e56ab0db61d2c692db594", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/14fa41ccd38570b5e3120a3754bbaa144a15f311", + "reference": "14fa41ccd38570b5e3120a3754bbaa144a15f311", "shasum": "" }, "require": { @@ -9756,20 +9795,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-03-03T18:52:34+00:00" + "time": "2019-04-17T15:57:07+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.10.0", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + "reference": "82ebae02209c21113908c229e9883c419720738a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", + "reference": "82ebae02209c21113908c229e9883c419720738a", "shasum": "" }, "require": { @@ -9781,7 +9820,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "autoload": { @@ -9814,20 +9853,20 @@ "polyfill", "portable" ], - "time": "2018-08-06T14:22:27+00:00" + "time": "2019-02-06T07:57:58+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.10.0", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "97001cfc283484c9691769f51cdf25259037eba2" + "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/97001cfc283484c9691769f51cdf25259037eba2", - "reference": "97001cfc283484c9691769f51cdf25259037eba2", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", + "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", "shasum": "" }, "require": { @@ -9839,7 +9878,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "autoload": { @@ -9873,20 +9912,20 @@ "portable", "shim" ], - "time": "2018-09-21T06:26:08+00:00" + "time": "2019-02-06T07:57:58+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.10.0", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", "shasum": "" }, "require": { @@ -9898,7 +9937,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "autoload": { @@ -9932,20 +9971,20 @@ "portable", "shim" ], - "time": "2018-09-21T13:07:52+00:00" + "time": "2019-02-06T07:57:58+00:00" }, { "name": "symfony/polyfill-php70", - "version": "v1.10.0", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224" + "reference": "bc4858fb611bda58719124ca079baff854149c89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224", - "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/bc4858fb611bda58719124ca079baff854149c89", + "reference": "bc4858fb611bda58719124ca079baff854149c89", "shasum": "" }, "require": { @@ -9955,7 +9994,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "autoload": { @@ -9991,20 +10030,20 @@ "portable", "shim" ], - "time": "2018-09-21T06:26:08+00:00" + "time": "2019-02-06T07:57:58+00:00" }, { "name": "symfony/process", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "009f8dda80930e89e8344a4e310b08f9ff07dd2e" + "reference": "a9c4dfbf653023b668c282e4e02609d131f4057a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/009f8dda80930e89e8344a4e310b08f9ff07dd2e", - "reference": "009f8dda80930e89e8344a4e310b08f9ff07dd2e", + "url": "https://api.github.com/repos/symfony/process/zipball/a9c4dfbf653023b668c282e4e02609d131f4057a", + "reference": "a9c4dfbf653023b668c282e4e02609d131f4057a", "shasum": "" }, "require": { @@ -10040,20 +10079,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-01-16T13:27:11+00:00" + "time": "2019-04-08T16:15:54+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v1.1.1", + "version": "v1.1.2", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "921f8669c36ea0148d2520c0bb7838cda14879e0" + "reference": "a33352af16f78a5ff4f9d90811536abf210df12b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/921f8669c36ea0148d2520c0bb7838cda14879e0", - "reference": "921f8669c36ea0148d2520c0bb7838cda14879e0", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/a33352af16f78a5ff4f9d90811536abf210df12b", + "reference": "a33352af16f78a5ff4f9d90811536abf210df12b", "shasum": "" }, "require": { @@ -10062,7 +10101,6 @@ "symfony/http-foundation": "^2.3.42 || ^3.4 || ^4.0" }, "require-dev": { - "nyholm/psr7": "^1.1", "symfony/phpunit-bridge": "^3.4 || ^4.0" }, "suggest": { @@ -10104,20 +10142,20 @@ "psr-17", "psr-7" ], - "time": "2019-03-11T15:23:15+00:00" + "time": "2019-04-03T17:09:40+00:00" }, { "name": "symfony/routing", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "6b25a86df5860461ff1990946168c0ef944f83db" + "reference": "ff11aac46d6cb8a65f2855687bb9a1ac9d860eec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/6b25a86df5860461ff1990946168c0ef944f83db", - "reference": "6b25a86df5860461ff1990946168c0ef944f83db", + "url": "https://api.github.com/repos/symfony/routing/zipball/ff11aac46d6cb8a65f2855687bb9a1ac9d860eec", + "reference": "ff11aac46d6cb8a65f2855687bb9a1ac9d860eec", "shasum": "" }, "require": { @@ -10140,7 +10178,6 @@ "suggest": { "doctrine/annotations": "For using the annotation loader", "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", "symfony/expression-language": "For using expression matching", "symfony/http-foundation": "For using a Symfony Request object", "symfony/yaml": "For using the YAML loader" @@ -10181,20 +10218,20 @@ "uri", "url" ], - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-03-29T21:58:42+00:00" }, { "name": "symfony/serializer", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "964b7a59002391136fb0087fd5dc41213f7c283e" + "reference": "14b3221cc41dcfef404205f0060cda873f43a534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/964b7a59002391136fb0087fd5dc41213f7c283e", - "reference": "964b7a59002391136fb0087fd5dc41213f7c283e", + "url": "https://api.github.com/repos/symfony/serializer/zipball/14b3221cc41dcfef404205f0060cda873f43a534", + "reference": "14b3221cc41dcfef404205f0060cda873f43a534", "shasum": "" }, "require": { @@ -10260,20 +10297,20 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-04-11T05:44:34+00:00" }, { "name": "symfony/translation", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3e2966209567ffed8825905b53fc8548446130aa" + "reference": "aae26f143da71adc8707eb489f1dc86aef7d376b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3e2966209567ffed8825905b53fc8548446130aa", - "reference": "3e2966209567ffed8825905b53fc8548446130aa", + "url": "https://api.github.com/repos/symfony/translation/zipball/aae26f143da71adc8707eb489f1dc86aef7d376b", + "reference": "aae26f143da71adc8707eb489f1dc86aef7d376b", "shasum": "" }, "require": { @@ -10290,7 +10327,9 @@ "symfony/config": "~2.8|~3.0|~4.0", "symfony/dependency-injection": "~3.4|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~3.4|~4.0", "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/var-dumper": "~3.4|~4.0", "symfony/yaml": "~3.4|~4.0" }, "suggest": { @@ -10328,20 +10367,20 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-04-10T16:00:48+00:00" }, { "name": "symfony/validator", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "21f8a7da6d4d8e6e34bd4e2bfaa24fa373886907" + "reference": "83da5259779aaf9dde220130e62b785f74e2ac49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/21f8a7da6d4d8e6e34bd4e2bfaa24fa373886907", - "reference": "21f8a7da6d4d8e6e34bd4e2bfaa24fa373886907", + "url": "https://api.github.com/repos/symfony/validator/zipball/83da5259779aaf9dde220130e62b785f74e2ac49", + "reference": "83da5259779aaf9dde220130e62b785f74e2ac49", "shasum": "" }, "require": { @@ -10413,7 +10452,7 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2019-02-25T09:32:21+00:00" + "time": "2019-04-16T11:21:44+00:00" }, { "name": "symfony/var-dumper", @@ -10486,16 +10525,16 @@ }, { "name": "symfony/yaml", - "version": "v3.4.23", + "version": "v3.4.26", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "57f1ce82c997f5a8701b89ef970e36bb657fd09c" + "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/57f1ce82c997f5a8701b89ef970e36bb657fd09c", - "reference": "57f1ce82c997f5a8701b89ef970e36bb657fd09c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/212a27b731e5bfb735679d1ffaac82bd6a1dc996", + "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996", "shasum": "" }, "require": { @@ -10541,7 +10580,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-03-25T07:48:46+00:00" }, { "name": "twig/extensions", @@ -10600,16 +10639,16 @@ }, { "name": "twig/twig", - "version": "v1.38.2", + "version": "v1.39.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "874adbd9222f928f6998732b25b01b41dff15b0c" + "reference": "23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/874adbd9222f928f6998732b25b01b41dff15b0c", - "reference": "874adbd9222f928f6998732b25b01b41dff15b0c", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec", + "reference": "23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec", "shasum": "" }, "require": { @@ -10624,7 +10663,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.38-dev" + "dev-master": "1.39-dev" } }, "autoload": { @@ -10662,23 +10701,26 @@ "keywords": [ "templating" ], - "time": "2019-03-12T18:45:24+00:00" + "time": "2019-04-16T17:12:57+00:00" }, { "name": "typo3/phar-stream-wrapper", - "version": "v2.0.1", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/TYPO3/phar-stream-wrapper.git", - "reference": "0469d9fefa0146ea4299d3b11cfbb76faa7045bf" + "reference": "b7a21f0859059ed5d9754af8c11f852d43762334" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/0469d9fefa0146ea4299d3b11cfbb76faa7045bf", - "reference": "0469d9fefa0146ea4299d3b11cfbb76faa7045bf", + "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/b7a21f0859059ed5d9754af8c11f852d43762334", + "reference": "b7a21f0859059ed5d9754af8c11f852d43762334", "shasum": "" }, "require": { + "brumann/polyfill-unserialize": "^1.0", + "ext-fileinfo": "*", + "ext-json": "*", "php": "^5.3.3|^7.0" }, "require-dev": { @@ -10702,7 +10744,7 @@ "security", "stream-wrapper" ], - "time": "2018-10-18T08:46:28+00:00" + "time": "2019-03-01T17:43:52+00:00" }, { "name": "webflo/drupal-finder", diff --git a/vendor/brumann/polyfill-unserialize/.gitignore b/vendor/brumann/polyfill-unserialize/.gitignore new file mode 100644 index 0000000000..767699f1b8 --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/.gitignore @@ -0,0 +1,4 @@ +/vendor/ +/phpunit.xml +/.composer.lock + diff --git a/vendor/brumann/polyfill-unserialize/.travis.yml b/vendor/brumann/polyfill-unserialize/.travis.yml new file mode 100644 index 0000000000..352536f458 --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/.travis.yml @@ -0,0 +1,20 @@ +language: php + +sudo: false + +php: + - '5.3' + - '5.4' + - '5.5' + - '5.6' + - '7.0' + - '7.1' + +before_install: + - phpenv config-rm xdebug.ini + - composer self-update + +install: + - composer install + +script: phpunit diff --git a/vendor/brumann/polyfill-unserialize/LICENSE b/vendor/brumann/polyfill-unserialize/LICENSE new file mode 100644 index 0000000000..0cb53d3b02 --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Denis Brumann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/brumann/polyfill-unserialize/README.md b/vendor/brumann/polyfill-unserialize/README.md new file mode 100644 index 0000000000..bac25fe049 --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/README.md @@ -0,0 +1,61 @@ +Polyfill unserialize [](https://travis-ci.org/dbrumann/polyfill-unserialize) +=== + +Backports unserialize options introduced in PHP 7.0 to older PHP versions. +This was originally designed as a Proof of Concept for Symfony Issue [#21090](https://github.com/symfony/symfony/pull/21090). + +You can use this package in projects that rely on PHP versions older than PHP 7.0. +In case you are using PHP 7.0+ the original `unserialize()` will be used instead. + +From the [documentation](https://secure.php.net/manual/en/function.unserialize.php): + +> Warning: Do not pass untrusted user input to unserialize(). Unserialization can +> result in code being loaded and executed due to object instantiation +> and autoloading, and a malicious user may be able to exploit this. + +This warning holds true even when `allowed_classes` is used. + +Requirements +------------ + + - PHP 5.3+ + +Installation +------------ + +You can install this package via composer: + +``` +composer require brumann/polyfill-unserialize "^1.0" +``` + +Known Issues +------------ + +There is a mismatch in behavior when `allowed_classes` in `$options` is not +of the correct type (array or boolean). PHP 7.1 will issue a warning, whereas +PHP 7.0 will not. I opted to copy the behavior of the former. + +Tests +----- + +You can run the test suite using PHPUnit. It is intentionally not bundled as +dev dependency to make sure this package has the lowest restrictions on the +implementing system as possible. + +Please read the [PHPUnit Manual](https://phpunit.de/manual/current/en/installation.html) +for information how to install it on your system. + +You can run the test suite as follows: + +``` +phpunit -c phpunit.xml.dist tests/ +``` + +Contributing +------------ + +This package is considered feature complete. As such I will likely not update it +unless there are security issues. + +Should you find any bugs or have questions, feel free to submit an Issue or a Pull Request. diff --git a/vendor/brumann/polyfill-unserialize/composer.json b/vendor/brumann/polyfill-unserialize/composer.json new file mode 100644 index 0000000000..ec4a2cf0ea --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/composer.json @@ -0,0 +1,26 @@ +{ + "name": "brumann/polyfill-unserialize", + "description": "Backports unserialize options introduced in PHP 7.0 to older PHP versions.", + "type": "library", + "license": "MIT", + "authors": [ + { + "name": "Denis Brumann", + "email": "denis.brumann@sensiolabs.de" + } + ], + "autoload": { + "psr-4": { + "Brumann\\Polyfill\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\Brumann\\Polyfill\\": "tests/" + } + }, + "minimum-stability": "stable", + "require": { + "php": "^5.3|^7.0" + } +} diff --git a/vendor/brumann/polyfill-unserialize/phpunit.xml.dist b/vendor/brumann/polyfill-unserialize/phpunit.xml.dist new file mode 100644 index 0000000000..8fea1bab86 --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/phpunit.xml.dist @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<phpunit + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd" + backupGlobals="false" + colors="true" + bootstrap="vendor/autoload.php" +> + <php> + <ini name="error_reporting" value="-1" /> + </php> + + <testsuites> + <testsuite name="Brumann\Polyfill Test Suite"> + <directory>./tests/</directory> + </testsuite> + </testsuites> + + <filter> + <whitelist> + <directory>./src/</directory> + </whitelist> + </filter> +</phpunit> diff --git a/vendor/brumann/polyfill-unserialize/src/Unserialize.php b/vendor/brumann/polyfill-unserialize/src/Unserialize.php new file mode 100644 index 0000000000..e025d55ed4 --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/src/Unserialize.php @@ -0,0 +1,58 @@ +<?php + +namespace Brumann\Polyfill; + +final class Unserialize +{ + /** + * @see https://secure.php.net/manual/en/function.unserialize.php + * + * @param string $serialized Serialized data + * @param array $options Associative array containing options + * + * @return mixed + */ + public static function unserialize($serialized, array $options = array()) + { + if (PHP_VERSION_ID >= 70000) { + return \unserialize($serialized, $options); + } + if (!array_key_exists('allowed_classes', $options)) { + $options['allowed_classes'] = true; + } + $allowedClasses = $options['allowed_classes']; + if (true === $allowedClasses) { + return \unserialize($serialized); + } + if (false === $allowedClasses) { + $allowedClasses = array(); + } + if (!is_array($allowedClasses)) { + trigger_error( + 'unserialize(): allowed_classes option should be array or boolean', + E_USER_WARNING + ); + $allowedClasses = array(); + } + + $sanitizedSerialized = preg_replace_callback( + '/(^|;)O:\d+:"([^"]*)":(\d+):{/', + function ($match) use ($allowedClasses) { + list($completeMatch, $leftBorder, $className, $objectSize) = $match; + if (in_array($className, $allowedClasses)) { + return $completeMatch; + } else { + return sprintf( + '%sO:22:"__PHP_Incomplete_Class":%d:{s:27:"__PHP_Incomplete_Class_Name";%s', + $leftBorder, + $objectSize + 1, // size of object + 1 for added string + \serialize($className) + ); + } + }, + $serialized + ); + + return \unserialize($sanitizedSerialized); + } +} diff --git a/vendor/brumann/polyfill-unserialize/tests/Foo.php b/vendor/brumann/polyfill-unserialize/tests/Foo.php new file mode 100644 index 0000000000..b2a16e575a --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/tests/Foo.php @@ -0,0 +1,7 @@ +<?php + +namespace Tests\Brumann\Polyfill; + +class Foo +{ +} diff --git a/vendor/brumann/polyfill-unserialize/tests/UnserializeTest.php b/vendor/brumann/polyfill-unserialize/tests/UnserializeTest.php new file mode 100644 index 0000000000..e4ea424bca --- /dev/null +++ b/vendor/brumann/polyfill-unserialize/tests/UnserializeTest.php @@ -0,0 +1,196 @@ +<?php + +namespace Tests\Brumann\Polyfill; + +use Brumann\Polyfill\Unserialize; + +class UnserializeTest extends \PHPUnit_Framework_TestCase +{ + public function test_unserialize_without_options_returns_instance() + { + $foo = new Foo(); + $serialized = serialize($foo); + + $unserialized = Unserialize::unserialize($serialized); + + $this->assertInstanceOf('Tests\\Brumann\\Polyfill\\Foo', $unserialized); + } + + public function test_unserialize_with_cqn_returns_instance() + { + $foo = new Foo(); + $serialized = serialize($foo); + $options = array( + 'allowed_classes' => array('Tests\\Brumann\\Polyfill\\Foo'), + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertInstanceOf('Tests\\Brumann\\Polyfill\\Foo', $unserialized); + } + + public function test_unserialize_with_fqcn_allowed_returns_instance() + { + $foo = new Foo(); + $serialized = serialize($foo); + $options = array( + 'allowed_classes' => array('\\Tests\\Brumann\\Polyfill\\Foo'), + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertInstanceOf('__PHP_Incomplete_Class', $unserialized); + } + + public function test_unserialize_with_allowed_classes_false_returns_incomplete_object() + { + $foo = new Foo(); + $serialized = serialize($foo); + $options = array( + 'allowed_classes' => false, + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertInstanceOf('__PHP_Incomplete_Class', $unserialized); + } + + /** + * @requires PHP < 7.0 + * + * @expectedException \PHPUnit_Framework_Error_Warning + * @expectedMessage allowed_classes option should be array or boolean + */ + public function test_unserialize_with_allowed_classes_null_behaves_like_php71() + { + $foo = new Foo(); + $serialized = serialize($foo); + $options = array( + 'allowed_classes' => null, + ); + + Unserialize::unserialize($serialized, $options); + } + + /** + * @expectedException \PHPUnit_Framework_Error_Notice + * @expectedExceptionMessage tried to execute a method or access a property of an incomplete object. + */ + public function test_accessing_property_of_incomplete_object_returns_warning() + { + $bar = new \stdClass(); + $bar->foo = new Foo(); + $serialized = serialize($bar); + $options = array( + 'allowed_classes' => array('Tests\\Brumann\\Polyfill\\Foo'), + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertInstanceOf('__PHP_Incomplete_Class', $unserialized); + $unserialized->foo; + } + + public function test_unserialize_only_parent_object() + { + $foo = new Foo(); + $foo->bar = new \stdClass(); + $serialized = serialize($foo); + $options = array( + 'allowed_classes' => array('Tests\\Brumann\\Polyfill\\Foo'), + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertInstanceOf('\\Tests\\Brumann\\Polyfill\\Foo', $unserialized); + $this->assertInstanceOf('__PHP_Incomplete_Class', $unserialized->bar); + } + + public function test_unserialize_parent_and_embedded_object() + { + $foo = new Foo(); + $foo->foo = new Foo(); + $serialized = serialize($foo); + $options = array( + 'allowed_classes' => array('Tests\\Brumann\\Polyfill\\Foo'), + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertInstanceOf('\\Tests\\Brumann\\Polyfill\\Foo', $unserialized); + $this->assertInstanceOf('\\Tests\\Brumann\\Polyfill\\Foo', $unserialized->foo); + } + + public function test_unserialize_with_allowed_classes_false_serializes_string() + { + $string = 'This is an ordinary string'; + $serialized = serialize($string); + $options = array( + 'allowed_classes' => false, + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertEquals($string, $unserialized); + } + + public function test_unserialize_with_allowed_classes_false_serializes_bool() + { + $bool = true; + $serialized = serialize($bool); + $options = array( + 'allowed_classes' => false, + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertEquals($bool, $unserialized); + } + + public function test_unserialize_with_allowed_classes_false_serializes_array() + { + $array = array( + 'key' => 42, + 1 => 'foo', + 'bar' => 'baz', + 2 => 23, + 4 => true, + ); + $serialized = serialize($array); + $options = array( + 'allowed_classes' => false, + ); + + $unserialized = Unserialize::unserialize($serialized, $options); + + $this->assertSame($array, $unserialized); + } + + public function test_double_serialized_unserializes_as_first_serialized() + { + $foo = new Foo(); + $first = serialize($foo); + $second = serialize($first); + $options = array( + 'allowed_classes' => false, + ); + + $unserialized = Unserialize::unserialize($second, $options); + + $this->assertSame($first, $unserialized); + } + + public function test_double_unserialize_double_serialized() + { + $foo = new Foo(); + $serialized = serialize(serialize($foo)); + $options = array( + 'allowed_classes' => false, + ); + + $first = Unserialize::unserialize($serialized, $options); + $unserialized = Unserialize::unserialize($first, $options); + + $this->assertInstanceOf('__PHP_Incomplete_Class', $unserialized); + } +} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 9d5771ff55..b85c7d47ed 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -89,6 +89,7 @@ 'Asm89\\Stack\\Cors' => $vendorDir . '/asm89/stack-cors/src/Asm89/Stack/Cors.php', 'Asm89\\Stack\\CorsService' => $vendorDir . '/asm89/stack-cors/src/Asm89/Stack/CorsService.php', 'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', + 'Brumann\\Polyfill\\Unserialize' => $vendorDir . '/brumann/polyfill-unserialize/src/Unserialize.php', 'CommerceGuys\\Addressing\\AbstractEnum' => $vendorDir . '/commerceguys/addressing/src/AbstractEnum.php', 'CommerceGuys\\Addressing\\Address' => $vendorDir . '/commerceguys/addressing/src/Address.php', 'CommerceGuys\\Addressing\\AddressFormat\\AddressField' => $vendorDir . '/commerceguys/addressing/src/AddressFormat/AddressField.php', @@ -4455,6 +4456,7 @@ 'Symfony\\Component\\Validator\\ObjectInitializerInterface' => $vendorDir . '/symfony/validator/ObjectInitializerInterface.php', 'Symfony\\Component\\Validator\\Test\\ConstraintValidatorTestCase' => $vendorDir . '/symfony/validator/Test/ConstraintValidatorTestCase.php', 'Symfony\\Component\\Validator\\Test\\ConstraintViolationAssertion' => $vendorDir . '/symfony/validator/Test/ConstraintValidatorTestCase.php', + 'Symfony\\Component\\Validator\\Test\\TestCaseSetUpTearDownTrait' => $vendorDir . '/symfony/validator/Test/TestCaseSetUpTearDownTrait.php', 'Symfony\\Component\\Validator\\Util\\PropertyPath' => $vendorDir . '/symfony/validator/Util/PropertyPath.php', 'Symfony\\Component\\Validator\\Validation' => $vendorDir . '/symfony/validator/Validation.php', 'Symfony\\Component\\Validator\\ValidatorBuilder' => $vendorDir . '/symfony/validator/ValidatorBuilder.php', @@ -4524,11 +4526,24 @@ 'Symfony\\Polyfill\\Php70\\Php70' => $vendorDir . '/symfony/polyfill-php70/Php70.php', 'TYPO3\\PharStreamWrapper\\Assertable' => $vendorDir . '/typo3/phar-stream-wrapper/src/Assertable.php', 'TYPO3\\PharStreamWrapper\\Behavior' => $vendorDir . '/typo3/phar-stream-wrapper/src/Behavior.php', + 'TYPO3\\PharStreamWrapper\\Collectable' => $vendorDir . '/typo3/phar-stream-wrapper/src/Collectable.php', 'TYPO3\\PharStreamWrapper\\Exception' => $vendorDir . '/typo3/phar-stream-wrapper/src/Exception.php', 'TYPO3\\PharStreamWrapper\\Helper' => $vendorDir . '/typo3/phar-stream-wrapper/src/Helper.php', + 'TYPO3\\PharStreamWrapper\\Interceptor\\ConjunctionInterceptor' => $vendorDir . '/typo3/phar-stream-wrapper/src/Interceptor/ConjunctionInterceptor.php', 'TYPO3\\PharStreamWrapper\\Interceptor\\PharExtensionInterceptor' => $vendorDir . '/typo3/phar-stream-wrapper/src/Interceptor/PharExtensionInterceptor.php', + 'TYPO3\\PharStreamWrapper\\Interceptor\\PharMetaDataInterceptor' => $vendorDir . '/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php', 'TYPO3\\PharStreamWrapper\\Manager' => $vendorDir . '/typo3/phar-stream-wrapper/src/Manager.php', 'TYPO3\\PharStreamWrapper\\PharStreamWrapper' => $vendorDir . '/typo3/phar-stream-wrapper/src/PharStreamWrapper.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Container' => $vendorDir . '/typo3/phar-stream-wrapper/src/Phar/Container.php', + 'TYPO3\\PharStreamWrapper\\Phar\\DeserializationException' => $vendorDir . '/typo3/phar-stream-wrapper/src/Phar/DeserializationException.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Manifest' => $vendorDir . '/typo3/phar-stream-wrapper/src/Phar/Manifest.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Reader' => $vendorDir . '/typo3/phar-stream-wrapper/src/Phar/Reader.php', + 'TYPO3\\PharStreamWrapper\\Phar\\ReaderException' => $vendorDir . '/typo3/phar-stream-wrapper/src/Phar/ReaderException.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Stub' => $vendorDir . '/typo3/phar-stream-wrapper/src/Phar/Stub.php', + 'TYPO3\\PharStreamWrapper\\Resolvable' => $vendorDir . '/typo3/phar-stream-wrapper/src/Resolvable.php', + 'TYPO3\\PharStreamWrapper\\Resolver\\PharInvocation' => $vendorDir . '/typo3/phar-stream-wrapper/src/Resolver/PharInvocation.php', + 'TYPO3\\PharStreamWrapper\\Resolver\\PharInvocationCollection' => $vendorDir . '/typo3/phar-stream-wrapper/src/Resolver/PharInvocationCollection.php', + 'TYPO3\\PharStreamWrapper\\Resolver\\PharInvocationResolver' => $vendorDir . '/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php', 'Twig\\Cache\\CacheInterface' => $vendorDir . '/twig/twig/src/Cache/CacheInterface.php', 'Twig\\Cache\\FilesystemCache' => $vendorDir . '/twig/twig/src/Cache/FilesystemCache.php', 'Twig\\Cache\\NullCache' => $vendorDir . '/twig/twig/src/Cache/NullCache.php', @@ -4621,6 +4636,7 @@ 'Twig\\Node\\Expression\\Filter\\DefaultFilter' => $vendorDir . '/twig/twig/src/Node/Expression/Filter/DefaultFilter.php', 'Twig\\Node\\Expression\\FunctionExpression' => $vendorDir . '/twig/twig/src/Node/Expression/FunctionExpression.php', 'Twig\\Node\\Expression\\GetAttrExpression' => $vendorDir . '/twig/twig/src/Node/Expression/GetAttrExpression.php', + 'Twig\\Node\\Expression\\InlinePrint' => $vendorDir . '/twig/twig/src/Node/Expression/InlinePrint.php', 'Twig\\Node\\Expression\\MethodCallExpression' => $vendorDir . '/twig/twig/src/Node/Expression/MethodCallExpression.php', 'Twig\\Node\\Expression\\NameExpression' => $vendorDir . '/twig/twig/src/Node/Expression/NameExpression.php', 'Twig\\Node\\Expression\\NullCoalesceExpression' => $vendorDir . '/twig/twig/src/Node/Expression/NullCoalesceExpression.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 670b670111..522a868995 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -78,6 +78,7 @@ 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'), 'CommerceGuys\\Intl\\' => array($vendorDir . '/commerceguys/intl/src'), 'CommerceGuys\\Addressing\\' => array($vendorDir . '/commerceguys/addressing/src'), + 'Brumann\\Polyfill\\' => array($vendorDir . '/brumann/polyfill-unserialize/src'), 'Asm89\\Stack\\' => array($vendorDir . '/asm89/stack-cors/src/Asm89/Stack'), 'Alchemy\\Zippy\\' => array($vendorDir . '/alchemy/zippy/src'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 20a080e325..2fa9742d88 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -149,6 +149,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'CommerceGuys\\Intl\\' => 18, 'CommerceGuys\\Addressing\\' => 24, ), + 'B' => + array ( + 'Brumann\\Polyfill\\' => 17, + ), 'A' => array ( 'Asm89\\Stack\\' => 12, @@ -445,6 +449,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/commerceguys/addressing/src', ), + 'Brumann\\Polyfill\\' => + array ( + 0 => __DIR__ . '/..' . '/brumann/polyfill-unserialize/src', + ), 'Asm89\\Stack\\' => array ( 0 => __DIR__ . '/..' . '/asm89/stack-cors/src/Asm89/Stack', @@ -620,6 +628,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Asm89\\Stack\\Cors' => __DIR__ . '/..' . '/asm89/stack-cors/src/Asm89/Stack/Cors.php', 'Asm89\\Stack\\CorsService' => __DIR__ . '/..' . '/asm89/stack-cors/src/Asm89/Stack/CorsService.php', 'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', + 'Brumann\\Polyfill\\Unserialize' => __DIR__ . '/..' . '/brumann/polyfill-unserialize/src/Unserialize.php', 'CommerceGuys\\Addressing\\AbstractEnum' => __DIR__ . '/..' . '/commerceguys/addressing/src/AbstractEnum.php', 'CommerceGuys\\Addressing\\Address' => __DIR__ . '/..' . '/commerceguys/addressing/src/Address.php', 'CommerceGuys\\Addressing\\AddressFormat\\AddressField' => __DIR__ . '/..' . '/commerceguys/addressing/src/AddressFormat/AddressField.php', @@ -4986,6 +4995,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Symfony\\Component\\Validator\\ObjectInitializerInterface' => __DIR__ . '/..' . '/symfony/validator/ObjectInitializerInterface.php', 'Symfony\\Component\\Validator\\Test\\ConstraintValidatorTestCase' => __DIR__ . '/..' . '/symfony/validator/Test/ConstraintValidatorTestCase.php', 'Symfony\\Component\\Validator\\Test\\ConstraintViolationAssertion' => __DIR__ . '/..' . '/symfony/validator/Test/ConstraintValidatorTestCase.php', + 'Symfony\\Component\\Validator\\Test\\TestCaseSetUpTearDownTrait' => __DIR__ . '/..' . '/symfony/validator/Test/TestCaseSetUpTearDownTrait.php', 'Symfony\\Component\\Validator\\Util\\PropertyPath' => __DIR__ . '/..' . '/symfony/validator/Util/PropertyPath.php', 'Symfony\\Component\\Validator\\Validation' => __DIR__ . '/..' . '/symfony/validator/Validation.php', 'Symfony\\Component\\Validator\\ValidatorBuilder' => __DIR__ . '/..' . '/symfony/validator/ValidatorBuilder.php', @@ -5055,11 +5065,24 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Symfony\\Polyfill\\Php70\\Php70' => __DIR__ . '/..' . '/symfony/polyfill-php70/Php70.php', 'TYPO3\\PharStreamWrapper\\Assertable' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Assertable.php', 'TYPO3\\PharStreamWrapper\\Behavior' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Behavior.php', + 'TYPO3\\PharStreamWrapper\\Collectable' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Collectable.php', 'TYPO3\\PharStreamWrapper\\Exception' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Exception.php', 'TYPO3\\PharStreamWrapper\\Helper' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Helper.php', + 'TYPO3\\PharStreamWrapper\\Interceptor\\ConjunctionInterceptor' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Interceptor/ConjunctionInterceptor.php', 'TYPO3\\PharStreamWrapper\\Interceptor\\PharExtensionInterceptor' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Interceptor/PharExtensionInterceptor.php', + 'TYPO3\\PharStreamWrapper\\Interceptor\\PharMetaDataInterceptor' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php', 'TYPO3\\PharStreamWrapper\\Manager' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Manager.php', 'TYPO3\\PharStreamWrapper\\PharStreamWrapper' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/PharStreamWrapper.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Container' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Phar/Container.php', + 'TYPO3\\PharStreamWrapper\\Phar\\DeserializationException' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Phar/DeserializationException.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Manifest' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Phar/Manifest.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Reader' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Phar/Reader.php', + 'TYPO3\\PharStreamWrapper\\Phar\\ReaderException' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Phar/ReaderException.php', + 'TYPO3\\PharStreamWrapper\\Phar\\Stub' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Phar/Stub.php', + 'TYPO3\\PharStreamWrapper\\Resolvable' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Resolvable.php', + 'TYPO3\\PharStreamWrapper\\Resolver\\PharInvocation' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Resolver/PharInvocation.php', + 'TYPO3\\PharStreamWrapper\\Resolver\\PharInvocationCollection' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Resolver/PharInvocationCollection.php', + 'TYPO3\\PharStreamWrapper\\Resolver\\PharInvocationResolver' => __DIR__ . '/..' . '/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php', 'Twig\\Cache\\CacheInterface' => __DIR__ . '/..' . '/twig/twig/src/Cache/CacheInterface.php', 'Twig\\Cache\\FilesystemCache' => __DIR__ . '/..' . '/twig/twig/src/Cache/FilesystemCache.php', 'Twig\\Cache\\NullCache' => __DIR__ . '/..' . '/twig/twig/src/Cache/NullCache.php', @@ -5152,6 +5175,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Twig\\Node\\Expression\\Filter\\DefaultFilter' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Filter/DefaultFilter.php', 'Twig\\Node\\Expression\\FunctionExpression' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/FunctionExpression.php', 'Twig\\Node\\Expression\\GetAttrExpression' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/GetAttrExpression.php', + 'Twig\\Node\\Expression\\InlinePrint' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/InlinePrint.php', 'Twig\\Node\\Expression\\MethodCallExpression' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/MethodCallExpression.php', 'Twig\\Node\\Expression\\NameExpression' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/NameExpression.php', 'Twig\\Node\\Expression\\NullCoalesceExpression' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/NullCoalesceExpression.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 9247e6efe4..f562679b8e 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -131,6 +131,44 @@ "type": "drupal-library", "installation-source": "source" }, + { + "name": "brumann/polyfill-unserialize", + "version": "v1.0.3", + "version_normalized": "1.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/dbrumann/polyfill-unserialize.git", + "reference": "844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dbrumann/polyfill-unserialize/zipball/844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b", + "reference": "844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0" + }, + "time": "2017-02-03T09:55:47+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Brumann\\Polyfill\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Denis Brumann", + "email": "denis.brumann@sensiolabs.de" + } + ], + "description": "Backports unserialize options introduced in PHP 7.0 to older PHP versions." + }, { "name": "ckeditor/indentblock", "version": "4.8.0", @@ -3830,7 +3868,9 @@ "message": "Beta releases are not covered by Drupal security advisories." } }, - "patches_applied": [] + "patches_applied": { + "2881745": "patches/entity_embed_2881745-22.patch" + } }, "installation-source": "dist", "notification-url": "https://packages.drupal.org/8/downloads", @@ -9328,8 +9368,8 @@ }, { "name": "symfony/class-loader", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", @@ -9452,17 +9492,17 @@ }, { "name": "symfony/console", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "71ce77f37af0c5ffb9590e43cc4f70e426945c5e" + "reference": "15a9104356436cb26e08adab97706654799d31d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/71ce77f37af0c5ffb9590e43cc4f70e426945c5e", - "reference": "71ce77f37af0c5ffb9590e43cc4f70e426945c5e", + "url": "https://api.github.com/repos/symfony/console/zipball/15a9104356436cb26e08adab97706654799d31d8", + "reference": "15a9104356436cb26e08adab97706654799d31d8", "shasum": "" }, "require": { @@ -9491,7 +9531,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-04-08T09:29:13+00:00", "type": "library", "extra": { "branch-alias": { @@ -9581,17 +9621,17 @@ }, { "name": "symfony/debug", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "8d8a9e877b3fcdc50ddecf8dcea146059753f782" + "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/8d8a9e877b3fcdc50ddecf8dcea146059753f782", - "reference": "8d8a9e877b3fcdc50ddecf8dcea146059753f782", + "url": "https://api.github.com/repos/symfony/debug/zipball/681afbb26488903c5ac15e63734f1d8ac430c9b9", + "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9", "shasum": "" }, "require": { @@ -9604,7 +9644,7 @@ "require-dev": { "symfony/http-kernel": "~2.8|~3.0|~4.0" }, - "time": "2019-02-24T15:45:11+00:00", + "time": "2019-04-11T09:48:14+00:00", "type": "library", "extra": { "branch-alias": { @@ -9639,17 +9679,17 @@ }, { "name": "symfony/dependency-injection", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c3dd7b7ea8cd8ec12304a5e222d7dc01cac8fa11" + "reference": "dee85a9148399cdb2731603802842bcfd8afe5ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c3dd7b7ea8cd8ec12304a5e222d7dc01cac8fa11", - "reference": "c3dd7b7ea8cd8ec12304a5e222d7dc01cac8fa11", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/dee85a9148399cdb2731603802842bcfd8afe5ab", + "reference": "dee85a9148399cdb2731603802842bcfd8afe5ab", "shasum": "" }, "require": { @@ -9677,7 +9717,7 @@ "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", "symfony/yaml": "" }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-04-16T11:13:42+00:00", "type": "library", "extra": { "branch-alias": { @@ -9771,17 +9811,17 @@ }, { "name": "symfony/event-dispatcher", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "ec625e2fff7f584eeb91754821807317b2e79236" + "reference": "a088aafcefb4eef2520a290ed82e4374092a6dff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ec625e2fff7f584eeb91754821807317b2e79236", - "reference": "ec625e2fff7f584eeb91754821807317b2e79236", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a088aafcefb4eef2520a290ed82e4374092a6dff", + "reference": "a088aafcefb4eef2520a290ed82e4374092a6dff", "shasum": "" }, "require": { @@ -9801,7 +9841,7 @@ "symfony/dependency-injection": "", "symfony/http-kernel": "" }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-04-02T08:51:52+00:00", "type": "library", "extra": { "branch-alias": { @@ -9939,17 +9979,17 @@ }, { "name": "symfony/http-foundation", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "9a96d77ceb1fd913c9d4a89e8a7e1be87604be8a" + "reference": "90454ad44c95d75faf3507d56388056001b74baf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9a96d77ceb1fd913c9d4a89e8a7e1be87604be8a", - "reference": "9a96d77ceb1fd913c9d4a89e8a7e1be87604be8a", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/90454ad44c95d75faf3507d56388056001b74baf", + "reference": "90454ad44c95d75faf3507d56388056001b74baf", "shasum": "" }, "require": { @@ -9960,7 +10000,7 @@ "require-dev": { "symfony/expression-language": "~2.8|~3.0|~4.0" }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-04-17T14:51:18+00:00", "type": "library", "extra": { "branch-alias": { @@ -9995,17 +10035,17 @@ }, { "name": "symfony/http-kernel", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "0362368c761cb8d9c79e56ab0db61d2c692db594" + "reference": "14fa41ccd38570b5e3120a3754bbaa144a15f311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/0362368c761cb8d9c79e56ab0db61d2c692db594", - "reference": "0362368c761cb8d9c79e56ab0db61d2c692db594", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/14fa41ccd38570b5e3120a3754bbaa144a15f311", + "reference": "14fa41ccd38570b5e3120a3754bbaa144a15f311", "shasum": "" }, "require": { @@ -10051,7 +10091,7 @@ "symfony/finder": "", "symfony/var-dumper": "" }, - "time": "2019-03-03T18:52:34+00:00", + "time": "2019-04-17T15:57:07+00:00", "type": "library", "extra": { "branch-alias": { @@ -10086,17 +10126,17 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.11.0", + "version_normalized": "1.11.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + "reference": "82ebae02209c21113908c229e9883c419720738a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", + "reference": "82ebae02209c21113908c229e9883c419720738a", "shasum": "" }, "require": { @@ -10105,11 +10145,11 @@ "suggest": { "ext-ctype": "For best performance" }, - "time": "2018-08-06T14:22:27+00:00", + "time": "2019-02-06T07:57:58+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "installation-source": "dist", @@ -10146,17 +10186,17 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.11.0", + "version_normalized": "1.11.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "97001cfc283484c9691769f51cdf25259037eba2" + "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/97001cfc283484c9691769f51cdf25259037eba2", - "reference": "97001cfc283484c9691769f51cdf25259037eba2", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", + "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", "shasum": "" }, "require": { @@ -10165,11 +10205,11 @@ "suggest": { "ext-iconv": "For best performance" }, - "time": "2018-09-21T06:26:08+00:00", + "time": "2019-02-06T07:57:58+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "installation-source": "dist", @@ -10207,17 +10247,17 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.11.0", + "version_normalized": "1.11.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", - "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", "shasum": "" }, "require": { @@ -10226,11 +10266,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2018-09-21T13:07:52+00:00", + "time": "2019-02-06T07:57:58+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "installation-source": "dist", @@ -10268,28 +10308,28 @@ }, { "name": "symfony/polyfill-php70", - "version": "v1.10.0", - "version_normalized": "1.10.0.0", + "version": "v1.11.0", + "version_normalized": "1.11.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224" + "reference": "bc4858fb611bda58719124ca079baff854149c89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224", - "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/bc4858fb611bda58719124ca079baff854149c89", + "reference": "bc4858fb611bda58719124ca079baff854149c89", "shasum": "" }, "require": { "paragonie/random_compat": "~1.0|~2.0|~9.99", "php": ">=5.3.3" }, - "time": "2018-09-21T06:26:08+00:00", + "time": "2019-02-06T07:57:58+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "installation-source": "dist", @@ -10329,23 +10369,23 @@ }, { "name": "symfony/process", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "009f8dda80930e89e8344a4e310b08f9ff07dd2e" + "reference": "a9c4dfbf653023b668c282e4e02609d131f4057a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/009f8dda80930e89e8344a4e310b08f9ff07dd2e", - "reference": "009f8dda80930e89e8344a4e310b08f9ff07dd2e", + "url": "https://api.github.com/repos/symfony/process/zipball/a9c4dfbf653023b668c282e4e02609d131f4057a", + "reference": "a9c4dfbf653023b668c282e4e02609d131f4057a", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8" }, - "time": "2019-01-16T13:27:11+00:00", + "time": "2019-04-08T16:15:54+00:00", "type": "library", "extra": { "branch-alias": { @@ -10380,17 +10420,17 @@ }, { "name": "symfony/psr-http-message-bridge", - "version": "v1.1.1", - "version_normalized": "1.1.1.0", + "version": "v1.1.2", + "version_normalized": "1.1.2.0", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "921f8669c36ea0148d2520c0bb7838cda14879e0" + "reference": "a33352af16f78a5ff4f9d90811536abf210df12b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/921f8669c36ea0148d2520c0bb7838cda14879e0", - "reference": "921f8669c36ea0148d2520c0bb7838cda14879e0", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/a33352af16f78a5ff4f9d90811536abf210df12b", + "reference": "a33352af16f78a5ff4f9d90811536abf210df12b", "shasum": "" }, "require": { @@ -10399,13 +10439,12 @@ "symfony/http-foundation": "^2.3.42 || ^3.4 || ^4.0" }, "require-dev": { - "nyholm/psr7": "^1.1", "symfony/phpunit-bridge": "^3.4 || ^4.0" }, "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" }, - "time": "2019-03-11T15:23:15+00:00", + "time": "2019-04-03T17:09:40+00:00", "type": "symfony-bridge", "extra": { "branch-alias": { @@ -10446,17 +10485,17 @@ }, { "name": "symfony/routing", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "6b25a86df5860461ff1990946168c0ef944f83db" + "reference": "ff11aac46d6cb8a65f2855687bb9a1ac9d860eec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/6b25a86df5860461ff1990946168c0ef944f83db", - "reference": "6b25a86df5860461ff1990946168c0ef944f83db", + "url": "https://api.github.com/repos/symfony/routing/zipball/ff11aac46d6cb8a65f2855687bb9a1ac9d860eec", + "reference": "ff11aac46d6cb8a65f2855687bb9a1ac9d860eec", "shasum": "" }, "require": { @@ -10479,12 +10518,11 @@ "suggest": { "doctrine/annotations": "For using the annotation loader", "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", "symfony/expression-language": "For using expression matching", "symfony/http-foundation": "For using a Symfony Request object", "symfony/yaml": "For using the YAML loader" }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-03-29T21:58:42+00:00", "type": "library", "extra": { "branch-alias": { @@ -10525,17 +10563,17 @@ }, { "name": "symfony/serializer", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "964b7a59002391136fb0087fd5dc41213f7c283e" + "reference": "14b3221cc41dcfef404205f0060cda873f43a534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/964b7a59002391136fb0087fd5dc41213f7c283e", - "reference": "964b7a59002391136fb0087fd5dc41213f7c283e", + "url": "https://api.github.com/repos/symfony/serializer/zipball/14b3221cc41dcfef404205f0060cda873f43a534", + "reference": "14b3221cc41dcfef404205f0060cda873f43a534", "shasum": "" }, "require": { @@ -10571,7 +10609,7 @@ "symfony/property-info": "To deserialize relations.", "symfony/yaml": "For using the default YAML mapping loader." }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-04-11T05:44:34+00:00", "type": "library", "extra": { "branch-alias": { @@ -10606,17 +10644,17 @@ }, { "name": "symfony/translation", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3e2966209567ffed8825905b53fc8548446130aa" + "reference": "aae26f143da71adc8707eb489f1dc86aef7d376b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3e2966209567ffed8825905b53fc8548446130aa", - "reference": "3e2966209567ffed8825905b53fc8548446130aa", + "url": "https://api.github.com/repos/symfony/translation/zipball/aae26f143da71adc8707eb489f1dc86aef7d376b", + "reference": "aae26f143da71adc8707eb489f1dc86aef7d376b", "shasum": "" }, "require": { @@ -10633,7 +10671,9 @@ "symfony/config": "~2.8|~3.0|~4.0", "symfony/dependency-injection": "~3.4|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~3.4|~4.0", "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/var-dumper": "~3.4|~4.0", "symfony/yaml": "~3.4|~4.0" }, "suggest": { @@ -10641,7 +10681,7 @@ "symfony/config": "", "symfony/yaml": "" }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-04-10T16:00:48+00:00", "type": "library", "extra": { "branch-alias": { @@ -10676,17 +10716,17 @@ }, { "name": "symfony/validator", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "21f8a7da6d4d8e6e34bd4e2bfaa24fa373886907" + "reference": "83da5259779aaf9dde220130e62b785f74e2ac49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/21f8a7da6d4d8e6e34bd4e2bfaa24fa373886907", - "reference": "21f8a7da6d4d8e6e34bd4e2bfaa24fa373886907", + "url": "https://api.github.com/repos/symfony/validator/zipball/83da5259779aaf9dde220130e62b785f74e2ac49", + "reference": "83da5259779aaf9dde220130e62b785f74e2ac49", "shasum": "" }, "require": { @@ -10728,7 +10768,7 @@ "symfony/property-access": "For accessing properties within comparison constraints", "symfony/yaml": "" }, - "time": "2019-02-25T09:32:21+00:00", + "time": "2019-04-16T11:21:44+00:00", "type": "library", "extra": { "branch-alias": { @@ -10834,17 +10874,17 @@ }, { "name": "symfony/yaml", - "version": "v3.4.23", - "version_normalized": "3.4.23.0", + "version": "v3.4.26", + "version_normalized": "3.4.26.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "57f1ce82c997f5a8701b89ef970e36bb657fd09c" + "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/57f1ce82c997f5a8701b89ef970e36bb657fd09c", - "reference": "57f1ce82c997f5a8701b89ef970e36bb657fd09c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/212a27b731e5bfb735679d1ffaac82bd6a1dc996", + "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996", "shasum": "" }, "require": { @@ -10860,7 +10900,7 @@ "suggest": { "symfony/console": "For validating YAML files using the lint command" }, - "time": "2019-02-23T15:06:07+00:00", + "time": "2019-03-25T07:48:46+00:00", "type": "library", "extra": { "branch-alias": { @@ -10952,17 +10992,17 @@ }, { "name": "twig/twig", - "version": "v1.38.2", - "version_normalized": "1.38.2.0", + "version": "v1.39.1", + "version_normalized": "1.39.1.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "874adbd9222f928f6998732b25b01b41dff15b0c" + "reference": "23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/874adbd9222f928f6998732b25b01b41dff15b0c", - "reference": "874adbd9222f928f6998732b25b01b41dff15b0c", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec", + "reference": "23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec", "shasum": "" }, "require": { @@ -10974,11 +11014,11 @@ "symfony/debug": "^2.7", "symfony/phpunit-bridge": "^3.4.19|^4.1.8" }, - "time": "2019-03-12T18:45:24+00:00", + "time": "2019-04-16T17:12:57+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.38-dev" + "dev-master": "1.39-dev" } }, "installation-source": "dist", @@ -11020,26 +11060,29 @@ }, { "name": "typo3/phar-stream-wrapper", - "version": "v2.0.1", - "version_normalized": "2.0.1.0", + "version": "v2.1.0", + "version_normalized": "2.1.0.0", "source": { "type": "git", "url": "https://github.com/TYPO3/phar-stream-wrapper.git", - "reference": "0469d9fefa0146ea4299d3b11cfbb76faa7045bf" + "reference": "b7a21f0859059ed5d9754af8c11f852d43762334" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/0469d9fefa0146ea4299d3b11cfbb76faa7045bf", - "reference": "0469d9fefa0146ea4299d3b11cfbb76faa7045bf", + "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/b7a21f0859059ed5d9754af8c11f852d43762334", + "reference": "b7a21f0859059ed5d9754af8c11f852d43762334", "shasum": "" }, "require": { + "brumann/polyfill-unserialize": "^1.0", + "ext-fileinfo": "*", + "ext-json": "*", "php": "^5.3.3|^7.0" }, "require-dev": { "phpunit/phpunit": "^4.8.36" }, - "time": "2018-10-18T08:46:28+00:00", + "time": "2019-03-01T17:43:52+00:00", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index 9c200fe897..677aa764d4 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -49,7 +49,13 @@ public function ask(InputInterface $input, OutputInterface $output, Question $qu if (!$input->isInteractive()) { $default = $question->getDefault(); - if (null !== $default && $question instanceof ChoiceQuestion) { + if (null === $default) { + return $default; + } + + if ($validator = $question->getValidator()) { + return \call_user_func($question->getValidator(), $default); + } elseif ($question instanceof ChoiceQuestion) { $choices = $question->getChoices(); if (!$question->isMultiselect()) { @@ -254,6 +260,7 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false. if (false === $c || ('' === $ret && '' === $c && null === $question->getDefault())) { + shell_exec(sprintf('stty %s', $sttyMode)); throw new RuntimeException('Aborted.'); } elseif ("\177" === $c) { // Backspace Character if (0 === $numMatches && 0 !== $i) { diff --git a/vendor/symfony/console/Tester/CommandTester.php b/vendor/symfony/console/Tester/CommandTester.php index f869995eb9..a1d8ad70a1 100644 --- a/vendor/symfony/console/Tester/CommandTester.php +++ b/vendor/symfony/console/Tester/CommandTester.php @@ -87,6 +87,10 @@ public function execute(array $input, array $options = []) */ public function getDisplay($normalize = false) { + if (null === $this->output) { + throw new \RuntimeException('Output not initialized, did you execute the command before requesting the display?'); + } + rewind($this->output->getStream()); $display = stream_get_contents($this->output->getStream()); diff --git a/vendor/symfony/console/Tests/ApplicationTest.php b/vendor/symfony/console/Tests/ApplicationTest.php index ae9d130f50..200568f070 100644 --- a/vendor/symfony/console/Tests/ApplicationTest.php +++ b/vendor/symfony/console/Tests/ApplicationTest.php @@ -41,6 +41,21 @@ class ApplicationTest extends TestCase { protected static $fixturesPath; + private $colSize; + + protected function setUp() + { + $this->colSize = getenv('COLUMNS'); + } + + protected function tearDown() + { + putenv($this->colSize ? 'COLUMNS='.$this->colSize : 'COLUMNS'); + putenv('SHELL_VERBOSITY'); + unset($_ENV['SHELL_VERBOSITY']); + unset($_SERVER['SHELL_VERBOSITY']); + } + public static function setUpBeforeClass() { self::$fixturesPath = realpath(__DIR__.'/Fixtures/'); @@ -383,6 +398,7 @@ public function testFindWithCommandLoader() */ public function testFindWithAmbiguousAbbreviations($abbreviation, $expectedExceptionMessage) { + putenv('COLUMNS=120'); if (method_exists($this, 'expectException')) { $this->expectException('Symfony\Component\Console\Exception\CommandNotFoundException'); $this->expectExceptionMessage($expectedExceptionMessage); @@ -468,6 +484,7 @@ public function provideInvalidCommandNamesSingle() public function testFindAlternativeExceptionMessageMultiple() { + putenv('COLUMNS=120'); $application = new Application(); $application->add(new \FooCommand()); $application->add(new \Foo1Command()); @@ -1689,13 +1706,6 @@ public function testErrorIsRethrownIfNotHandledByConsoleErrorEventWithCatchingEn $this->assertSame($e->getMessage(), 'Class \'UnknownClass\' not found'); } } - - protected function tearDown() - { - putenv('SHELL_VERBOSITY'); - unset($_ENV['SHELL_VERBOSITY']); - unset($_SERVER['SHELL_VERBOSITY']); - } } class CustomApplication extends Application diff --git a/vendor/symfony/console/Tests/Helper/ProgressBarTest.php b/vendor/symfony/console/Tests/Helper/ProgressBarTest.php index e352311cca..a0be9b8a6d 100644 --- a/vendor/symfony/console/Tests/Helper/ProgressBarTest.php +++ b/vendor/symfony/console/Tests/Helper/ProgressBarTest.php @@ -21,6 +21,19 @@ */ class ProgressBarTest extends TestCase { + private $colSize; + + protected function setUp() + { + $this->colSize = getenv('COLUMNS'); + putenv('COLUMNS=120'); + } + + protected function tearDown() + { + putenv($this->colSize ? 'COLUMNS='.$this->colSize : 'COLUMNS'); + } + public function testMultipleStart() { $bar = new ProgressBar($output = $this->getOutputStream()); diff --git a/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php b/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php index 46cfe81842..56ba1c6891 100644 --- a/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php +++ b/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php @@ -137,6 +137,9 @@ public function testAskChoiceNonInteractive() $question->setMultiselect(true); $this->assertNull($questionHelper->ask($this->createStreamableInputInterfaceMock($inputStream, false), $this->createOutputInterface(), $question)); + $question = new ChoiceQuestion('Who are your favorite superheros?', ['a' => 'Batman', 'b' => 'Superman'], 'a'); + $this->assertSame('a', $questionHelper->ask($this->createStreamableInputInterfaceMock('', false), $this->createOutputInterface(), $question), 'ChoiceQuestion validator returns the key if it\'s a string'); + try { $question = new ChoiceQuestion('Who are your favorite superheros?', $heroes, ''); $question->setMultiselect(true); diff --git a/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php b/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php index e6e061f441..88d00c8a99 100644 --- a/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php +++ b/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php @@ -26,9 +26,11 @@ class SymfonyStyleTest extends TestCase protected $command; /** @var CommandTester */ protected $tester; + private $colSize; protected function setUp() { + $this->colSize = getenv('COLUMNS'); putenv('COLUMNS=121'); $this->command = new Command('sfstyle'); $this->tester = new CommandTester($this->command); @@ -36,7 +38,7 @@ protected function setUp() protected function tearDown() { - putenv('COLUMNS'); + putenv($this->colSize ? 'COLUMNS='.$this->colSize : 'COLUMNS'); $this->command = null; $this->tester = null; } diff --git a/vendor/symfony/console/Tests/TerminalTest.php b/vendor/symfony/console/Tests/TerminalTest.php index 91af1d0ab4..93b8c44a78 100644 --- a/vendor/symfony/console/Tests/TerminalTest.php +++ b/vendor/symfony/console/Tests/TerminalTest.php @@ -16,6 +16,21 @@ class TerminalTest extends TestCase { + private $colSize; + private $lineSize; + + protected function setUp() + { + $this->colSize = getenv('COLUMNS'); + $this->lineSize = getenv('LINES'); + } + + protected function tearDown() + { + putenv($this->colSize ? 'COLUMNS='.$this->colSize : 'COLUMNS'); + putenv($this->lineSize ? 'LINES' : 'LINES='.$this->lineSize); + } + public function test() { putenv('COLUMNS=100'); diff --git a/vendor/symfony/debug/DebugClassLoader.php b/vendor/symfony/debug/DebugClassLoader.php index 310f7d4e22..b728b9b90f 100644 --- a/vendor/symfony/debug/DebugClassLoader.php +++ b/vendor/symfony/debug/DebugClassLoader.php @@ -233,7 +233,7 @@ public function checkAnnotations(\ReflectionClass $refl, $class) // Detect annotations on the class if (false !== $doc = $refl->getDocComment()) { foreach (['final', 'deprecated', 'internal'] as $annotation) { - if (false !== \strpos($doc, $annotation) && preg_match('#\n\s+\* @'.$annotation.'(?:( .+?)\.?)?\r?\n\s+\*(?: @|/$)#s', $doc, $notice)) { + if (false !== \strpos($doc, $annotation) && preg_match('#\n\s+\* @'.$annotation.'(?:( .+?)\.?)?\r?\n\s+\*(?: @|/$|\r?\n)#s', $doc, $notice)) { self::${$annotation}[$class] = isset($notice[1]) ? preg_replace('#\.?\r?\n( \*)? *(?= |\r?\n|$)#', '', $notice[1]) : ''; } } @@ -258,7 +258,7 @@ public function checkAnnotations(\ReflectionClass $refl, $class) if (!isset(self::$checkedClasses[$use])) { $this->checkClass($use); } - if (isset(self::$deprecated[$use]) && \strncmp($ns, \str_replace('_', '\\', $use), $len)) { + if (isset(self::$deprecated[$use]) && \strncmp($ns, \str_replace('_', '\\', $use), $len) && !isset(self::$deprecated[$class])) { $type = class_exists($class, false) ? 'class' : (interface_exists($class, false) ? 'interface' : 'trait'); $verb = class_exists($use, false) || interface_exists($class, false) ? 'extends' : (interface_exists($use, false) ? 'implements' : 'uses'); @@ -307,7 +307,7 @@ public function checkAnnotations(\ReflectionClass $refl, $class) } foreach (['final', 'internal'] as $annotation) { - if (false !== \strpos($doc, $annotation) && preg_match('#\n\s+\* @'.$annotation.'(?:( .+?)\.?)?\r?\n\s+\*(?: @|/$)#s', $doc, $notice)) { + if (false !== \strpos($doc, $annotation) && preg_match('#\n\s+\* @'.$annotation.'(?:( .+?)\.?)?\r?\n\s+\*(?: @|/$|\r?\n)#s', $doc, $notice)) { $message = isset($notice[1]) ? preg_replace('#\.?\r?\n( \*)? *(?= |\r?\n|$)#', '', $notice[1]) : ''; self::${$annotation.'Methods'}[$class][$method->name] = [$class, $message]; } diff --git a/vendor/symfony/debug/ExceptionHandler.php b/vendor/symfony/debug/ExceptionHandler.php index 2f3d566012..b79e83ea2c 100644 --- a/vendor/symfony/debug/ExceptionHandler.php +++ b/vendor/symfony/debug/ExceptionHandler.php @@ -372,7 +372,7 @@ private function formatPath($path, $line) $fmt = $this->fileLinkFormat ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format'); if (!$fmt) { - return sprintf('<span class="block trace-file-path">in <a title="%s%3$s"><strong>%s</strong>%s</a></span>', $this->escapeHtml($path), $file, 0 < $line ? ' line '.$line : ''); + return sprintf('<span class="block trace-file-path">in <span title="%s%3$s"><strong>%s</strong>%s</span></span>', $this->escapeHtml($path), $file, 0 < $line ? ' line '.$line : ''); } if (\is_string($fmt)) { @@ -388,7 +388,11 @@ private function formatPath($path, $line) $link = strtr($fmt[0], ['%f' => $path, '%l' => $line]); } else { - $link = $fmt->format($path, $line); + try { + $link = $fmt->format($path, $line); + } catch (\Exception $e) { + return sprintf('<span class="block trace-file-path">in <span title="%s%3$s"><strong>%s</strong>%s</span></span>', $this->escapeHtml($path), $file, 0 < $line ? ' line '.$line : ''); + } } return sprintf('<span class="block trace-file-path">in <a href="%s" title="Go to source"><strong>%s</string>%s</a></span>', $this->escapeHtml($link), $file, 0 < $line ? ' line '.$line : ''); @@ -435,6 +439,6 @@ private function escapeHtml($str) private function getSymfonyGhostAsSvg() { - return '<svg viewBox="0 0 136 81" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M92.358 20.403a23.168 23.168 0 0 1 9.003 1.881 23.67 23.67 0 0 1 5.197 3.079 24.257 24.257 0 0 1 3.457 3.296 24.771 24.771 0 0 1 5.042 9.396c.486 1.72.78 3.492.895 5.28l.008.142.028.158.015.246v13.875c.116.034.232.065.348.098.193.054.383.116.577.168.487.125.989.191 1.49.215.338.016.689.023 1.021-.059.021-.005.032-.029.048-.044l.095-.1c.243-.265.461-.552.663-.851.277-.408.523-.837.746-1.279l.042-.087c-.066-.012-.131-.026-.197-.04l-.099-.023a5.536 5.536 0 0 1-.694-.242 5.649 5.649 0 0 1-2.374-1.845 5.694 5.694 0 0 1-.824-1.594 6.514 6.514 0 0 1-.267-2.781c.045-.394.126-.779.233-1.159.079-.278.162-.562.307-.812.094-.163.129-.196.247-.341l.79-.882c.143-.143.174-.186.34-.303.249-.174.536-.289.834-.333.074-.011.15-.014.224-.02l1.188-.037c.173.004.217-.002.388.028s.211.05.375.105l.018.007c.059.026.119.05.176.079.151.076.179.104.313.2l.006-.021c.073-.187.084-.238.187-.41.077-.129.167-.249.27-.357.051-.054.108-.103.162-.154l1.124-.95c.14-.107.172-.14.327-.224.155-.085.199-.094.363-.154l.019-.006c.169-.043.211-.06.385-.077.174-.016.218-.007.392.003l1.446.158c.193.033.244.033.43.098.278.097.534.259.744.47.053.053.1.112.149.167l.923 1.158.149.213.028.054.017-.014.184-.125c.196-.104.196-.104.402-.184l1.386-.451c.064-.018.126-.038.19-.052.129-.028.259-.042.39-.043.16-.002.321.017.478.047.364.069.711.21 1.032.396.162.094.316.199.469.308.088.063.176.132.27.188l.021.011c.19.123.245.146.409.305.185.178.336.393.443.63.035.079.061.162.091.243l.439 1.428c.045.175.062.219.081.4.02.193.006.381-.015.573a7.79 7.79 0 0 1-.101.645c-.09.455-.212.901-.365 1.339-.128.366-.273.73-.445 1.077-.658 1.335-1.652 2.512-2.917 3.265a6.399 6.399 0 0 1-1.019.489 6.097 6.097 0 0 1-.631.203c-.226.058-.455.1-.686.134l-.096.012-.061.007c-.01.176-.022.352-.036.528-.034.39-.082.778-.153 1.163a14.258 14.258 0 0 1-.574 2.114c-.229.654-.484 1.306-.806 1.918a9.16 9.16 0 0 1-.386.656c-.219.348-.451.686-.697 1.013-.448.594-.946 1.148-1.521 1.614-.255.207-.52.397-.808.553-.9.489-1.919.648-2.921.735-.493.038-.986.059-1.478.099-.162.015-.324.033-.486.049-.145.011-.289.022-.434.03a15.768 15.768 0 0 1-2.778-.118c0 1.416.007 2.832-.001 4.248a9.737 9.737 0 0 1-.684 3.479 9.615 9.615 0 0 1-1.72 2.804 9.326 9.326 0 0 1-3.04 2.279 9.046 9.046 0 0 1-5.33.715 9.064 9.064 0 0 1-2.988-1.079 9.363 9.363 0 0 1-2.761-2.429 10.078 10.078 0 0 1-1.05 1.16 9.281 9.281 0 0 1-1.871 1.358 9.033 9.033 0 0 1-2.495.926 9.04 9.04 0 0 1-6.462-1.072 9.395 9.395 0 0 1-2.602-2.292l-.062-.08a10.896 10.896 0 0 1-.53.635 9.266 9.266 0 0 1-2.671 2.032 9.028 9.028 0 0 1-6.044.751 9.048 9.048 0 0 1-2.436-.934 9.343 9.343 0 0 1-2.286-1.803 9.572 9.572 0 0 1-1.783-2.757 9.705 9.705 0 0 1-.773-3.693V67.244c-.157.024-.314.047-.472.067-.487.06-.977.103-1.469.109-.313.004-.627-.009-.94-.028-.426-.025-.85-.065-1.273-.125-1.833-.264-3.65-.92-5.109-2.117a8.172 8.172 0 0 1-1.064-1.049 10.155 10.155 0 0 1-.878-1.236 15.277 15.277 0 0 1-.7-1.274 20.835 20.835 0 0 1-1.889-6.194l-.018-.142-.008-.061a6.47 6.47 0 0 1-.99-.297 6.135 6.135 0 0 1-.61-.285 6.587 6.587 0 0 1-.889-.562c-1.228-.924-2.124-2.259-2.668-3.711a9.947 9.947 0 0 1-.307-.99 10.288 10.288 0 0 1-.318-1.923c-.009-.147-.011-.293-.015-.44v-.037c.008-.175.004-.22.037-.393.033-.173.053-.213.11-.378l.561-1.417c.031-.068.06-.139.095-.206a2.028 2.028 0 0 1 .771-.803c.093-.054.194-.095.289-.145l.311-.179c.352-.194.714-.358 1.107-.44.213-.044.426-.061.643-.061l.034.001c.177.014.223.01.396.052.174.041.214.065.379.132l1.347.635c.073.04.15.076.221.121.142.091.272.2.388.325.154.166.176.222.297.414l.022.047.722-.762.168-.158c.165-.122.202-.161.385-.253.206-.102.429-.168.656-.193.076-.008.152-.008.228-.011l1.46.013c.177.011.223.007.397.046.175.038.215.061.381.126l.018.008c.154.08.196.094.338.196.142.102.169.137.294.259l.853.912.152-.067.191-.063.019-.005.196-.042c.177-.019.222-.031.401-.022.066.003.133.013.199.02l1.185.182c.073.016.147.027.219.047.288.08.558.227.784.428.151.135.177.181.303.339l.714 1.004c.097.152.127.187.201.352.077.172.123.352.164.536.029.134.056.269.08.404.063.361.102.725.112 1.091.021.78-.08 1.566-.321 2.307a5.906 5.906 0 0 1-.532 1.183 5.463 5.463 0 0 1-3.257 2.489l-.03.008c.195.584.433 1.155.712 1.701.215.422.453.833.735 1.211.026.035.026.034.053.068l.058.072c.056.024.113.042.171.06.319.09.653.121.982.14.488.027.978.013 1.461-.06.167-.028.333-.062.499-.089.134-.022.267-.042.401-.066l.28-.056c.154-.023.308-.049.462-.076l.115-.021V43.881c.011-.203.006-.203.042-.404a26.66 26.66 0 0 1 .226-2.241 24.737 24.737 0 0 1 5.72-12.577 24.204 24.204 0 0 1 3.457-3.296 23.653 23.653 0 0 1 4.937-2.966 23.215 23.215 0 0 1 5.604-1.681 23.703 23.703 0 0 1 3.958-.313zm-.287 2.042a21.169 21.169 0 0 0-8.012 1.622 21.636 21.636 0 0 0-4.799 2.766 22.233 22.233 0 0 0-3.205 2.985 22.705 22.705 0 0 0-4.897 9.196 23.383 23.383 0 0 0-.737 4.867h-.025v15.744c-.258.053-.258.052-.517.101-.28.051-.56.1-.841.144-.211.04-.421.079-.632.115l-.232.037-.411.078c-.116.02-.233.035-.348.057-.305.056-.609.11-.917.14a9.929 9.929 0 0 1-1.883-.017c-.514-.056-1.044-.155-1.51-.397a1.762 1.762 0 0 1-.33-.218 1.925 1.925 0 0 1-.234-.252 5.248 5.248 0 0 1-.174-.22 8.97 8.97 0 0 1-.582-.883 13.806 13.806 0 0 1-.941-1.971 14.348 14.348 0 0 1-.608-1.954 14.04 14.04 0 0 1-.169-.86l-.015-.11-.015-.109c.161-.007.16-.007.321-.016a12.793 12.793 0 0 0 1.413-.182 4.43 4.43 0 0 0 .28-.074 3.56 3.56 0 0 0 1.199-.616c.309-.244.576-.543.786-.88.163-.261.292-.544.387-.838.123-.378.192-.774.214-1.172a5.102 5.102 0 0 0-.024-.865 7.192 7.192 0 0 0-.145-.799l-.714-1.005-1.184-.182-.019.005-.946.758-.12 1.229a4.953 4.953 0 0 1 .111.455c.032.181.052.36.043.544a1.04 1.04 0 0 1-.056.303c-.11.301-.419.451-.696.548-.402.142-.813.25-1.229.339l.07-.648c.022-.191.047-.381.08-.57.036-.207.079-.413.152-.61.077-.211.182-.412.296-.605.044-.074.092-.146.135-.222.029-.048.031-.047.055-.098.016-.033.031-.064.045-.098l-.026-1.551-1.042-1.116-.018-.008-1.459-.014-1.022 1.079c-.049.128-.08.258-.111.393a5.274 5.274 0 0 0-.1.651 5.55 5.55 0 0 0-.031.466c-.009.687.104 1.37.294 2.028.11.382.262.753.402 1.123-.115-.029-.228-.06-.342-.092a9.526 9.526 0 0 1-1.176-.446c-.108-.05-.111-.048-.191-.097a1.921 1.921 0 0 1-.327-.249c-.416-.4-.589-.986-.671-1.55a5.643 5.643 0 0 1-.057-.549c-.007-.143-.006-.286-.007-.429-.001-.186.005-.372.011-.558l.001-.039-.567-1.446-1.347-.634c-.316-.008-.599.144-.867.299-.109.063-.218.126-.33.185a2.058 2.058 0 0 1-.125.061l-.042.019-.561 1.416c0 .209.014.416.036.624.04.377.106.75.196 1.118.076.309.164.616.275.913.415 1.109 1.093 2.146 2.043 2.838.234.171.485.317.746.442.183.088.371.161.565.22.263.079.532.13.803.17.296.045.594.075.892.095l.108.007c.004.151.01.302.017.453.011.177.023.353.038.529a18.13 18.13 0 0 0 .762 3.752c.239.76.522 1.505.857 2.225.23.494.483.977.767 1.44.288.469.608.915.989 1.308 1.001 1.028 2.324 1.648 3.687 1.976.643.155 1.298.243 1.955.287.311.021.622.036.933.033.418-.006.835-.041 1.25-.094.238-.03.477-.064.713-.11.117-.023.232-.053.348-.081.196-.048.392-.097.586-.151.147-.041.291-.094.436-.144.204-.069.408-.139.608-.217l.006-.003c0 2.207-.013 4.414.001 6.62a7.942 7.942 0 0 0 .13 1.32 7.545 7.545 0 0 0 2.383 4.243 7.23 7.23 0 0 0 2.258 1.372 7.094 7.094 0 0 0 7.012-1.164 7.504 7.504 0 0 0 2.035-2.613 7.727 7.727 0 0 0 .676-2.401l.009-.088.038-.765a8.16 8.16 0 0 0 .113 1.324c.121.694.338 1.37.643 2.001a7.49 7.49 0 0 0 1.692 2.275 7.266 7.266 0 0 0 2.24 1.399 7.11 7.11 0 0 0 4.615.19 7.212 7.212 0 0 0 2.351-1.218 7.501 7.501 0 0 0 2.128-2.64 7.763 7.763 0 0 0 .702-2.39l.01-.088.009-.088.038-.765a9.339 9.339 0 0 0 .021.575 7.626 7.626 0 0 0 .621 2.504 7.507 7.507 0 0 0 2.35 2.972 7.1 7.1 0 0 0 7.026.881 7.275 7.275 0 0 0 2.268-1.515 7.525 7.525 0 0 0 1.612-2.338 7.58 7.58 0 0 0 .572-2.033c.048-.347.069-.696.071-1.046v-6.721c.136.051.271.101.408.148a12.153 12.153 0 0 0 1.976.443c.264.035.529.055.794.071.33.02.66.031.991.027.245-.002.49-.012.735-.031.245-.018.49-.048.735-.068.407-.03.814-.051 1.221-.079a9.493 9.493 0 0 0 1.384-.188c.315-.073.626-.174.912-.329a3.53 3.53 0 0 0 .586-.418c.46-.386.85-.85 1.205-1.337a12.178 12.178 0 0 0 .801-1.246c.122-.232.229-.471.33-.712a15.873 15.873 0 0 0 .681-1.988c.136-.525.23-1.058.282-1.598.035-.41.052-.822.088-1.232.03-.317.078-.632.121-.947l.018-.145.016-.145c.144.009.287.016.431.021.459.009.924.007 1.378-.07a4.456 4.456 0 0 0 1.353-.482c.989-.55 1.752-1.466 2.258-2.488.116-.235.214-.48.304-.727a7.58 7.58 0 0 0 .377-1.43c.016-.109.027-.218.039-.328l.001-.009-.438-1.428a5.206 5.206 0 0 1-.16-.096c-.158-.105-.311-.219-.467-.326a3.829 3.829 0 0 0-.159-.1 1.356 1.356 0 0 0-.509-.18l-.01-.001-1.386.452-.681 1.323c-.016.212-.023.424-.043.636a5.66 5.66 0 0 1-.139.873c-.118.494-.316.999-.702 1.338a1.865 1.865 0 0 1-.496.301l-.272.087a9.57 9.57 0 0 1-.83.205 8.797 8.797 0 0 1-.582.091l.229-.462c.079-.163.158-.325.229-.492.051-.118.096-.239.139-.36.036-.103.076-.209.103-.315.019-.075.031-.153.041-.229.017-.132.031-.263.043-.395.035-.368.06-.737.094-1.104.02-.187.048-.372.067-.559.015-.167.015-.336.012-.505a4.76 4.76 0 0 0-.074-.826c-.012-.065-.03-.13-.045-.194l-.003-.009-.923-1.157-1.446-.159-.019.006-1.124.95-.154 1.489c.011.034.024.066.037.099.044.115.107.221.161.331.046.096.088.193.13.29l.031.076c.013.033.017.07.023.105.012.096.022.191.031.287.031.364.047.73.081 1.093.013.102.028.202.04.303.014.145.027.29.033.435.014.28.016.561.023.841a9.588 9.588 0 0 1-.862-.323c-.063-.027-.128-.062-.193-.084a1.325 1.325 0 0 0-.067-.013c-.081-.01-.162-.017-.243-.025-.245-.02-.49-.037-.734-.061-.066-.007-.132-.014-.198-.028l-.017-.005c-.03-.013-.029-.014-.067-.038a1.614 1.614 0 0 1-.161-.108.863.863 0 0 1-.22-.242c-.089-.155-.102-.34-.09-.517.02-.299.117-.591.228-.866l.004-.009-.018-1.197-.874-.84-.018-.007-1.188.036-.79.882c-.037.112-.074.224-.106.338a4.756 4.756 0 0 0-.171 1.906c.039.329.115.654.233.963a3.542 3.542 0 0 0 1.263 1.636c.313.222.659.393 1.019.517.237.082.487.111.734.145.479.06.959.106 1.438.166.121.017.241.037.362.058l.158.026a12.12 12.12 0 0 1-.923 2.565 13.221 13.221 0 0 1-.829 1.474 9.474 9.474 0 0 1-.984 1.286c-.08.087-.163.17-.248.252a1.655 1.655 0 0 1-.329.262 2.376 2.376 0 0 1-.722.247c-.457.089-.927.093-1.39.071-.391-.018-.781-.06-1.168-.123a7.817 7.817 0 0 1-.609-.124c-.226-.056-.448-.124-.671-.191-.065-.019-.131-.035-.197-.054a14.75 14.75 0 0 1-.543-.165 23.384 23.384 0 0 1-.453-.128c-.196-.059-.195-.059-.39-.12l-.276-.077V43.881h-.025a34.633 34.633 0 0 0-.031-.557 23.606 23.606 0 0 0-.4-2.994 22.743 22.743 0 0 0-1.492-4.708 22.567 22.567 0 0 0-4.593-6.748 21.865 21.865 0 0 0-6.882-4.706 21.175 21.175 0 0 0-8.115-1.722l-.411-.001zm9.15 33.69c.109.015.214.038.315.085a1.012 1.012 0 0 1 .574.771c.021.132.013.268.009.4a8.38 8.38 0 0 1-.026.476 8.767 8.767 0 0 1-1.564 4.282c-.306.437-.65.846-1.024 1.222a10.09 10.09 0 0 1-4.612 2.627c-1.32.343-2.704.427-4.055.254a10.422 10.422 0 0 1-2.67-.709 9.917 9.917 0 0 1-3.57-2.503 9.312 9.312 0 0 1-.775-.984 8.933 8.933 0 0 1-.731-1.288 8.648 8.648 0 0 1-.795-3.377c-.003-.104-.008-.211 0-.316a1.042 1.042 0 0 1 .254-.609.98.98 0 0 1 1.337-.125 1.023 1.023 0 0 1 .385.719c.007.151.006.303.014.454a6.547 6.547 0 0 0 .524 2.217c.257.595.599 1.15 1.006 1.648.325.398.691.759 1.087 1.081.312.253.642.482.987.684 2.592 1.522 5.945 1.538 8.553.047a7.982 7.982 0 0 0 1.069-.731 7.619 7.619 0 0 0 1.142-1.15 6.949 6.949 0 0 0 1.018-1.741 6.538 6.538 0 0 0 .467-2.425l.004-.084a1.012 1.012 0 0 1 .672-.876c.08-.028.158-.04.241-.05.082-.003.082-.003.164.001zm-70.51-12.426c-15.5.93-28.544-5.922-30.126-16.443C-1.156 15.689 11.64 4.024 29.14 1.235c17.501-2.79 33.123 4.345 34.864 15.922 1.575 10.475-8.749 21.021-23.691 25.001l.001.099a31.185 31.185 0 0 0 .042.833c.007.094.019.188.021.282.006.178.013.356.024.534.011.16.024.32.039.48.017.154.038.306.058.459.036.273.077.544.144.811a4.723 4.723 0 0 0 .449 1.128c.192.332.434.628.702.898l.047.05c.151.139.302.275.461.403.24.192.492.367.748.537.474.314.962.6 1.457.877l.041.023.588.735-.729.586c-.376.112-.755.216-1.135.309a11.193 11.193 0 0 1-2.562.355 8.575 8.575 0 0 1-2.995-.486 8.461 8.461 0 0 1-.96-.413 11.194 11.194 0 0 1-1.836-1.152 13.345 13.345 0 0 1-1.07-.934c-.23-.221-.454-.448-.672-.681-.121-.129-.246-.258-.36-.395a23.448 23.448 0 0 1-1.328-1.773c-.051-.076-.049-.077-.095-.155l-.277-.477-.072-.13c-.081-.177-.159-.357-.238-.535l-.003-.01-.092-.707zm52.409-7.804c3.557 0 6.444 3.201 6.444 7.145 0 3.944-2.887 7.146-6.444 7.146s-6.444-3.202-6.444-7.146 2.887-7.145 6.444-7.145zm18.062 0c3.557 0 6.444 3.201 6.444 7.145 0 3.944-2.887 7.146-6.444 7.146s-6.444-3.202-6.444-7.146 2.887-7.145 6.444-7.145zM83.12 42.029c1.915 0 3.47 1.601 3.47 3.573s-1.555 3.573-3.47 3.573c-1.915 0-3.47-1.601-3.47-3.573s1.555-3.573 3.47-3.573zm17.846 0c1.915 0 3.47 1.601 3.47 3.573s-1.555 3.573-3.47 3.573c-1.915 0-3.47-1.601-3.47-3.573s1.555-3.573 3.47-3.573zM17.019 28c-.368 1.65-1.848 5.008-5.178 5.799-2.572.611-4.153-.815-4.544-2.559-.424-1.891.722-3.532 2.121-4.575a3.473 3.473 0 0 1-1.446-2.099c-.421-1.875.867-3.637 3.184-4.187 1.917-.455 3.185.248 3.462 1.482.265 1.184-.534 2.275-1.828 2.582-.878.209-1.574-.042-1.718-.683a1.4 1.4 0 0 1 .044-.704s.287.227.894.083c.751-.179 1.086-.709.972-1.219-.14-.625-.892-.827-1.739-.626-1.054.25-2.06 1.096-1.713 2.642.232 1.036.871 1.56 1.483 1.813.245-.11.481-.183.688-.233.943-.224 1.48-.005 1.587.472.092.411-.144.935-1.166 1.178a3.255 3.255 0 0 1-1.548.004c-.837.771-1.58 1.883-1.27 3.264.276 1.234 1.267 2.125 2.944 1.726 2.598-.617 3.861-3.638 4.277-4.883-.353-.574-.615-1.153-.732-1.676-.107-.477.145-1.005.863-1.175.48-.114.702.127.846.769a2.77 2.77 0 0 1-.03.995c.209.331.443.622.735.951.616-1.983 1.369-3.877 1.737-3.964.591-.141 1.492.65 1.492.65-.815.644-1.689 2.376-2.333 4.158.804.658 1.627 1.103 2.139.982.43-.102.735-.577.95-1.151-.323-2.226.975-4.331 2.31-4.648.703-.167 1.257.204 1.39.796.114.51-.044 1.379-.854 1.745-.236-1.053-.672-1.348-.944-1.283-.495.117-.844 1.413-.538 2.778.232 1.037.712 1.529 1.351 1.377.756-.179 1.333-1.176 1.699-2.128-.265-2.095.877-4.166 2.221-4.486.671-.159 1.214.162 1.391.952.332 1.48-.986 2.885-2.173 3.444.265.734.673 1.053 1.281.909.96-.229 1.578-1.465 1.923-2.506-.125-1.267-.26-2.385-.406-3.035l-.055-.247s1.568-.286 1.778.652l.019.082c.238-.663.67-1.216 1.309-1.368.83-.197 1.526.504 1.755 1.524.497 2.22-.556 4.428-1.834 4.732-.368.087-.642.066-.883-.033.121 1.288.292 2.651.542 3.77.126.559.272 1.061.448 1.47-.464.11-1.797.392-1.978-.414-.16-.716-.342-3.206-.554-5.612-.504 1.107-1.311 2.192-2.441 2.46-1.008.24-1.685-.303-2.055-1.182-.491 1.082-1.281 2.148-2.381 2.409-.817.194-1.554-.117-1.988-1.013-.36.843-.875 1.555-1.54 1.713-.639.152-1.53-.295-2.4-1.024-.239.888-.384 1.668-.39 2.241 0 0-.701.028-.804-.433-.096-.427.065-1.436.341-2.61a10.315 10.315 0 0 1-.713-.848zm38.163-17.803c.068.157.185.527.266.889.424 1.892.37 4.451.739 6.42-.065.61-.387 3.077-1.352 3.307-.192.045-.333-.06-.422-.454-.14-.626-.091-1.607-.293-2.512-.258-1.152-.782-1.686-1.517-1.511-.767.182-1.287 1.016-1.643 2.054-.022-.099-.053-.386-.093-.567-.211-.938-1.779-.652-1.779-.652a6.2 6.2 0 0 1 .457 1.364c.07.31.119.618.155.921-.246.495-.637.996-1.225 1.135-.064.015-.128.031-.195.029a6.977 6.977 0 0 0-.126-.784c-.258-1.152-.871-2.011-1.526-1.855a.712.712 0 0 0-.423.291c-1.337.317-2.358 2.107-2.118 3.919-.214.889-.551 1.757-1.059 1.877-.415.099-.724-.452-1.03-1.817-.059-.263-.09-.706-.122-1.149.142-.64.177-1.237.081-1.665-.107-.477-.417-.733-.816-.638-.715.17-.909 1.75-.52 3.801-.238.92-.639 1.915-1.278 2.067-.464.11-.835-.27-1.012-1.059-.158-.708-.196-1.929-.236-3.08 1.201-.424 1.911-1.009 1.775-1.617-.114-.51-.739-.743-.739-.743s-.124.722-1.064 1.258c-.029-.582-.064-1.111-.137-1.44-.137-.609-.458-.914-1.688-.622.158.327.274.698.359 1.076.103.46.162.949.189 1.445-.611.128-.947.052-.947.052s-.1.457-.041.72c.078.345.432.348 1.026.224.02 1.364-.067 2.701.143 3.639.306 1.365 1.231 1.89 2.046 1.697.907-.216 1.539-1.275 1.914-2.36.407 1.245 1.031 1.955 1.951 1.736.731-.174 1.261-1.142 1.587-2.195.431.765 1.15 1.129 1.983.931 1.214-.289 1.742-1.54 1.835-2.775 0 0 .147-.018.243-.04.526-.125.949-.488 1.26-.915.04.788.053 1.518.194 2.146.111.493.339.612.595.552.495-.118 1.081-.881 1.081-.881a3.93 3.93 0 0 1-.383-1.035c-.284-1.267.317-3.541.988-3.7.208-.049.377.257.492.767.057.255.092.504.115.751l.098 1.469c.024.246.059.496.116.751.158.707.63 1.236 1.381 1.058 1.317-.313 2.07-2.634 2.178-3.956.228.157.536.175.909.086-.505-2.253.089-6.136-.298-7.864-.1-.444-1.001-.58-1.607-.583l-.467.037zM33.729 22.293c.415-.099.711.246.885 1.02.287 1.283-.222 2.616-.797 2.753-.191.045-.695-.025-.961-1.21-.025-.115-.051-.23-.061-.349.05-1.277.439-2.097.934-2.214zm-5.187.955c.271-.065.511.104.588.449.137.609-.338 1.345-1.275 1.966-.255-1.36.159-2.29.687-2.415zm18.032-.403c-.607.144-1.062-.458-1.239-1.248-.217-.97.001-2.097.644-2.457.001.155.038.32.075.484.147.658.554 1.497 1.268 1.83-.017.749-.253 1.273-.748 1.391zm9.877-1.654c.103.461.496.714 1.039.585.799-.19.973-.993.847-1.553-.125-.559-.461-.93-.988-.805-.543.13-1.108.836-.898 1.773zm-14.21-5.442c-.104-.461-.497-.714-1.056-.581-.783.186-.972.993-.847 1.552.126.56.461.93.908.824.56-.133 1.172-1.006.995-1.795z" fill="#fff" fill-opacity=".6"></path></svg>'; + return '<svg viewBox="0 0 136 81" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.4"><path d="M92.4 20.4a23.2 23.2 0 0 1 9 1.9 23.7 23.7 0 0 1 5.2 3 24.3 24.3 0 0 1 3.4 3.4 24.8 24.8 0 0 1 5 9.4c.5 1.7.8 3.4 1 5.2v14.5h.4l.5.2a7.4 7.4 0 0 0 2.5.2l.2-.2.6-.8.8-1.3-.2-.1a5.5 5.5 0 0 1-.8-.3 5.6 5.6 0 0 1-2.3-1.8 5.7 5.7 0 0 1-.9-1.6 6.5 6.5 0 0 1-.2-2.8 7.3 7.3 0 0 1 .5-2l.3-.3.8-.9.3-.3c.2-.2.5-.3.8-.3H120.7c.2 0 .3-.1.4 0h.4l.2.1.3.2.2-.4.3-.4.1-.1 1.2-1 .3-.2.4-.1.4-.1h.3l1.5.1.4.1.8.5.1.2 1 1.1v.2H129.4l.4-.2 1.4-.5h1.1c.3 0 .7.2 1 .4.2 0 .3.2.5.3l.2.2.5.3.4.6.1.3.4 1.4.1.4v.6a7.8 7.8 0 0 1-.1.6 9.9 9.9 0 0 1-.8 2.4 7.8 7.8 0 0 1-3 3.3 6.4 6.4 0 0 1-1 .5 6.1 6.1 0 0 1-.6.2l-.7.1h-.1a23.4 23.4 0 0 1-.2 1.7 14.3 14.3 0 0 1-.6 2.1l-.8 2a9.2 9.2 0 0 1-.4.6l-.7 1a9.1 9.1 0 0 1-2.3 2.2c-.9.5-2 .6-3 .7l-1.4.1h-.5l-.4.1a15.8 15.8 0 0 1-2.8-.1v4.2a9.7 9.7 0 0 1-.7 3.5 9.6 9.6 0 0 1-1.7 2.8 9.3 9.3 0 0 1-3 2.3 9 9 0 0 1-5.4.7 9 9 0 0 1-3-1 9.4 9.4 0 0 1-2.7-2.5 10 10 0 0 1-1 1.2 9.3 9.3 0 0 1-2 1.3 9 9 0 0 1-2.4 1 9 9 0 0 1-6.5-1.1A9.4 9.4 0 0 1 85 77V77a10.9 10.9 0 0 1-.6.6 9.3 9.3 0 0 1-2.7 2 9 9 0 0 1-6 .8 9 9 0 0 1-2.4-1 9.3 9.3 0 0 1-2.3-1.7 9.6 9.6 0 0 1-1.8-2.8 9.7 9.7 0 0 1-.8-3.7v-4a18.5 18.5 0 0 1-2.9.2l-1.2-.1c-1.9-.3-3.7-1-5.1-2.1A8.2 8.2 0 0 1 58 64a10.2 10.2 0 0 1-.9-1.2 15.3 15.3 0 0 1-.7-1.3 20.8 20.8 0 0 1-1.9-6.2v-.2a6.5 6.5 0 0 1-1-.3 6.1 6.1 0 0 1-.6-.3 6.6 6.6 0 0 1-.9-.5 8.2 8.2 0 0 1-2.7-3.8 10 10 0 0 1-.3-1 10.3 10.3 0 0 1-.3-1.9V47v-.4l.1-.4.6-1.4.1-.2a2 2 0 0 1 .8-.8l.3-.2.3-.2a3.2 3.2 0 0 1 1.8-.5h.4l.3.2 1.4.6.2.2.4.3.3.4.7-.7.2-.2.4-.2.6-.2h2.1l.4.2.4.2.3.2.8 1 .2-.1h.1v-.1H63l1.1.1h.3l.8.5.3.4.7 1 .2.3.1.5a11 11 0 0 1 .2 1.5c0 .8 0 1.6-.3 2.3a6 6 0 0 1-.5 1.2 5.5 5.5 0 0 1-3.3 2.5 12.3 12.3 0 0 0 1.4 3h.1l.2.1 1 .2h1.5l.5-.2H67.8l.5-.2h.1V44v-.4a26.7 26.7 0 0 1 .3-2.3 24.7 24.7 0 0 1 5.7-12.5 24.2 24.2 0 0 1 3.5-3.3 23.7 23.7 0 0 1 4.9-3 23.2 23.2 0 0 1 5.6-1.7 23.7 23.7 0 0 1 4-.3zm-.3 2a21.2 21.2 0 0 0-8 1.7 21.6 21.6 0 0 0-4.8 2.7 22.2 22.2 0 0 0-3.2 3 22.7 22.7 0 0 0-5 9.2 23.4 23.4 0 0 0-.7 4.9v15.7l-.5.1a34.3 34.3 0 0 1-1.5.3h-.2l-.4.1h-.4l-.9.2a10 10 0 0 1-1.9 0c-.5 0-1-.2-1.5-.4a1.8 1.8 0 0 1-.3-.2 2 2 0 0 1-.3-.3 5.2 5.2 0 0 1-.1-.2 9 9 0 0 1-.6-.9 13.8 13.8 0 0 1-1-2 14.3 14.3 0 0 1-.6-2 14 14 0 0 1-.1-.8v-.2h.3a12.8 12.8 0 0 0 1.4-.2 4.4 4.4 0 0 0 .3 0 3.6 3.6 0 0 0 1.1-.7 3.4 3.4 0 0 0 1.2-1.7l.2-1.2a5.1 5.1 0 0 0 0-.8 7.2 7.2 0 0 0-.1-.8l-.7-1-1.2-.2-1 .7-.1 1.3a5 5 0 0 1 .1.4v.6a1 1 0 0 1 0 .3c-.1.3-.4.4-.7.5l-1.2.4v-.7A9.9 9.9 0 0 1 60 49l.3-.6v-.2l.1-.1v-1.6l-1-1.2h-1.5l-1 1.1v.4a5.3 5.3 0 0 0-.2.6 5.5 5.5 0 0 0 0 .5c0 .7 0 1.4.3 2 0 .4.2.8.4 1.2L57 51a9.5 9.5 0 0 1-1.1-.5h-.2a2 2 0 0 1-.4-.3c-.4-.4-.5-1-.6-1.6a5.6 5.6 0 0 1 0-.5v-.5-.5l-.6-1.5-1.4-.6-.9.3s-.2 0-.3.2a2 2 0 0 1-.1 0l-.6 1.4v.7a8.5 8.5 0 0 0 .5 2c.4 1.1 1 2.1 2 2.8a4.7 4.7 0 0 0 2.1.9h1a22.8 22.8 0 0 0 .1 1 18.1 18.1 0 0 0 .8 3.8 18.2 18.2 0 0 0 1.6 3.7l1 1.3c1 1 2.3 1.6 3.7 2a11.7 11.7 0 0 0 4.8 0h.4l.5-.2.5-.1.6-.2v6.6a8 8 0 0 0 .1 1.3 7.5 7.5 0 0 0 2.4 4.3 7.2 7.2 0 0 0 2.3 1.3 7 7 0 0 0 7-1.1 7.5 7.5 0 0 0 2-2.6A7.7 7.7 0 0 0 85 72V71a8.2 8.2 0 0 0 .2 1.3c0 .7.3 1.4.6 2a7.5 7.5 0 0 0 1.7 2.3 7.3 7.3 0 0 0 2.2 1.4 7.1 7.1 0 0 0 4.6.2 7.2 7.2 0 0 0 2.4-1.2 7.5 7.5 0 0 0 2.1-2.7 7.8 7.8 0 0 0 .7-2.4V71a9.3 9.3 0 0 0 .1.6 7.6 7.6 0 0 0 .6 2.5 7.5 7.5 0 0 0 2.4 3 7.1 7.1 0 0 0 7 .8 7.3 7.3 0 0 0 2.3-1.5 7.5 7.5 0 0 0 1.6-2.3 7.6 7.6 0 0 0 .5-2l.1-1.1v-6.7l.4.1a12.2 12.2 0 0 0 2 .5 11.1 11.1 0 0 0 2.5 0h.8l1.2-.1a9.5 9.5 0 0 0 1.4-.2l.9-.3a3.5 3.5 0 0 0 .6-.4l1.2-1.4a12.2 12.2 0 0 0 .8-1.2c0-.3.2-.5.3-.7a15.9 15.9 0 0 0 .7-2l.3-1.6v-1.3l.2-.9V54.6a15.5 15.5 0 0 0 1.8 0 4.5 4.5 0 0 0 1.4-.5 5.7 5.7 0 0 0 2.5-3.2 7.6 7.6 0 0 0 .4-1.5v-.3l-.4-1.4a5.2 5.2 0 0 1-.2-.1l-.4-.4a3.8 3.8 0 0 0-.2 0 1.4 1.4 0 0 0-.5-.2l-1.4.4-.7 1.3v.7a5.7 5.7 0 0 1-.1.8l-.7 1.4a1.9 1.9 0 0 1-.5.3h-.3a9.6 9.6 0 0 1-.8.3 8.8 8.8 0 0 1-.6 0l.2-.4.2-.5.2-.3v-.4l.1-.2V50l.1-1 .1-.6v-.6a4.8 4.8 0 0 0 0-.8v-.2l-1-1.1-1.5-.2-1.1 1-.2 1.4v.1l.2.4.2.3v.4l.1 1.1v.3l.1.5v.8a9.6 9.6 0 0 1-.8-.3l-.2-.1h-.3l-.8-.1h-.2a1.6 1.6 0 0 1-.2-.2.9.9 0 0 1-.2-.2 1 1 0 0 1-.1-.5l.2-.9v-1.2l-.9-.8h-1.2l-.8.9v.3a4.8 4.8 0 0 0-.3 2l.3.9a3.5 3.5 0 0 0 1.2 1.6l1 .5.8.2 1.4.1h.4l.2.1a12.1 12.1 0 0 1-1 2.6 13.2 13.2 0 0 1-.8 1.5 9.5 9.5 0 0 1-1 1.2l-.2.3a1.7 1.7 0 0 1-.4.3 2.4 2.4 0 0 1-.7.2h-2.5a7.8 7.8 0 0 1-.6-.2l-.7-.2h-.2a14.8 14.8 0 0 1-.6-.2 23.4 23.4 0 0 1-.4-.1l-.4-.1-.3-.1V43.9a34.6 34.6 0 0 0 0-.6 23.6 23.6 0 0 0-.4-3 22.7 22.7 0 0 0-1.5-4.7 22.6 22.6 0 0 0-4.6-6.7 21.9 21.9 0 0 0-6.9-4.7 21.2 21.2 0 0 0-8.1-1.8H92zm9.1 33.7l.3.1a1 1 0 0 1 .6.8v.4a8.4 8.4 0 0 1 0 .5 8.8 8.8 0 0 1-1.6 4.2l-1 1.3A10 10 0 0 1 95 66c-1.3.3-2.7.4-4 .3a10.4 10.4 0 0 1-2.7-.8 10 10 0 0 1-3.6-2.5 9.3 9.3 0 0 1-.8-1 9 9 0 0 1-.7-1.2 8.6 8.6 0 0 1-.8-3.4V57a1 1 0 0 1 .3-.6 1 1 0 0 1 1.3-.2 1 1 0 0 1 .4.8v.4a6.5 6.5 0 0 0 .5 2.2 7 7 0 0 0 2.1 2.8l1 .6c2.6 1.6 6 1.6 8.5 0a8 8 0 0 0 1.1-.6 7.6 7.6 0 0 0 1.2-1.2 7 7 0 0 0 1-1.7 6.5 6.5 0 0 0 .4-2.5 1 1 0 0 1 .7-1h.4zM30.7 43.7c-15.5 1-28.5-6-30.1-16.4C-1.2 15.7 11.6 4 29 1.3 46.6-1.7 62.3 5.5 64 17.1c1.6 10.4-8.7 21-23.7 25a31.2 31.2 0 0 0 0 .9v.3a19 19 0 0 0 .1 1l.1.4.1.9a4.7 4.7 0 0 0 .5 1l.7 1a9.2 9.2 0 0 0 1.2 1l1.5.8.6.8-.7.6-1.1.3a11.2 11.2 0 0 1-2.6.4 8.6 8.6 0 0 1-3-.5 8.5 8.5 0 0 1-1-.4 11.2 11.2 0 0 1-1.8-1.2 13.3 13.3 0 0 1-1-1 18 18 0 0 1-.7-.6l-.4-.4a23.4 23.4 0 0 1-1.3-1.8l-.1-.1-.3-.5V45l-.3-.6v-.7zM83.1 36c3.6 0 6.5 3.2 6.5 7.1 0 4-3 7.2-6.5 7.2S76.7 47 76.7 43 79.6 36 83 36zm18 0c3.6 0 6.5 3.2 6.5 7.1 0 4-2.9 7.2-6.4 7.2S94.7 47 94.7 43s3-7.1 6.5-7.1zm-18 6.1c2 0 3.5 1.6 3.5 3.6S85 49.2 83 49.2s-3.4-1.6-3.4-3.6S81.2 42 83 42zm17.9 0c1.9 0 3.4 1.6 3.4 3.6s-1.5 3.6-3.4 3.6c-2 0-3.5-1.6-3.5-3.6S99.1 42 101 42zM17 28c-.3 1.6-1.8 5-5.2 5.8-2.5.6-4.1-.8-4.5-2.6-.4-1.9.7-3.5 2.1-4.5A3.5 3.5 0 0 1 8 24.6c-.4-2 .8-3.7 3.2-4.2 1.9-.5 3.1.2 3.4 1.5.3 1.1-.5 2.2-1.8 2.5-.9.3-1.6 0-1.7-.6a1.4 1.4 0 0 1 0-.7s.3.2 1 0c.7-.1 1-.7.9-1.2-.2-.6-1-.8-1.8-.6-1 .2-2 1-1.7 2.6.3 1 .9 1.6 1.5 1.8l.7-.2c1-.2 1.5 0 1.6.5 0 .4-.2 1-1.2 1.2a3.3 3.3 0 0 1-1.5 0c-.9.7-1.6 1.9-1.3 3.2.3 1.3 1.3 2.2 3 1.8 2.5-.7 3.8-3.7 4.2-5-.3-.5-.6-1-.7-1.6-.1-.5.1-1 .9-1.2.4 0 .7.2.8.8a2.8 2.8 0 0 1 0 1l.7 1c.6-2 1.4-4 1.7-4 .6-.2 1.5.6 1.5.6-.8.7-1.7 2.4-2.3 4.2.8.6 1.6 1 2.1 1 .5-.1.8-.6 1-1.2-.3-2.2 1-4.3 2.3-4.6.7-.2 1.3.2 1.4.8.1.5 0 1.3-.9 1.7-.2-1-.6-1.3-1-1.3-.4.1-.7 1.4-.4 2.8.2 1 .7 1.5 1.3 1.4.8-.2 1.3-1.2 1.7-2.1-.3-2.1.9-4.2 2.2-4.5.7-.2 1.2.1 1.4 1 .4 1.4-1 2.8-2.2 3.4.3.7.7 1 1.3.9 1-.3 1.6-1.5 2-2.5l-.5-3v-.3s1.6-.3 1.8.6v.1c.2-.6.7-1.2 1.3-1.4.8-.1 1.5.6 1.7 1.6.5 2.2-.5 4.4-1.8 4.7H33a31.9 31.9 0 0 0 1 5.2c-.4.1-1.8.4-2-.4l-.5-5.6c-.5 1-1.3 2.2-2.5 2.4-1 .3-1.6-.3-2-1.1-.5 1-1.3 2.1-2.4 2.4-.8.2-1.5-.1-2-1-.3.8-.9 1.5-1.5 1.7-.7.1-1.5-.3-2.4-1-.3.8-.4 1.6-.4 2.2 0 0-.7 0-.8-.4-.1-.5 0-1.5.3-2.7a10.3 10.3 0 0 1-.7-.8zm38.2-17.8l.2.9c.5 1.9.4 4.4.8 6.4 0 .6-.4 3-1.4 3.3-.2 0-.3 0-.4-.4-.1-.7 0-1.6-.3-2.6-.2-1.1-.8-1.6-1.5-1.5-.8.2-1.3 1-1.6 2l-.1-.5c-.2-1-1.8-.6-1.8-.6a6.2 6.2 0 0 1 .4 1.3l.2 1c-.2.5-.6 1-1.2 1l-.2.1a7 7 0 0 0-.1-.8c-.3-1.1-1-2-1.6-1.8a.7.7 0 0 0-.4.3c-1.3.3-2.4 2-2.1 3.9-.2.9-.6 1.7-1 1.9-.5 0-.8-.5-1.1-1.8l-.1-1.2a4 4 0 0 0 0-1.7c0-.4-.4-.7-.8-.6-.7.2-.9 1.7-.5 3.8-.2 1-.6 2-1.3 2-.4.2-.8-.2-1-1l-.2-3c1.2-.5 2-1 1.8-1.7-.1-.5-.8-.7-.8-.7s0 .7-1 1.2l-.2-1.4c-.1-.6-.4-1-1.7-.6l.4 1 .2 1.5h-1v.8c0 .3.4.3 1 .2 0 1.3 0 2.7.2 3.6.3 1.4 1.2 2 2 1.7 1-.2 1.6-1.3 2-2.3.3 1.2 1 2 1.9 1.7.7-.2 1.2-1.1 1.6-2.2.4.8 1.1 1.1 2 1 1.2-.4 1.7-1.6 1.8-2.8h.2c.6-.2 1-.6 1.3-1 0 .8 0 1.5.2 2.1.1.5.3.7.6.6.5-.1 1-.9 1-.9a4 4 0 0 1-.3-1c-.3-1.3.3-3.6 1-3.7.2 0 .3.2.5.7v.8l.2 1.5v.7c.2.7.7 1.3 1.5 1 1.3-.2 2-2.6 2.1-3.9.3.2.6.2 1 .1-.6-2.2 0-6.1-.3-7.9-.1-.4-1-.5-1.7-.5h-.4zm-21.5 12c.4 0 .7.3 1 1.1.2 1.3-.3 2.6-.9 2.8-.2 0-.7 0-1-1.2v-.4c0-1.3.4-2 1-2.2zm-5.2 1c.3 0 .6.2.6.5.2.6-.3 1.3-1.2 2-.3-1.4.1-2.3.6-2.5zm18-.4c-.5.2-1-.4-1.2-1.2-.2-1 0-2.1.7-2.5v.5c.2.7.6 1.5 1.3 1.9 0 .7-.2 1.2-.7 1.3zm10-1.6c0 .5.4.7 1 .6.8-.2 1-1 .8-1.6 0-.5-.4-1-1-.8-.5.1-1 .9-.8 1.8zm-14.3-5.5c0-.4-.5-.7-1-.5-.8.2-1 1-.9 1.5.2.6.5 1 1 .8.5 0 1.1-1 1-1.8z" fill="#fff" fill-opacity=".6"/></svg>'; } } diff --git a/vendor/symfony/debug/Tests/ErrorHandlerTest.php b/vendor/symfony/debug/Tests/ErrorHandlerTest.php index c1dea75bbd..15de37c7b7 100644 --- a/vendor/symfony/debug/Tests/ErrorHandlerTest.php +++ b/vendor/symfony/debug/Tests/ErrorHandlerTest.php @@ -525,7 +525,7 @@ public function testHandleFatalError() */ public function testHandleErrorException() { - $exception = new \Error("Class 'Foo' not found"); + $exception = new \Error("Class 'IReallyReallyDoNotExistAnywhereInTheRepositoryISwear' not found"); $handler = new ErrorHandler(); $handler->setExceptionHandler(function () use (&$args) { @@ -535,7 +535,7 @@ public function testHandleErrorException() $handler->handleException($exception); $this->assertInstanceOf('Symfony\Component\Debug\Exception\ClassNotFoundException', $args[0]); - $this->assertStringStartsWith("Attempted to load class \"Foo\" from the global namespace.\nDid you forget a \"use\" statement", $args[0]->getMessage()); + $this->assertStringStartsWith("Attempted to load class \"IReallyReallyDoNotExistAnywhereInTheRepositoryISwear\" from the global namespace.\nDid you forget a \"use\" statement", $args[0]->getMessage()); } /** diff --git a/vendor/symfony/debug/Tests/Fixtures/FinalClasses.php b/vendor/symfony/debug/Tests/Fixtures/FinalClasses.php index 0f51f9f46f..4c2b0aaf35 100644 --- a/vendor/symfony/debug/Tests/Fixtures/FinalClasses.php +++ b/vendor/symfony/debug/Tests/Fixtures/FinalClasses.php @@ -30,6 +30,7 @@ class FinalClass3 /** * @final + * * @author John Doe */ class FinalClass4 @@ -63,7 +64,6 @@ class FinalClass6 * @author John Doe * * @final another - * * multiline comment... * * @return string @@ -76,6 +76,7 @@ class FinalClass7 /** * @author John Doe * @final + * * @return string */ class FinalClass8 diff --git a/vendor/symfony/debug/Tests/Fixtures/FinalMethod.php b/vendor/symfony/debug/Tests/Fixtures/FinalMethod.php index 98a47524c4..595dd0a887 100644 --- a/vendor/symfony/debug/Tests/Fixtures/FinalMethod.php +++ b/vendor/symfony/debug/Tests/Fixtures/FinalMethod.php @@ -13,6 +13,8 @@ public function finalMethod() /** * @final + * + * @return int */ public function finalMethod2() { diff --git a/vendor/symfony/dependency-injection/Compiler/AutowirePass.php b/vendor/symfony/dependency-injection/Compiler/AutowirePass.php index 252b304f11..c8e7a0f575 100644 --- a/vendor/symfony/dependency-injection/Compiler/AutowirePass.php +++ b/vendor/symfony/dependency-injection/Compiler/AutowirePass.php @@ -181,7 +181,15 @@ private function autowireCalls(\ReflectionClass $reflectionClass, array $methodC if ($method instanceof \ReflectionFunctionAbstract) { $reflectionMethod = $method; } else { - $reflectionMethod = $this->getReflectionMethod(new Definition($reflectionClass->name), $method); + $definition = new Definition($reflectionClass->name); + try { + $reflectionMethod = $this->getReflectionMethod($definition, $method); + } catch (RuntimeException $e) { + if ($definition->getFactory()) { + continue; + } + throw $e; + } } $arguments = $this->autowireMethod($reflectionMethod, $arguments); diff --git a/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php b/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php index 20b262b6d4..f3c4b593cc 100644 --- a/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php +++ b/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php @@ -34,6 +34,8 @@ class ResolveBindingsPass extends AbstractRecursivePass */ public function process(ContainerBuilder $container) { + $this->usedBindings = $container->getRemovedBindingIds(); + try { parent::process($container); @@ -115,7 +117,14 @@ protected function processValue($value, $isRoot = false) if ($method instanceof \ReflectionFunctionAbstract) { $reflectionMethod = $method; } else { - $reflectionMethod = $this->getReflectionMethod($value, $method); + try { + $reflectionMethod = $this->getReflectionMethod($value, $method); + } catch (RuntimeException $e) { + if ($value->getFactory()) { + continue; + } + throw $e; + } } foreach ($reflectionMethod->getParameters() as $key => $parameter) { diff --git a/vendor/symfony/dependency-injection/Container.php b/vendor/symfony/dependency-injection/Container.php index e822643439..e385f06898 100644 --- a/vendor/symfony/dependency-injection/Container.php +++ b/vendor/symfony/dependency-injection/Container.php @@ -159,7 +159,7 @@ public function setParameter($name, $value) /** * Sets a service. * - * Setting a service to null resets the service: has() returns false and get() + * Setting a synthetic service to null resets it: has() returns false and get() * behaves in the same way as if the service was never created. * * @param string $id The service identifier diff --git a/vendor/symfony/dependency-injection/ContainerBuilder.php b/vendor/symfony/dependency-injection/ContainerBuilder.php index 0c1966a42e..e6a2aa0531 100644 --- a/vendor/symfony/dependency-injection/ContainerBuilder.php +++ b/vendor/symfony/dependency-injection/ContainerBuilder.php @@ -123,6 +123,8 @@ class ContainerBuilder extends Container implements TaggedContainerInterface private $removedIds = []; + private $removedBindingIds = []; + private static $internalTypes = [ 'int' => true, 'float' => true, @@ -866,6 +868,10 @@ public function setAlias($alias, $id) { $alias = $this->normalizeId($alias); + if ('' === $alias || '\\' === substr($alias, -1) || \strlen($alias) !== strcspn($alias, "\0\r\n'")) { + throw new InvalidArgumentException(sprintf('Invalid alias id: "%s"', $alias)); + } + if (\is_string($id)) { $id = new Alias($this->normalizeId($id)); } elseif (!$id instanceof Alias) { @@ -1019,6 +1025,10 @@ public function setDefinition($id, Definition $definition) $id = $this->normalizeId($id); + if ('' === $id || '\\' === substr($id, -1) || \strlen($id) !== strcspn($id, "\0\r\n'")) { + throw new InvalidArgumentException(sprintf('Invalid service id: "%s"', $id)); + } + unset($this->aliasDefinitions[$id], $this->removedIds[$id]); return $this->definitions[$id] = $definition; @@ -1504,6 +1514,35 @@ public function normalizeId($id) return isset($this->definitions[$id]) || isset($this->aliasDefinitions[$id]) || isset($this->removedIds[$id]) ? $id : parent::normalizeId($id); } + /** + * Gets removed binding ids. + * + * @return array + * + * @internal + */ + public function getRemovedBindingIds() + { + return $this->removedBindingIds; + } + + /** + * Adds a removed binding id. + * + * @param int $id + * + * @internal + */ + public function addRemovedBindingIds($id) + { + if ($this->hasDefinition($id)) { + foreach ($this->getDefinition($id)->getBindings() as $key => $binding) { + list(, $bindingId) = $binding->getValues(); + $this->removedBindingIds[(int) $bindingId] = true; + } + } + } + /** * Returns the Service Conditionals. * diff --git a/vendor/symfony/dependency-injection/Dumper/PhpDumper.php b/vendor/symfony/dependency-injection/Dumper/PhpDumper.php index 0a1385ecc4..73c868f1e5 100644 --- a/vendor/symfony/dependency-injection/Dumper/PhpDumper.php +++ b/vendor/symfony/dependency-injection/Dumper/PhpDumper.php @@ -483,7 +483,7 @@ private function addServiceInstance($id, Definition $definition, $isSimpleInstan $instantiation = ''; if (!$isProxyCandidate && $definition->isShared()) { - $instantiation = "\$this->services['$id'] = ".($isSimpleInstance ? '' : '$instance'); + $instantiation = sprintf('$this->services[%s] = %s', $this->doExport($id), $isSimpleInstance ? '' : '$instance'); } elseif (!$isSimpleInstance) { $instantiation = '$instance'; } @@ -679,6 +679,9 @@ private function addService($id, Definition $definition, &$file = null) * Gets the $public '$id'$shared$autowired service. * * $return +EOF; + $code = str_replace('*/', ' ', $code).<<<EOF + */ protected function {$methodName}($lazyInitialization) { @@ -693,7 +696,7 @@ protected function {$methodName}($lazyInitialization) if ($this->getProxyDumper()->isProxyCandidate($definition)) { $factoryCode = $asFile ? "\$this->load('%s.php', false)" : '$this->%s(false)'; - $code .= $this->getProxyDumper()->getProxyFactoryCode($definition, $id, sprintf($factoryCode, $methodName)); + $code .= $this->getProxyDumper()->getProxyFactoryCode($definition, $id, sprintf($factoryCode, $methodName, $this->doExport($id))); } if ($definition->isDeprecated()) { @@ -767,14 +770,14 @@ private function addInlineReference($id, Definition $definition, $targetId, $for $code .= sprintf(<<<'EOTXT' - if (isset($this->%s['%s'])) { - return $this->%1$s['%2$s']; + if (isset($this->%s[%s])) { + return $this->%1$s[%2$s]; } EOTXT , 'services', - $id + $this->doExport($id) ); return $code; @@ -1530,14 +1533,14 @@ private function getServiceConditionals($value) if (!$this->container->hasDefinition($service)) { return 'false'; } - $conditions[] = sprintf("isset(\$this->services['%s'])", $service); + $conditions[] = sprintf('isset($this->services[%s])', $this->doExport($service)); } foreach (ContainerBuilder::getServiceConditionals($value) as $service) { if ($this->container->hasDefinition($service) && !$this->container->getDefinition($service)->isPublic()) { continue; } - $conditions[] = sprintf("\$this->has('%s')", $service); + $conditions[] = sprintf('$this->has(%s)', $this->doExport($service)); } if (!$conditions) { @@ -1776,6 +1779,8 @@ private function dumpLiteralClass($class) */ private function dumpParameter($name) { + $name = (string) $name; + if ($this->container->isCompiled() && $this->container->hasParameter($name)) { $value = $this->container->getParameter($name); $dumpedValue = $this->dumpValue($value, false); @@ -1785,11 +1790,11 @@ private function dumpParameter($name) } if (!preg_match("/\\\$this->(?:getEnv\('(?:\w++:)*+\w++'\)|targetDirs\[\d++\])/", $dumpedValue)) { - return sprintf("\$this->parameters['%s']", $name); + return sprintf('$this->parameters[%s]', $this->doExport($name)); } } - return sprintf("\$this->getParameter('%s')", $name); + return sprintf('$this->getParameter(%s)', $this->doExport($name)); } /** @@ -1813,7 +1818,7 @@ private function getServiceCall($id, Reference $reference = null) if ($this->container->hasDefinition($id) && $definition = $this->container->getDefinition($id)) { if ($definition->isSynthetic()) { - $code = sprintf('$this->get(\'%s\'%s)', $id, null !== $reference ? ', '.$reference->getInvalidBehavior() : ''); + $code = sprintf('$this->get(%s%s)', $this->doExport($id), null !== $reference ? ', '.$reference->getInvalidBehavior() : ''); } elseif (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { $code = 'null'; if (!$definition->isShared()) { @@ -1822,7 +1827,7 @@ private function getServiceCall($id, Reference $reference = null) } elseif ($this->isTrivialInstance($definition)) { $code = substr($this->addNewInstance($definition, '', '', $id), 8, -2); if ($definition->isShared()) { - $code = sprintf('$this->services[\'%s\'] = %s', $id, $code); + $code = sprintf('$this->services[%s] = %s', $this->doExport($id), $code); } $code = "($code)"; } elseif ($this->asFiles && $definition->isShared() && !$this->isHotPath($definition)) { @@ -1833,14 +1838,14 @@ private function getServiceCall($id, Reference $reference = null) } elseif (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { return 'null'; } elseif (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $reference->getInvalidBehavior()) { - $code = sprintf('$this->get(\'%s\', /* ContainerInterface::NULL_ON_INVALID_REFERENCE */ %d)', $id, ContainerInterface::NULL_ON_INVALID_REFERENCE); + $code = sprintf('$this->get(%s, /* ContainerInterface::NULL_ON_INVALID_REFERENCE */ %d)', $this->doExport($id), ContainerInterface::NULL_ON_INVALID_REFERENCE); } else { - $code = sprintf('$this->get(\'%s\')', $id); + $code = sprintf('$this->get(%s)', $this->doExport($id)); } // The following is PHP 5.5 syntax for what could be written as "(\$this->services['$id'] ?? $code)" on PHP>=7.0 - return "\${(\$_ = isset(\$this->services['$id']) ? \$this->services['$id'] : $code) && false ?: '_'}"; + return sprintf("\${(\$_ = isset(\$this->services[%s]) ? \$this->services[%1\$s] : %s) && false ?: '_'}", $this->doExport($id), $code); } /** diff --git a/vendor/symfony/dependency-injection/Dumper/XmlDumper.php b/vendor/symfony/dependency-injection/Dumper/XmlDumper.php index 36e3e121d2..67b6dbebb4 100644 --- a/vendor/symfony/dependency-injection/Dumper/XmlDumper.php +++ b/vendor/symfony/dependency-injection/Dumper/XmlDumper.php @@ -47,7 +47,7 @@ public function dump(array $options = []) $container = $this->document->createElementNS('http://symfony.com/schema/dic/services', 'container'); $container->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); - $container->setAttribute('xsi:schemaLocation', 'http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd'); + $container->setAttribute('xsi:schemaLocation', 'http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd'); $this->addParameters($container); $this->addServices($container); @@ -290,12 +290,12 @@ private function convertParameters(array $parameters, $type, \DOMElement $parent } elseif ($value instanceof Reference) { $element->setAttribute('type', 'service'); $element->setAttribute('id', (string) $value); - $behaviour = $value->getInvalidBehavior(); - if (ContainerInterface::NULL_ON_INVALID_REFERENCE == $behaviour) { + $behavior = $value->getInvalidBehavior(); + if (ContainerInterface::NULL_ON_INVALID_REFERENCE == $behavior) { $element->setAttribute('on-invalid', 'null'); - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE == $behaviour) { + } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE == $behavior) { $element->setAttribute('on-invalid', 'ignore'); - } elseif (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE == $behaviour) { + } elseif (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE == $behavior) { $element->setAttribute('on-invalid', 'ignore_uninitialized'); } } elseif ($value instanceof Definition) { diff --git a/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php b/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php index 12054cad0c..21b1669d09 100644 --- a/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php +++ b/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php @@ -59,6 +59,8 @@ public function __destruct() { parent::__destruct(); + $this->container->addRemovedBindingIds($this->id); + if (!$this->definition instanceof ChildDefinition) { $this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof)); } else { diff --git a/vendor/symfony/dependency-injection/Loader/FileLoader.php b/vendor/symfony/dependency-injection/Loader/FileLoader.php index a428c6e35f..0dd1a3d8bd 100644 --- a/vendor/symfony/dependency-injection/Loader/FileLoader.php +++ b/vendor/symfony/dependency-injection/Loader/FileLoader.php @@ -91,6 +91,8 @@ public function registerClasses(Definition $prototype, $namespace, $resource, $e */ protected function setDefinition($id, Definition $definition) { + $this->container->addRemovedBindingIds($id); + if ($this->isLoadingInstanceof) { if (!$definition instanceof ChildDefinition) { throw new InvalidArgumentException(sprintf('Invalid type definition "%s": ChildDefinition expected, "%s" given.', $id, \get_class($definition))); diff --git a/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php b/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php index fd2a20a876..718592d8ec 100644 --- a/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php +++ b/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php @@ -584,7 +584,8 @@ public function validateSchema(\DOMDocument $dom) } if (($extension = $this->container->getExtension($items[$i])) && false !== $extension->getXsdValidationBasePath()) { - $path = str_replace($extension->getNamespace(), str_replace('\\', '/', $extension->getXsdValidationBasePath()).'/', $items[$i + 1]); + $ns = $extension->getNamespace(); + $path = str_replace([$ns, str_replace('http://', 'https://', $ns)], str_replace('\\', '/', $extension->getXsdValidationBasePath()).'/', $items[$i + 1]); if (!is_file($path)) { throw new RuntimeException(sprintf('Extension "%s" references a non-existent XSD file "%s"', \get_class($extension), $path)); diff --git a/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php b/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php index 6bd49fa5c6..31fa665ae7 100644 --- a/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php +++ b/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php @@ -21,6 +21,7 @@ use Symfony\Component\DependencyInjection\Exception\RuntimeException; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\DependencyInjection\Reference; +use Symfony\Component\DependencyInjection\Tests\Fixtures\CaseSensitiveClass; use Symfony\Component\DependencyInjection\Tests\Fixtures\includes\FooVariadic; use Symfony\Component\DependencyInjection\TypedReference; @@ -605,6 +606,22 @@ public function testSetterInjection() ); } + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @exceptedExceptionMessage Invalid service "Symfony\Component\DependencyInjection\Tests\Fixtures\NamedArgumentsDummy": method "setLogger()" does not exist. + */ + public function testWithNonExistingSetterAndAutowiring() + { + $container = new ContainerBuilder(); + + $definition = $container->register(CaseSensitiveClass::class, CaseSensitiveClass::class)->setAutowired(true); + $definition->addMethodCall('setLogger'); + + (new ResolveClassPass())->process($container); + (new AutowireRequiredMethodsPass())->process($container); + (new AutowirePass())->process($container); + } + public function testExplicitMethodInjection() { $container = new ContainerBuilder(); diff --git a/vendor/symfony/dependency-injection/Tests/Compiler/ResolveBindingsPassTest.php b/vendor/symfony/dependency-injection/Tests/Compiler/ResolveBindingsPassTest.php index 5118b416f9..7bbecf6207 100644 --- a/vendor/symfony/dependency-injection/Tests/Compiler/ResolveBindingsPassTest.php +++ b/vendor/symfony/dependency-injection/Tests/Compiler/ResolveBindingsPassTest.php @@ -16,6 +16,7 @@ use Symfony\Component\DependencyInjection\Compiler\AutowireRequiredMethodsPass; use Symfony\Component\DependencyInjection\Compiler\ResolveBindingsPass; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Tests\Fixtures\CaseSensitiveClass; use Symfony\Component\DependencyInjection\Tests\Fixtures\NamedArgumentsDummy; @@ -111,4 +112,24 @@ public function testScalarSetter() $this->assertEquals([['setDefaultLocale', ['fr']]], $definition->getMethodCalls()); } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @exceptedExceptionMessage Invalid service "Symfony\Component\DependencyInjection\Tests\Fixtures\NamedArgumentsDummy": method "setLogger()" does not exist. + */ + public function testWithNonExistingSetterAndBinding() + { + $container = new ContainerBuilder(); + + $bindings = [ + '$c' => (new Definition('logger'))->setFactory('logger'), + ]; + + $definition = $container->register(NamedArgumentsDummy::class, NamedArgumentsDummy::class); + $definition->addMethodCall('setLogger'); + $definition->setBindings($bindings); + + $pass = new ResolveBindingsPass(); + $pass->process($container); + } } diff --git a/vendor/symfony/dependency-injection/Tests/ContainerBuilderTest.php b/vendor/symfony/dependency-injection/Tests/ContainerBuilderTest.php index 40afaa169d..73cb670cdb 100644 --- a/vendor/symfony/dependency-injection/Tests/ContainerBuilderTest.php +++ b/vendor/symfony/dependency-injection/Tests/ContainerBuilderTest.php @@ -195,6 +195,38 @@ public function testNonSharedServicesReturnsDifferentInstances() $this->assertNotSame($builder->get('bar'), $builder->get('bar')); } + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException + * @dataProvider provideBadId + */ + public function testBadAliasId($id) + { + $builder = new ContainerBuilder(); + $builder->setAlias($id, 'foo'); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException + * @dataProvider provideBadId + */ + public function testBadDefinitionId($id) + { + $builder = new ContainerBuilder(); + $builder->setDefinition($id, new Definition('Foo')); + } + + public function provideBadId() + { + return [ + [''], + ["\0"], + ["\r"], + ["\n"], + ["'"], + ['ab\\'], + ]; + } + /** * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException * @expectedExceptionMessage You have requested a synthetic service ("foo"). The DIC does not know how to construct this service. diff --git a/vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php b/vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php index 6d985eaca3..761f7ef4dd 100644 --- a/vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php +++ b/vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php @@ -234,12 +234,18 @@ public function testAddServiceIdWithUnsupportedCharacters() { $class = 'Symfony_DI_PhpDumper_Test_Unsupported_Characters'; $container = new ContainerBuilder(); + $container->setParameter("'", 'oh-no'); + $container->register("foo*/oh-no", 'FooClass')->setPublic(true); $container->register('bar$', 'FooClass')->setPublic(true); $container->register('bar$!', 'FooClass')->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); - eval('?>'.$dumper->dump(['class' => $class])); + $this->assertStringEqualsFile(self::$fixturesPath.'/php/services_unsupported_characters.php', $dumper->dump(['class' => $class])); + + require_once self::$fixturesPath.'/php/services_unsupported_characters.php'; + + $this->assertTrue(method_exists($class, 'getFooOhNoService')); $this->assertTrue(method_exists($class, 'getBarService')); $this->assertTrue(method_exists($class, 'getBar2Service')); } diff --git a/vendor/symfony/dependency-injection/Tests/Dumper/XmlDumperTest.php b/vendor/symfony/dependency-injection/Tests/Dumper/XmlDumperTest.php index ac274c6f26..e660c7e801 100644 --- a/vendor/symfony/dependency-injection/Tests/Dumper/XmlDumperTest.php +++ b/vendor/symfony/dependency-injection/Tests/Dumper/XmlDumperTest.php @@ -72,7 +72,7 @@ public function testDumpAnonymousServices() $container = include self::$fixturesPath.'/containers/container11.php'; $dumper = new XmlDumper($container); $this->assertEquals('<?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/> <service id="foo" class="FooClass" public="true"> @@ -96,7 +96,7 @@ public function testDumpEntities() $container = include self::$fixturesPath.'/containers/container12.php'; $dumper = new XmlDumper($container); $this->assertEquals("<?xml version=\"1.0\" encoding=\"utf-8\"?> -<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd\"> +<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd\"> <services> <service id=\"service_container\" class=\"Symfony\Component\DependencyInjection\ContainerInterface\" public=\"true\" synthetic=\"true\"/> <service id=\"foo\" class=\"FooClass\Foo\" public=\"true\"> @@ -125,7 +125,7 @@ public function provideDecoratedServicesData() return [ ["<?xml version=\"1.0\" encoding=\"utf-8\"?> -<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd\"> +<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd\"> <services> <service id=\"service_container\" class=\"Symfony\Component\DependencyInjection\ContainerInterface\" public=\"true\" synthetic=\"true\"/> <service id=\"foo\" class=\"FooClass\Foo\" public=\"true\" decorates=\"bar\" decoration-inner-name=\"bar.woozy\"/> @@ -135,7 +135,7 @@ public function provideDecoratedServicesData() </container> ", include $fixturesPath.'/containers/container15.php'], ["<?xml version=\"1.0\" encoding=\"utf-8\"?> -<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd\"> +<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd\"> <services> <service id=\"service_container\" class=\"Symfony\Component\DependencyInjection\ContainerInterface\" public=\"true\" synthetic=\"true\"/> <service id=\"foo\" class=\"FooClass\Foo\" public=\"true\" decorates=\"bar\"/> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/Bar.php b/vendor/symfony/dependency-injection/Tests/Fixtures/Bar.php index 83f2da12a7..1aaca2f156 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/Bar.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/Bar.php @@ -13,8 +13,11 @@ class Bar implements BarInterface { + public $quz; + public function __construct($quz = null, \NonExistent $nonExistent = null, BarInterface $decorated = null, array $foo = []) { + $this->quz = $quz; } public static function create(\NonExistent $nonExistent = null, $factory = null) diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services33.php b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services33.php index 98e34bc9b1..d4019a50a7 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services33.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services33.php @@ -66,7 +66,7 @@ public function isFrozen() */ protected function getFooService() { - return $this->services['Bar\Foo'] = new \Bar\Foo(); + return $this->services['Bar\\Foo'] = new \Bar\Foo(); } /** @@ -76,6 +76,6 @@ protected function getFooService() */ protected function getFoo2Service() { - return $this->services['Foo\Foo'] = new \Foo\Foo(); + return $this->services['Foo\\Foo'] = new \Foo\Foo(); } } diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_adawson.php b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_adawson.php index f222fc6e60..7986897d37 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_adawson.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_adawson.php @@ -88,10 +88,10 @@ public function isFrozen() */ protected function getBusService() { - $this->services['App\Bus'] = $instance = new \App\Bus(${($_ = isset($this->services['App\Db']) ? $this->services['App\Db'] : $this->getDbService()) && false ?: '_'}); + $this->services['App\\Bus'] = $instance = new \App\Bus(${($_ = isset($this->services['App\\Db']) ? $this->services['App\\Db'] : $this->getDbService()) && false ?: '_'}); - $instance->handler1 = ${($_ = isset($this->services['App\Handler1']) ? $this->services['App\Handler1'] : $this->getHandler1Service()) && false ?: '_'}; - $instance->handler2 = ${($_ = isset($this->services['App\Handler2']) ? $this->services['App\Handler2'] : $this->getHandler2Service()) && false ?: '_'}; + $instance->handler1 = ${($_ = isset($this->services['App\\Handler1']) ? $this->services['App\\Handler1'] : $this->getHandler1Service()) && false ?: '_'}; + $instance->handler2 = ${($_ = isset($this->services['App\\Handler2']) ? $this->services['App\\Handler2'] : $this->getHandler2Service()) && false ?: '_'}; return $instance; } @@ -103,9 +103,9 @@ protected function getBusService() */ protected function getDbService() { - $this->services['App\Db'] = $instance = new \App\Db(); + $this->services['App\\Db'] = $instance = new \App\Db(); - $instance->schema = ${($_ = isset($this->services['App\Schema']) ? $this->services['App\Schema'] : $this->getSchemaService()) && false ?: '_'}; + $instance->schema = ${($_ = isset($this->services['App\\Schema']) ? $this->services['App\\Schema'] : $this->getSchemaService()) && false ?: '_'}; return $instance; } @@ -117,13 +117,13 @@ protected function getDbService() */ protected function getHandler1Service() { - $a = ${($_ = isset($this->services['App\Processor']) ? $this->services['App\Processor'] : $this->getProcessorService()) && false ?: '_'}; + $a = ${($_ = isset($this->services['App\\Processor']) ? $this->services['App\\Processor'] : $this->getProcessorService()) && false ?: '_'}; - if (isset($this->services['App\Handler1'])) { - return $this->services['App\Handler1']; + if (isset($this->services['App\\Handler1'])) { + return $this->services['App\\Handler1']; } - return $this->services['App\Handler1'] = new \App\Handler1(${($_ = isset($this->services['App\Db']) ? $this->services['App\Db'] : $this->getDbService()) && false ?: '_'}, ${($_ = isset($this->services['App\Schema']) ? $this->services['App\Schema'] : $this->getSchemaService()) && false ?: '_'}, $a); + return $this->services['App\\Handler1'] = new \App\Handler1(${($_ = isset($this->services['App\\Db']) ? $this->services['App\\Db'] : $this->getDbService()) && false ?: '_'}, ${($_ = isset($this->services['App\\Schema']) ? $this->services['App\\Schema'] : $this->getSchemaService()) && false ?: '_'}, $a); } /** @@ -133,13 +133,13 @@ protected function getHandler1Service() */ protected function getHandler2Service() { - $a = ${($_ = isset($this->services['App\Processor']) ? $this->services['App\Processor'] : $this->getProcessorService()) && false ?: '_'}; + $a = ${($_ = isset($this->services['App\\Processor']) ? $this->services['App\\Processor'] : $this->getProcessorService()) && false ?: '_'}; - if (isset($this->services['App\Handler2'])) { - return $this->services['App\Handler2']; + if (isset($this->services['App\\Handler2'])) { + return $this->services['App\\Handler2']; } - return $this->services['App\Handler2'] = new \App\Handler2(${($_ = isset($this->services['App\Db']) ? $this->services['App\Db'] : $this->getDbService()) && false ?: '_'}, ${($_ = isset($this->services['App\Schema']) ? $this->services['App\Schema'] : $this->getSchemaService()) && false ?: '_'}, $a); + return $this->services['App\\Handler2'] = new \App\Handler2(${($_ = isset($this->services['App\\Db']) ? $this->services['App\\Db'] : $this->getDbService()) && false ?: '_'}, ${($_ = isset($this->services['App\\Schema']) ? $this->services['App\\Schema'] : $this->getSchemaService()) && false ?: '_'}, $a); } /** @@ -149,13 +149,13 @@ protected function getHandler2Service() */ protected function getProcessorService() { - $a = ${($_ = isset($this->services['App\Registry']) ? $this->services['App\Registry'] : $this->getRegistryService()) && false ?: '_'}; + $a = ${($_ = isset($this->services['App\\Registry']) ? $this->services['App\\Registry'] : $this->getRegistryService()) && false ?: '_'}; - if (isset($this->services['App\Processor'])) { - return $this->services['App\Processor']; + if (isset($this->services['App\\Processor'])) { + return $this->services['App\\Processor']; } - return $this->services['App\Processor'] = new \App\Processor($a, ${($_ = isset($this->services['App\Db']) ? $this->services['App\Db'] : $this->getDbService()) && false ?: '_'}); + return $this->services['App\\Processor'] = new \App\Processor($a, ${($_ = isset($this->services['App\\Db']) ? $this->services['App\\Db'] : $this->getDbService()) && false ?: '_'}); } /** @@ -165,9 +165,9 @@ protected function getProcessorService() */ protected function getRegistryService() { - $this->services['App\Registry'] = $instance = new \App\Registry(); + $this->services['App\\Registry'] = $instance = new \App\Registry(); - $instance->processor = [0 => ${($_ = isset($this->services['App\Db']) ? $this->services['App\Db'] : $this->getDbService()) && false ?: '_'}, 1 => ${($_ = isset($this->services['App\Bus']) ? $this->services['App\Bus'] : $this->getBusService()) && false ?: '_'}]; + $instance->processor = [0 => ${($_ = isset($this->services['App\\Db']) ? $this->services['App\\Db'] : $this->getDbService()) && false ?: '_'}, 1 => ${($_ = isset($this->services['App\\Bus']) ? $this->services['App\\Bus'] : $this->getBusService()) && false ?: '_'}]; return $instance; } @@ -179,12 +179,12 @@ protected function getRegistryService() */ protected function getSchemaService() { - $a = ${($_ = isset($this->services['App\Db']) ? $this->services['App\Db'] : $this->getDbService()) && false ?: '_'}; + $a = ${($_ = isset($this->services['App\\Db']) ? $this->services['App\\Db'] : $this->getDbService()) && false ?: '_'}; - if (isset($this->services['App\Schema'])) { - return $this->services['App\Schema']; + if (isset($this->services['App\\Schema'])) { + return $this->services['App\\Schema']; } - return $this->services['App\Schema'] = new \App\Schema($a); + return $this->services['App\\Schema'] = new \App\Schema($a); } } diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_requires.php b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_requires.php index a23a693674..59582d9eb5 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_requires.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_requires.php @@ -87,7 +87,7 @@ public function isFrozen() */ protected function getParentNotExistsService() { - return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\ParentNotExists'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\ParentNotExists(); + return $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\ParentNotExists'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\ParentNotExists(); } /** @@ -97,7 +97,7 @@ protected function getParentNotExistsService() */ protected function getC1Service() { - return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C1'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C1(); + return $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\includes\\HotPath\\C1'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C1(); } /** @@ -110,7 +110,7 @@ protected function getC2Service() include_once $this->targetDirs[1].'/includes/HotPath/C2.php'; include_once $this->targetDirs[1].'/includes/HotPath/C3.php'; - return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C2'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C2(${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3'] : ($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3())) && false ?: '_'}); + return $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\includes\\HotPath\\C2'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C2(${($_ = isset($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\includes\\HotPath\\C3']) ? $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\includes\\HotPath\\C3'] : ($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\includes\\HotPath\\C3'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3())) && false ?: '_'}); } /** @@ -122,7 +122,7 @@ protected function getC3Service() { include_once $this->targetDirs[1].'/includes/HotPath/C3.php'; - return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3(); + return $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\includes\\HotPath\\C3'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\includes\HotPath\C3(); } public function getParameter($name) diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_self_ref.php b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_self_ref.php index a2573eae6d..271aeb668b 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_self_ref.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_inline_self_ref.php @@ -69,7 +69,7 @@ protected function getFooService() $b = new \App\Baz($a); $b->bar = $a; - $this->services['App\Foo'] = $instance = new \App\Foo($b); + $this->services['App\\Foo'] = $instance = new \App\Foo($b); $a->foo = $instance; diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_rot13_env.php b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_rot13_env.php index 7c903b11d0..8d1465c44b 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_rot13_env.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_rot13_env.php @@ -67,7 +67,7 @@ public function isFrozen() */ protected function getRot13EnvVarProcessorService() { - return $this->services['Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor(); + return $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Dumper\\Rot13EnvVarProcessor'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor(); } /** @@ -78,7 +78,7 @@ protected function getRot13EnvVarProcessorService() protected function getContainer_EnvVarProcessorsLocatorService() { return $this->services['container.env_var_processors_locator'] = new \Symfony\Component\DependencyInjection\ServiceLocator(['rot13' => function () { - return ${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor'] : ($this->services['Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor())) && false ?: '_'}; + return ${($_ = isset($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Dumper\\Rot13EnvVarProcessor']) ? $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Dumper\\Rot13EnvVarProcessor'] : ($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Dumper\\Rot13EnvVarProcessor'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\Rot13EnvVarProcessor())) && false ?: '_'}; }]); } diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_subscriber.php b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_subscriber.php index 9424a76114..dbb51eab32 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_subscriber.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_subscriber.php @@ -73,7 +73,7 @@ public function isFrozen() */ protected function getTestServiceSubscriberService() { - return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber(); + return $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber(); } /** @@ -84,13 +84,13 @@ protected function getTestServiceSubscriberService() protected function getFooServiceService() { return $this->services['foo_service'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber((new \Symfony\Component\DependencyInjection\ServiceLocator(['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition' => function () { - $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v = null) { return $v; }; return $f(${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] : ($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition())) && false ?: '_'}); + $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v = null) { return $v; }; return $f(${($_ = isset($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition']) ? $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition'] : ($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition())) && false ?: '_'}); }, 'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber' => function () { - $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber $v) { return $v; }; return $f(${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] : ($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber())) && false ?: '_'}); + $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber $v) { return $v; }; return $f(${($_ = isset($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber']) ? $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber'] : ($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber())) && false ?: '_'}); }, 'bar' => function () { - $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v) { return $v; }; return $f(${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] : ($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber())) && false ?: '_'}); + $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v) { return $v; }; return $f(${($_ = isset($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber']) ? $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber'] : ($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\TestServiceSubscriber'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber())) && false ?: '_'}); }, 'baz' => function () { - $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v = null) { return $v; }; return $f(${($_ = isset($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition']) ? $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] : ($this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition())) && false ?: '_'}); + $f = function (\Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition $v = null) { return $v; }; return $f(${($_ = isset($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition']) ? $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition'] : ($this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition())) && false ?: '_'}); }]))->withContext('foo_service', $this)); } @@ -101,6 +101,6 @@ protected function getFooServiceService() */ protected function getCustomDefinitionService() { - return $this->services['Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition(); + return $this->services['Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition(); } } diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_unsupported_characters.php b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_unsupported_characters.php new file mode 100644 index 0000000000..a4c841cabe --- /dev/null +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/php/services_unsupported_characters.php @@ -0,0 +1,178 @@ +<?php + +use Symfony\Component\DependencyInjection\Argument\RewindableGenerator; +use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\DependencyInjection\Container; +use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use Symfony\Component\DependencyInjection\Exception\LogicException; +use Symfony\Component\DependencyInjection\Exception\RuntimeException; +use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag; + +/** + * This class has been auto-generated + * by the Symfony Dependency Injection Component. + * + * @final since Symfony 3.3 + */ +class Symfony_DI_PhpDumper_Test_Unsupported_Characters extends Container +{ + private $parameters; + private $targetDirs = []; + + public function __construct() + { + $this->parameters = $this->getDefaultParameters(); + + $this->services = []; + $this->methodMap = [ + 'bar$' => 'getBarService', + 'bar$!' => 'getBar2Service', + 'foo*/oh-no' => 'getFooohnoService', + ]; + + $this->aliases = []; + } + + public function getRemovedIds() + { + return [ + 'Psr\\Container\\ContainerInterface' => true, + 'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true, + ]; + } + + public function compile() + { + throw new LogicException('You cannot compile a dumped container that was already compiled.'); + } + + public function isCompiled() + { + return true; + } + + public function isFrozen() + { + @trigger_error(sprintf('The %s() method is deprecated since Symfony 3.3 and will be removed in 4.0. Use the isCompiled() method instead.', __METHOD__), E_USER_DEPRECATED); + + return true; + } + + /** + * Gets the public 'bar$' shared service. + * + * @return \FooClass + */ + protected function getBarService() + { + return $this->services['bar$'] = new \FooClass(); + } + + /** + * Gets the public 'bar$!' shared service. + * + * @return \FooClass + */ + protected function getBar2Service() + { + return $this->services['bar$!'] = new \FooClass(); + } + + /** + * Gets the public 'foo oh-no' shared service. + * + * @return \FooClass + */ + protected function getFooohnoService() + { + return $this->services['foo*/oh-no'] = new \FooClass(); + } + + public function getParameter($name) + { + $name = (string) $name; + if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) { + $name = $this->normalizeParameterName($name); + + if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) { + throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name)); + } + } + if (isset($this->loadedDynamicParameters[$name])) { + return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); + } + + return $this->parameters[$name]; + } + + public function hasParameter($name) + { + $name = (string) $name; + $name = $this->normalizeParameterName($name); + + return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters); + } + + public function setParameter($name, $value) + { + throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); + } + + public function getParameterBag() + { + if (null === $this->parameterBag) { + $parameters = $this->parameters; + foreach ($this->loadedDynamicParameters as $name => $loaded) { + $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); + } + $this->parameterBag = new FrozenParameterBag($parameters); + } + + return $this->parameterBag; + } + + private $loadedDynamicParameters = []; + private $dynamicParameters = []; + + /** + * Computes a dynamic parameter. + * + * @param string $name The name of the dynamic parameter to load + * + * @return mixed The value of the dynamic parameter + * + * @throws InvalidArgumentException When the dynamic parameter does not exist + */ + private function getDynamicParameter($name) + { + throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name)); + } + + private $normalizedParameterNames = []; + + private function normalizeParameterName($name) + { + if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) { + $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $normalizedName; + if ((string) $name !== $normalizedName) { + @trigger_error(sprintf('Parameter names will be made case sensitive in Symfony 4.0. Using "%s" instead of "%s" is deprecated since Symfony 3.4.', $name, $normalizedName), E_USER_DEPRECATED); + } + } else { + $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name; + } + + return $normalizedName; + } + + /** + * Gets the default parameters. + * + * @return array An array of the default parameters + */ + protected function getDefaultParameters() + { + return [ + '\'' => 'oh-no', + ]; + } +} diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/class_from_id.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/class_from_id.xml index 45415cce47..5b74100908 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/class_from_id.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/class_from_id.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="Symfony\Component\DependencyInjection\Tests\Fixtures\CaseSensitiveClass" /> </services> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings.xml new file mode 100644 index 0000000000..d943dfad2d --- /dev/null +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + <services> + <defaults> + <bind key="$quz">value</bind> + <bind key="$foo" type="collection"> + <bind>value</bind> + </bind> + </defaults> + + <service id="bar" class="Symfony\Component\DependencyInjection\Tests\Fixtures\Bar"/> + + <service id="foo" class="stdClass"/> + </services> +</container> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings2.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings2.xml new file mode 100644 index 0000000000..db41330f85 --- /dev/null +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/defaults_bindings2.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + <services> + <defaults> + <bind key="$quz">overridden</bind> + </defaults> + + <service id="bar" class="Symfony\Component\DependencyInjection\Tests\Fixtures\Bar"/> + </services> +</container> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension1/services.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension1/services.xml index 52df38d0c9..1323dd5f20 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension1/services.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension1/services.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="extension1.foo" class="FooClass1"> <argument type="service"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension2/services.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension2/services.xml index 21a7ef58c0..f9c01225dc 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension2/services.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension2/services.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="extension2.foo" class="FooClass2"> <argument type="service"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services2.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services2.xml index 67d462be98..65c90696a6 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services2.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services2.xml @@ -3,7 +3,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:project="http://www.example.com/schema/projectwithxsd" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd http://www.example.com/schema/projectwithxsd http://www.example.com/schema/projectwithxsd/project-1.0.xsd"> <parameters> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services3.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services3.xml index c23f02a087..4c81844876 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services3.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services3.xml @@ -3,7 +3,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:project="http://www.example.com/schema/projectwithxsd" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd http://www.example.com/schema/projectwithxsd http://www.example.com/schema/projectwithxsd/project-1.0.xsd"> <parameters> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services5.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services5.xml index 0eaaff2d2c..c0343373a3 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services5.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services5.xml @@ -3,7 +3,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:project="http://www.example.com/schema/projectwithxsd" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd http://www.example.com/schema/projectwithxsd http://www.example.com/schema/projectwithxsd/project-1.0.xsd"> <project:foobar /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services6.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services6.xml index a9c01030d1..da2b4bf2b3 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services6.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services6.xml @@ -3,7 +3,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:project="http://www.example.com/schema/projectwithxsdinphar" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd http://www.example.com/schema/projectwithxsdinphar http://www.example.com/schema/projectwithxsdinphar/project-1.0.xsd"> <project:bar /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services7.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services7.xml index e77780db6a..fa5c364b3d 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services7.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services7.xml @@ -3,7 +3,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:project="http://www.example.com/schema/projectwithxsdinphar" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd http://www.example.com/schema/projectwithxsdinphar http://www.example.com/schema/projectwithxsdinphar/project-1.0.xsd"> <project:bar bar="foo" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy_invalid_alias_definition.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy_invalid_alias_definition.xml index 52386e5bf5..a5387b25ab 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy_invalid_alias_definition.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy_invalid_alias_definition.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="Foo" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/namespaces.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/namespaces.xml index 5a05cedd7e..9dc27fadbb 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/namespaces.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/namespaces.xml @@ -3,8 +3,8 @@ <srv:container xmlns="http://symfony.com/schema/dic/doctrine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:srv="http://symfony.com/schema/dic/services" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd - http://symfony.com/schema/dic/doctrine http://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd + http://symfony.com/schema/dic/doctrine https://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd"> <srv:services> <srv:service id="foo" class="FooClass"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/nested_service_without_id.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/nested_service_without_id.xml index f8eb009949..cfeed0ff50 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/nested_service_without_id.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/nested_service_without_id.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="FooClass"> <argument type="service"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services1.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services1.xml index 6dc3ea6618..7d8674a30f 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services1.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services1.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service class="Symfony\Component\DependencyInjection\ContainerInterface" id="service_container" public="true" synthetic="true"/> <service alias="service_container" id="Psr\Container\ContainerInterface" public="false"/> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services10.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services10.xml index a4da1bf74c..921070e1b4 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services10.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services10.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="BarClass"> <tag name="foo_tag" diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services13.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services13.xml index 1ac4938841..9d86b8e514 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services13.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services13.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="imported_from_xml">true</parameter> </parameters> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services14.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services14.xml index 73446214e4..639075f5db 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services14.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services14.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="monolog.logger" parent="monolog.logger_prototype" public="false"> <argument index="0">app</argument> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services2.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services2.xml index 0d2d669949..243a289f73 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services2.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services2.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter>a string</parameter> <parameter key="foo">bar</parameter> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services21.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services21.xml index 36fc8cfd81..20dd4cf476 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services21.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services21.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/> <service id="foo" class="Foo" public="true"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services22.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services22.xml index fa79d38948..6de7945bef 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services22.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services22.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="Foo"> <autowiring-type>Bar</autowiring-type> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services23.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services23.xml index 3f9e15fd49..eb56fd11df 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services23.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services23.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="bar" class="Bar" autowire="true" /> </services> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services24.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services24.xml index abf389bc8d..23c91cdc2e 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services24.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services24.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/> <service id="foo" class="Foo" public="true" autowire="true"/> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services28.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services28.xml index 0076cc31eb..6b53c09890 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services28.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services28.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <defaults public="false" autowire="true"> <tag name="foo" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services3.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services3.xml index 87bf183db3..5f0afeb492 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services3.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services3.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="foo">foo</parameter> <parameter key="values" type="collection"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4.xml index 47ec04e685..399da81594 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <imports> <import resource="services2.xml" /> <import resource="services3.xml" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4_bad_import.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4_bad_import.xml index 0b7f10a309..b30178f9e9 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4_bad_import.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4_bad_import.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <imports> <import resource="foo_fake.xml" ignore-errors="true" /> </imports> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services5.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services5.xml index 721f028287..6c6a14245b 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services5.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services5.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="FooClass"> <argument type="service"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services6.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services6.xml index c85b7a7c01..84eb57bbe2 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services6.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services6.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="FooClass" /> <service id="baz" class="BazClass" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services7.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services7.xml index 824d8b5d75..5b322105b4 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services7.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services7.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="BarClass" /> </services> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services8.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services8.xml index bc1186bd93..d0f9015c5a 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services8.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services8.xml @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="foo">%baz%</parameter> <parameter key="baz">bar</parameter> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services9.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services9.xml index d12c00319a..128c1bac22 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services9.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services9.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="baz_class">BazClass</parameter> <parameter key="foo_class">Bar\FooClass</parameter> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_abstract.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_abstract.xml index 22abf54681..47fd3a53bd 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_abstract.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_abstract.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/> <service id="foo" class="Foo" public="true" abstract="true"/> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure.xml index 5e855c0972..91cfa5f4dc 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <defaults autoconfigure="true" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure_with_parent.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure_with_parent.xml index 103045d38f..97a8facf49 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure_with_parent.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_autoconfigure_with_parent.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="parent_service" class="stdClass" /> <service id="child_service" class="stdClass" parent="parent_service" autoconfigure="true" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_bindings.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_bindings.xml index 408bca5f75..0fb57daa5e 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_bindings.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_bindings.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <defaults> <bind key="NonExistent">null</bind> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_defaults_with_parent.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_defaults_with_parent.xml index 875ed6d51f..bb1511898b 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_defaults_with_parent.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_defaults_with_parent.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <defaults autowire="true" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_deprecated.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_deprecated.xml index c19a47adf5..ae3a0b0890 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_deprecated.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_deprecated.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="Foo"> <deprecated /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_dump_load.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_dump_load.xml index e70be185c0..7a91166c1f 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_dump_load.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_dump_load.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/> <service id="foo" autoconfigure="true" abstract="true"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_inline_not_candidate.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_inline_not_candidate.xml index 7256058539..e6857813c6 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_inline_not_candidate.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_inline_not_candidate.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="stdClass"> <argument type="service"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof.xml index 839776a3fe..097687e1aa 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <instanceof id="Symfony\Component\DependencyInjection\Tests\Fixtures\BarInterface" lazy="true" autowire="true"> <tag name="foo" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof_with_parent.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof_with_parent.xml index 67ce691724..c2fce5eb2f 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof_with_parent.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_instanceof_with_parent.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <instanceof id="FooInterface" autowire="true" /> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_named_args.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_named_args.xml index 95dabde9c4..68ade19dd4 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_named_args.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_named_args.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="Symfony\Component\DependencyInjection\Tests\Fixtures\NamedArgumentsDummy"> <argument key="$apiKey">ABCD</argument> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_prototype.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_prototype.xml index 381f95dd00..9d1d622d4a 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_prototype.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_prototype.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <prototype namespace="Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\" resource="../Prototype/*" exclude="../Prototype/{OtherDir,BadClasses}" /> </services> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_tsantos.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_tsantos.xml index bb310b279d..2a35f46865 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_tsantos.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_tsantos.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/> <service id="tsantos_serializer" class="TSantos\Serializer\EventEmitterSerializer" public="true"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_without_id.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_without_id.xml index bc0f719bd5..fe65f08f4f 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_without_id.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services_without_id.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <defaults public="true" /> <service class="FooClass"/> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_with_empty_name.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_with_empty_name.xml index 1646292462..08e3e78fa6 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_with_empty_name.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_with_empty_name.xml @@ -1,7 +1,7 @@ <?xml version="1.0" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="BarClass"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_without_name.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_without_name.xml index bc7373df73..1ff3929033 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_without_name.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/tag_without_name.xml @@ -1,7 +1,7 @@ <?xml version="1.0" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="BarClass"> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/with_key_outside_collection.xml b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/with_key_outside_collection.xml index 5f3a284361..1f6d32079d 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/with_key_outside_collection.xml +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/with_key_outside_collection.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> +<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="foo" class="Foo"> <argument key="type">foo</argument> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/xml_with_wrong_ext.php b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/xml_with_wrong_ext.php index 91ff5d4602..dcf167db83 100644 --- a/vendor/symfony/dependency-injection/Tests/Fixtures/xml/xml_with_wrong_ext.php +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/xml/xml_with_wrong_ext.php @@ -2,7 +2,7 @@ <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="with_wrong_ext">from xml</parameter> </parameters> diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings.yml b/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings.yml new file mode 100644 index 0000000000..ca5e5048de --- /dev/null +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings.yml @@ -0,0 +1,11 @@ +services: + _defaults: + bind: + $quz: value + $foo: [value] + + bar: + class: Symfony\Component\DependencyInjection\Tests\Fixtures\Bar + + foo: + class: stdClass diff --git a/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings2.yml b/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings2.yml new file mode 100644 index 0000000000..01fc5af624 --- /dev/null +++ b/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/defaults_bindings2.yml @@ -0,0 +1,7 @@ +services: + _defaults: + bind: + $quz: overridden + + bar: + class: Symfony\Component\DependencyInjection\Tests\Fixtures\Bar diff --git a/vendor/symfony/dependency-injection/Tests/Loader/XmlFileLoaderTest.php b/vendor/symfony/dependency-injection/Tests/Loader/XmlFileLoaderTest.php index d89887acca..03376a641d 100644 --- a/vendor/symfony/dependency-injection/Tests/Loader/XmlFileLoaderTest.php +++ b/vendor/symfony/dependency-injection/Tests/Loader/XmlFileLoaderTest.php @@ -17,6 +17,7 @@ use Symfony\Component\Config\Resource\FileResource; use Symfony\Component\Config\Resource\GlobResource; use Symfony\Component\DependencyInjection\Argument\IteratorArgument; +use Symfony\Component\DependencyInjection\Compiler\ResolveBindingsPass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Dumper\PhpDumper; use Symfony\Component\DependencyInjection\Loader\IniFileLoader; @@ -820,4 +821,20 @@ public function testTsantosContainer() $dump = $dumper->dump(); $this->assertStringEqualsFile(self::$fixturesPath.'/php/services_tsantos.php', $dumper->dump()); } + + /** + * The pass may throw an exception, which will cause the test to fail. + */ + public function testOverriddenDefaultsBindings() + { + $container = new ContainerBuilder(); + + $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml')); + $loader->load('defaults_bindings.xml'); + $loader->load('defaults_bindings2.xml'); + + (new ResolveBindingsPass())->process($container); + + $this->assertSame('overridden', $container->get('bar')->quz); + } } diff --git a/vendor/symfony/dependency-injection/Tests/Loader/YamlFileLoaderTest.php b/vendor/symfony/dependency-injection/Tests/Loader/YamlFileLoaderTest.php index 7bcf0ec057..05521bf784 100644 --- a/vendor/symfony/dependency-injection/Tests/Loader/YamlFileLoaderTest.php +++ b/vendor/symfony/dependency-injection/Tests/Loader/YamlFileLoaderTest.php @@ -17,6 +17,7 @@ use Symfony\Component\Config\Resource\FileResource; use Symfony\Component\Config\Resource\GlobResource; use Symfony\Component\DependencyInjection\Argument\IteratorArgument; +use Symfony\Component\DependencyInjection\Compiler\ResolveBindingsPass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Loader\IniFileLoader; use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; @@ -732,4 +733,20 @@ public function testBindings() '$factory' => 'factory', ], array_map(function ($v) { return $v->getValues()[0]; }, $definition->getBindings())); } + + /** + * The pass may throw an exception, which will cause the test to fail. + */ + public function testOverriddenDefaultsBindings() + { + $container = new ContainerBuilder(); + + $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml')); + $loader->load('defaults_bindings.yml'); + $loader->load('defaults_bindings2.yml'); + + (new ResolveBindingsPass())->process($container); + + $this->assertSame('overridden', $container->get('bar')->quz); + } } diff --git a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php index 2339a68874..752c8aa829 100644 --- a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php +++ b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php @@ -290,10 +290,6 @@ private function postProcess($eventName) if (null !== $this->logger) { $this->logger->debug('Notified event "{event}" to listener "{listener}".', $context); } - - if (!isset($this->called[$eventName])) { - $this->called[$eventName] = new \SplObjectStorage(); - } } else { $this->callStack->detach($listener); } diff --git a/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php b/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php index bdad9fe9d9..2951c1ee45 100644 --- a/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php +++ b/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php @@ -106,7 +106,7 @@ public function process(ContainerBuilder $container) $definition->addMethodCall('addListener', $args); if (isset($this->hotPathEvents[$args[0]])) { - $container->getDefinition($id)->addTag('container.hot_path'); + $container->getDefinition($id)->addTag($this->hotPathTagName); } } $extractingDispatcher->listeners = []; diff --git a/vendor/symfony/http-foundation/CHANGELOG.md b/vendor/symfony/http-foundation/CHANGELOG.md index 97b279df1f..7bfde80ff1 100644 --- a/vendor/symfony/http-foundation/CHANGELOG.md +++ b/vendor/symfony/http-foundation/CHANGELOG.md @@ -144,10 +144,10 @@ CHANGELOG * Added `FlashBag`. Flashes expire when retrieved by `get()` or `all()`. This implementation is ESI compatible. * Added `AutoExpireFlashBag` (default) to replicate Symfony 2.0.x auto expire - behaviour of messages auto expiring after one page page load. Messages must + behavior of messages auto expiring after one page page load. Messages must be retrieved by `get()` or `all()`. * Added `Symfony\Component\HttpFoundation\Attribute\AttributeBag` to replicate - attributes storage behaviour from 2.0.x (default). + attributes storage behavior from 2.0.x (default). * Added `Symfony\Component\HttpFoundation\Attribute\NamespacedAttributeBag` for namespace session attributes. * Flash API can stores messages in an array so there may be multiple messages diff --git a/vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php b/vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php index d5acb34094..c0f9140c80 100644 --- a/vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php +++ b/vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php @@ -808,6 +808,12 @@ class MimeTypeExtensionGuesser implements ExtensionGuesserInterface */ public function guess($mimeType) { - return isset($this->defaultExtensions[$mimeType]) ? $this->defaultExtensions[$mimeType] : null; + if (isset($this->defaultExtensions[$mimeType])) { + return $this->defaultExtensions[$mimeType]; + } + + $lcMimeType = strtolower($mimeType); + + return isset($this->defaultExtensions[$lcMimeType]) ? $this->defaultExtensions[$lcMimeType] : null; } } diff --git a/vendor/symfony/http-foundation/Request.php b/vendor/symfony/http-foundation/Request.php index f6ff0f5099..ae3f51b172 100644 --- a/vendor/symfony/http-foundation/Request.php +++ b/vendor/symfony/http-foundation/Request.php @@ -1346,22 +1346,37 @@ public function setMethod($method) */ public function getMethod() { - if (null === $this->method) { - $this->method = strtoupper($this->server->get('REQUEST_METHOD', 'GET')); - - if ('POST' === $this->method) { - if ($method = $this->headers->get('X-HTTP-METHOD-OVERRIDE')) { - $this->method = strtoupper($method); - } elseif (self::$httpMethodParameterOverride) { - $method = $this->request->get('_method', $this->query->get('_method', 'POST')); - if (\is_string($method)) { - $this->method = strtoupper($method); - } - } - } + if (null !== $this->method) { + return $this->method; + } + + $this->method = strtoupper($this->server->get('REQUEST_METHOD', 'GET')); + + if ('POST' !== $this->method) { + return $this->method; + } + + $method = $this->headers->get('X-HTTP-METHOD-OVERRIDE'); + + if (!$method && self::$httpMethodParameterOverride) { + $method = $this->request->get('_method', $this->query->get('_method', 'POST')); + } + + if (!\is_string($method)) { + return $this->method; + } + + $method = strtoupper($method); + + if (\in_array($method, ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'PATCH', 'PURGE', 'TRACE'], true)) { + return $this->method = $method; + } + + if (!preg_match('/^[A-Z]++$/D', $method)) { + throw new SuspiciousOperationException(sprintf('Invalid method override "%s".', $method)); } - return $this->method; + return $this->method = $method; } /** @@ -1462,7 +1477,7 @@ public function setFormat($format, $mimeTypes) * * @param string|null $default The default format * - * @return string The request format + * @return string|null The request format */ public function getRequestFormat($default = 'html') { diff --git a/vendor/symfony/http-foundation/Response.php b/vendor/symfony/http-foundation/Response.php index 4d63219b2d..b7d116259d 100644 --- a/vendor/symfony/http-foundation/Response.php +++ b/vendor/symfony/http-foundation/Response.php @@ -310,9 +310,9 @@ public function prepare(Request $request) } // Check if we need to send extra expire info headers - if ('1.0' == $this->getProtocolVersion() && false !== strpos($this->headers->get('Cache-Control'), 'no-cache')) { - $this->headers->set('pragma', 'no-cache'); - $this->headers->set('expires', -1); + if ('1.0' == $this->getProtocolVersion() && false !== strpos($headers->get('Cache-Control'), 'no-cache')) { + $headers->set('pragma', 'no-cache'); + $headers->set('expires', -1); } $this->ensureIEOverSSLCompatibility($request); diff --git a/vendor/symfony/http-foundation/Session/Session.php b/vendor/symfony/http-foundation/Session/Session.php index 867ceba97f..62ce948b68 100644 --- a/vendor/symfony/http-foundation/Session/Session.php +++ b/vendor/symfony/http-foundation/Session/Session.php @@ -193,7 +193,9 @@ public function migrate($destroy = false, $lifetime = null) */ public function save() { - $this->storage->save(); + if ($this->isStarted()) { + $this->storage->save(); + } } /** diff --git a/vendor/symfony/http-foundation/Tests/File/Fixtures/case-sensitive-mime-type.xlsm b/vendor/symfony/http-foundation/Tests/File/Fixtures/case-sensitive-mime-type.xlsm new file mode 100644 index 0000000000000000000000000000000000000000..94d85e6132c553225a1628f056151bee22f5b352 GIT binary patch literal 4791 zcmaJ_by$;q7bYA%x^yBTjifNTk=Ou7hct}dMu}1)H4rK35NQxZL_|6iLAsH0l%O;y zAfX`N_Qof#*ZX=ue{9#To%1};ea^YhIX@Vb@EkoJ2?+__b=!Ddyfe6f{eIhB*xC#3 z?k#)^<>h9FLb(auMz{;%etDYEOV%breeK{RS|lKAJR(Z`=4F*yeMPpyQQ{h{u6B*n z*{FQR29E{Tx?QOQv8jFV-bQGgOaY+KlYru-m{AD`ztgML^bI(^ig14<lEGCLdIjT5 zJLHd&e3<0wnLrP^FQe_cNVFQ}1FY50b_fg1;1t+uIiGMnz5MaHx_n4TN<oM9WO0RT zglxe8p{t_(>+X1YeKyEMF4N~R&w0F@TI(O9KU^{Q%+*e{J|iPM;uBli)XwJwO0^Qg zpu{Bc1O#}^*jG%)$HRmDCkf1dl7M@CZ)Z5%$6NT14^bQsu}1Ip--}QOZJXTQo1M(V z^t9Wi4<!%4+Qeaw--=DwO~cA>a!IoX2AS-<Ope@nRX$)IARS<wVcC+*KOOR%_GV9U zQuwvptMvLPgZ;zG<J$uq>vfD4dFW)8S5>`7kyDrYUkKt^sNq-Zm@Qb`r0E0;<SzM! zGC1!nIYYKqoNJyxrSPB;O5s<4B#zcC>A&D^i#W<*PG1%abL(59t#%7#hGF!MY7$c5 zyJlS;sC)~4;!m<<{IbhE1V{WW5fXKs{D(7yvvfoCi$_<G!h=pK`b2{e2e#`|@5UO# z4obqCS*9KcdbAdDxOE_y1nyeL(%0$}<_(Mq9ugjq8%nAHo-6ns6NJgzEY;-hAlYvP zX?9Aw!4jmY7XzM5^FgW<l0k++c=*!KQg*puGU6;P1<?k@@+HwKb{`F{D3uP`Cm*3& z^^QmF8Jjs$*JA|ioHIEKb}j3EFn+a|-60$gNgZF0s8SBxPl(StB#jV~t7SOIcYR_* z!{bA&D)FYi{=(E;flK=d$y;B^On3sYzaAcXyA^+spTSq|%M8sN%ZOMEFr~JV@Y-Bt zvVBatyG+z6L^Ov60X{xB$8Tk(m=AU~z7hE`iN0b54bx;-YRv*KT{*g6vb_?ny?QVr zyzqMP_0?%LnVg4@0F0TKyj-^}Ddm(0(@)DP>GhN$1&B+@^(=-*jCt=?plX+`^<*m; zt6gl=fy3Sl4*Sn8Blp*3C2wfmGa5pQNxQwnOp9;W=%GM9?b^5a+aQOd-9G-09_|HS z>7kkVUQsu<+Q1=UWHY{#a{HThOl)!%)INJ++0qiJ!a2SXESu^Qu))yA!RiZFxkhmC zEf23bf563DU4L<*Tgxos?Rg=sMo`C#WdXrQWUJqJxM<PwV5!So!j*fdw6D;|q)!B| z%o$JIQRtg*NaXvzB)i(hnm{428hPF~pWXBPVRU$(_k{#s_SY~2;%DK9RUjX!oIL9O zH)>TErX0XDpt{=5?v=???!HrOwGfj~uTb1MB*4QnA^KhQQ2nf)zr`cgpc{!Tn&tz6 zbF&CRt2O3SLXDaPycz0}?u<lrMz?7Ct}o;Hr?WKhBED%=szfRBxuy(1bIc>RRhHML zc}9J0wy)%1^+Ms(9UJQgGU=j&943G?bLBoEo2kv6nGc2i3Zwqp!$EL+V|K9jT&*8K zqE>b0ZoX!zPX7b#7rO}iyG%6%ugt&cQEQ)Ml6T02*B`M`Sf+ABz8s*E;N4K7(2Q%J zHO_zTUe6m5zFff`FWJvyMYkE=`|zmOWZF6=?Mq;=vwlyUS$7e@wR)sva7wc4fy@Ve zv1jun3pyfO20!i&X=WIrA3j|)d)56TuC`dUX+k}4f~+3%NgaCrs(7TE1V=Q-sfojT z%C&n=HMbsFhx708IacTQX6<&fSgVCF2ztn5#s<vEM_ERQW<^NS>?SzHZ|2&8NmtDI zVy>CA=XtCxkr+OE`I!AwM+50}GGTzsy_Lvh+na1b1z_+MQ;xnE!H~h(<|xE#b1AwD zf1h^@p}WXLg5IGEg0-``^PT5aTnlA04)=|1-TLJEOqqix?hPAB8za-e;p_bGRw<kk z*{AwR^cf+#in@?KS!S9StlK5S;u$&x%GG2VVIml9qFV)D91@Tt$wX=8Nm+Y5-932& zt6DNY7=b63<6%hQ>S^yj@bbl_9?u=Vrvb9AcZBbK6vidaWwG4hW31$&2!EG2z&{hm z+sDrx?v2yh&2(i{mI!_4_ILW!ZGnVh7g>Cx_xD`VO3e*iMykUIiOMg4rgTByRu5uG zLk!=gZd4jVglkUaPG{$+ZioV(88c{HH+12?79K{&dYNB8LsU=g(DqSa(<@C7hge%t zE)DYWTaz!5uq^cG_eA}$yKFw;Q2Vv(k4i=pjn#6xGRbZyLXBt$RgG>p7$-YS>z36? zemTi7q2czp7!6M`R4*_Tiogdohg<AQ5PE_;x)zXdBI6dAGQ+~;ebr}#?Y2T4=&K#N zQK~1Qk4T6$ZQdAk7pat)s!3@b?+^Bb8jeNG&<-$0n~Cx;EXF4BY%V480(*U%z>U4n zQ(VaXo~G~0ocl(6wHe`l!n_=G!aYgqX-a4Rn3j|RHjyJK(R2>KvCVe6PEn01TKx5r zyGR~_ZCj;`!gs-gSc()LL$6Q$1EwLxV_|@S=6rl%df&6l1&LQ~sy98}HT{Cx-T{#P z^<viagYT4u*ZGzYe4(dZl1~os8+xo!%EOfNg{Iq<6Av2jOWkHUM^s|WM|A64RMkf$ zoFX2t7|&-XqKk{=A3VJn>A(^NDV-$G-6X%#Kxac$X<M3t@fQ{Ifww?aF9PJ`1@s4% zH|}?-jdP=&8Vt4N2H<VqI$^~PwIOxdtS&WRvnq;WN{(iu79+l3gA$uLnVSl=<Pyn| zDdwoK1A9j=@m+LA^WgY!-`|&lV{u939#k4g+0(z5i_xa+?*AAJUIaed-V#%+>m>ee zwP<qWwydgn>U_e2S#7RJ4x=h;DZeTQdvG!q^I7t{-vDvSjVtFRwS5YFN^RLCbwNwh zZ!tY(9BvQ~aNEPJC}qVHYk60&O24m?U`jp*!hhr_N_-|;eCMWUe)g&SW?UKl>}{%s ziy;HEM2I+wCJWT=+`~gjT&g#a*k@E?HIkP0cd1T}P4z!#tUu?f#MioSL@3bP0nz*i z5;IC9dBu&|nvLw@mtJuqK`-wWw1@5NtI^R?#8$nD^Sl%M!>(vn8+m0`gd1vg&&cc^ zK{K~~P)U354^KZ~aDV=tw=_~3`Y2U?ulVbby}kwIp27g11PIy6t`2k<f7yP+0Z(2j z(#z85me>!6s88W$8!@z=PR99@!RMO7br5b6NG;Zj{t8z=m~bSq`*uOJ3j#}|nrMM= zG@0KlJgB~RZabOsJcWp+4ow>Sr>!o=(b_onljPpj^mMw0`cGaSc6&tqO|;=6PCfxT zmxDC5w{jR*u3AIxn?E}4{X~bODI!xma|=tt0G6u%9>nOd|8PLr!@N))-oo}by?sy! zoG!c^)j@@dFcW|Nt^inNxdAhzu%Q>1-KcC&3owZm536x`0y5j5F+r~kJB+>`O*;<W zOaf;HkEeL&L$1EIp9fNV@bYjt9aD$R_-^Wk6aYU-SDY&mb$(2=yTs>jq@oXJeix@R zFGEx$>P3{t&Gq#8rAau_ge=e1eFMgl%S)#2%-!|87^B3RC(5aTP}}T*UR>F6<k_9* zvPjtX@oz;G_Cxc%Z!glnwDqHCsbcG|!UI&ak{L{>&W->h7uv5GgdZ2>RJ`d}14&iQ zY!F5+PR|Cie{5M#ij~VS<5H~FyC-=mmtBRXN%vYM)2Rzpz<VnX)owk}Q6DJ~7mLgN zM$dvr0X4A(42#<`f})B;O{#O@j|VnTev(ov3u)t+?x$Uqc~t71@(t{D`K7V`B2x8t zxr{fnnm1psOG5Ab(afc*OF_z5O@8uQO{V!r1W;aZ9RDf$I@hu3+Po`JhH2chS1DMN zAswQO(ux9x)J2S~6Cf^dZ8e+(j39wwn{EC30e<`Uvj=>QRuRe|y<R?24g4=kJ2FgF z>4|CYFgetNY)R4rZlnfP#Hx-{Mm<JtZoume#<_ZTzmzA4lbRS*DI1a&p;5VZjt=KX zLf6erC=g}jWz45`fFWLz3Ku|^7dpl_w8blWi8sTWr}Tp5K7n)zOa(v-1ZuFKEO4y! zSOgAT=IMjXTfM%vh9|Q>K%(LP-goS+{JR0xk=l;Ms@gU3sUQa8#G+1R+KLeNrAG{! zl$%6L5-p9^{aTEGg;>^@6A|+WJ+ZhXwma8Xa}KiS*(+}D!=Pvock?n4P2uV!<wle= zb47$o<7hc?FoV05n3=dQ{&~$)_>_S~=?z3Th0q2~Ibf;wJ2`MrdcgB$`AO%_Z7(}N z>J^^hN`@JPqw?HXQ8xK#U?4$f*tN7tW<aV3FV(_Sv*R4DT*w3%*^t;^egAE_P@fH! zt%nCLR@n*Hak1*y4vglXeyL;gSlb|zG+at2R8<*McEz(c_t@Zr?o2Ju-RjN0{=va- zQ+EQd%HCjMhtmaWAVKQ<pZT2^4_N%Rt=AYz#URg$fR|*vLbbsk(5*$(?0F#;455Q8 z(rj-fip*GEbz|t?GdWRoYh4lBbYa#gn3sOs9irjiX$rMf|9ruRWl(8H!-DloD~x4q zFzBd2v7?QyiJ0lB8ude~9);ZMW=}R#mmENF%<u)S=bRihj%o8>ZvhaXaXIncj`2g6 zOA02NL$f9(gsOfE<n;P)FW!*TdAsJ{y($qm3PpYZ;fVTBVNkb@r6KUQ3m#5aZm6P= zK5(RuwV|H}+}jezRdcdDmMd!X!H?)J0SHEnEj-azNkk=5?D9kl*!YAi=f+6zpmZKv z2(RHaZM_cxIm=dN5c&0TK3{6RfQd>i2}gj`YKreVT3&Fg*A1K%x7MM6$0)vDX^Vg? zpuLj?O+!+s=2sj(7BJkiTFfM7m$U;Od&#wY7->8wl)`s)vic6E<rrCXeblP5sWbC7 zMR1%=LhE6jnSX0(l<7y|@;a6szX<d_>X=lH;fBEFF&@7o?t$(*L^oJIhY~TL8b3^# zB;Z^+u}_>SaXE1<;^GyqP32%flc;<Zas4uI+HomzO>spqbx2FZXz*!y!tk8*b8#gn zl}1+W^nIew@otnu_MaBer;Ele9e#WG^%%RI{f%P6Vv6?g^t~^ctX`}OK40_Pb#q)f z_ogiK3JM9nzLPKWJ7rC8A;6Jed~8E4hb10-4kzmP1oU`64;jvG-nc`Cf8xK79Den4 zb_c=j=|2I$-WluXU$^#Oy__9Lar??osA8Y}FE4*@FTWa}ZSlC7^(O+cixJlN=LGw! z>Dji2n*n~piS!>6!LNpA)f$(*KM_avuRZct2WJ%oC+a^zO>x%2UlRYT`PsU{$;?kQ qV=4H5kN!(^eziWE82^0wPn7>!i7+StOC=s2DfUvpYM%Wc_xvA{ir)|b literal 0 HcmV?d00001 diff --git a/vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php b/vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php index 9c02b478ed..5a37cda351 100644 --- a/vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php +++ b/vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php @@ -90,6 +90,19 @@ public function testGuessClientExtensionWithIncorrectMimeType() $this->assertEquals('jpeg', $file->guessClientExtension()); } + public function testCaseSensitiveMimeType() + { + $file = new UploadedFile( + __DIR__.'/Fixtures/case-sensitive-mime-type.xlsm', + 'test.xlsm', + 'application/vnd.ms-excel.sheet.macroEnabled.12', + filesize(__DIR__.'/Fixtures/case-sensitive-mime-type.xlsm'), + null + ); + + $this->assertEquals('xlsm', $file->guessClientExtension()); + } + public function testErrorIsOkByDefault() { $file = new UploadedFile( diff --git a/vendor/symfony/http-foundation/Tests/Session/SessionTest.php b/vendor/symfony/http-foundation/Tests/Session/SessionTest.php index afa00fc7c3..e75b3321b0 100644 --- a/vendor/symfony/http-foundation/Tests/Session/SessionTest.php +++ b/vendor/symfony/http-foundation/Tests/Session/SessionTest.php @@ -260,4 +260,14 @@ public function testIsEmpty() $flash->get('hello'); $this->assertTrue($this->session->isEmpty()); } + + public function testSaveIfNotStarted() + { + $storage = $this->getMockBuilder('Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface')->getMock(); + $session = new Session($storage); + + $storage->expects($this->once())->method('isStarted')->willReturn(false); + $storage->expects($this->never())->method('save'); + $session->save(); + } } diff --git a/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php b/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php index 1d95b8b566..a8dda9f671 100644 --- a/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php +++ b/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php @@ -126,9 +126,13 @@ private function getContainerDeprecationLogs() return []; } + if ('' === $logContent = trim(file_get_contents($file))) { + return []; + } + $bootTime = filemtime($file); $logs = []; - foreach (unserialize(file_get_contents($file)) as $log) { + foreach (unserialize($logContent) as $log) { $log['context'] = ['exception' => new SilencedErrorContext($log['type'], $log['file'], $log['line'], $log['trace'], $log['count'])]; $log['timestamp'] = $bootTime; $log['priority'] = 100; diff --git a/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php b/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php index 99149ab0be..f48db70568 100644 --- a/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php +++ b/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php @@ -47,6 +47,7 @@ public function collect(Request $request, Response $response, \Exception $except 'token' => $response->headers->get('X-Debug-Token'), 'start_time' => $startTime * 1000, 'events' => [], + 'stopwatch_installed' => \class_exists(Stopwatch::class, false), ]; } @@ -139,6 +140,14 @@ public function getStartTime() return $this->data['start_time']; } + /** + * @return bool whether or not the stopwatch component is installed + */ + public function isStopwatchInstalled() + { + return $this->data['stopwatch_installed']; + } + /** * {@inheritdoc} */ diff --git a/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php b/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php index 77f9e2f618..df9df09c0b 100644 --- a/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php +++ b/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php @@ -19,6 +19,7 @@ use Symfony\Component\Debug\ExceptionHandler; use Symfony\Component\EventDispatcher\Event; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\HttpKernel\Debug\FileLinkFormatter; use Symfony\Component\HttpKernel\Event\KernelEvent; use Symfony\Component\HttpKernel\KernelEvents; @@ -40,13 +41,13 @@ class DebugHandlersListener implements EventSubscriberInterface private $hasTerminatedWithException; /** - * @param callable|null $exceptionHandler A handler that will be called on Exception - * @param LoggerInterface|null $logger A PSR-3 logger - * @param array|int $levels An array map of E_* to LogLevel::* or an integer bit field of E_* constants - * @param int|null $throwAt Thrown errors in a bit field of E_* constants, or null to keep the current value - * @param bool $scream Enables/disables screaming mode, where even silenced errors are logged - * @param string|array $fileLinkFormat The format for links to source files - * @param bool $scope Enables/disables scoping mode + * @param callable|null $exceptionHandler A handler that will be called on Exception + * @param LoggerInterface|null $logger A PSR-3 logger + * @param array|int $levels An array map of E_* to LogLevel::* or an integer bit field of E_* constants + * @param int|null $throwAt Thrown errors in a bit field of E_* constants, or null to keep the current value + * @param bool $scream Enables/disables screaming mode, where even silenced errors are logged + * @param string|FileLinkFormatter|null $fileLinkFormat The format for links to source files + * @param bool $scope Enables/disables scoping mode */ public function __construct(callable $exceptionHandler = null, LoggerInterface $logger = null, $levels = E_ALL, $throwAt = E_ALL, $scream = true, $fileLinkFormat = null, $scope = true) { @@ -105,7 +106,7 @@ public function configure(Event $event = null) if (method_exists($kernel = $event->getKernel(), 'terminateWithException')) { $request = $event->getRequest(); $hasRun = &$this->hasTerminatedWithException; - $this->exceptionHandler = function (\Exception $e) use ($kernel, $request, &$hasRun) { + $this->exceptionHandler = static function (\Exception $e) use ($kernel, $request, &$hasRun) { if ($hasRun) { throw $e; } diff --git a/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php b/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php index 862bac557d..1efad607e8 100644 --- a/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php +++ b/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php @@ -215,7 +215,7 @@ private function storeRelativeAgeDirective($directive, $value, $age) } if (false !== $this->ageDirectives[$directive]) { - $value = $value - $age; + $value -= $age; $this->ageDirectives[$directive] = null !== $this->ageDirectives[$directive] ? min($this->ageDirectives[$directive], $value) : $value; } } diff --git a/vendor/symfony/http-kernel/Kernel.php b/vendor/symfony/http-kernel/Kernel.php index 1a985a4c91..1bfed69c61 100644 --- a/vendor/symfony/http-kernel/Kernel.php +++ b/vendor/symfony/http-kernel/Kernel.php @@ -67,11 +67,11 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private $requestStackSize = 0; private $resetServices = false; - const VERSION = '3.4.23'; - const VERSION_ID = 30423; + const VERSION = '3.4.26'; + const VERSION_ID = 30426; const MAJOR_VERSION = 3; const MINOR_VERSION = 4; - const RELEASE_VERSION = 23; + const RELEASE_VERSION = 26; const EXTRA_VERSION = ''; const END_OF_MAINTENANCE = '11/2020'; diff --git a/vendor/symfony/http-kernel/Log/Logger.php b/vendor/symfony/http-kernel/Log/Logger.php index 6cfc759490..e174587d15 100644 --- a/vendor/symfony/http-kernel/Log/Logger.php +++ b/vendor/symfony/http-kernel/Log/Logger.php @@ -40,7 +40,7 @@ class Logger extends AbstractLogger public function __construct($minLevel = null, $output = 'php://stderr', callable $formatter = null) { if (null === $minLevel) { - $minLevel = LogLevel::WARNING; + $minLevel = 'php://stdout' === $output || 'php://stderr' === $output ? LogLevel::CRITICAL : LogLevel::WARNING; if (isset($_ENV['SHELL_VERBOSITY']) || isset($_SERVER['SHELL_VERBOSITY'])) { switch ((int) (isset($_ENV['SHELL_VERBOSITY']) ? $_ENV['SHELL_VERBOSITY'] : $_SERVER['SHELL_VERBOSITY'])) { diff --git a/vendor/symfony/http-kernel/Resources/welcome.html.php b/vendor/symfony/http-kernel/Resources/welcome.html.php index caac7fd6eb..8fdc00506c 100644 --- a/vendor/symfony/http-kernel/Resources/welcome.html.php +++ b/vendor/symfony/http-kernel/Resources/welcome.html.php @@ -51,21 +51,7 @@ <div id="next"> <h2>What's next?</h2> <p> - <svg id="icon-book" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="-12.5 9 64 64" enable-background="new -12.5 9 64 64" xml:space="preserve"> - <path fill="#AAA" d="M6.8,40.8c2.4,0.8,4.5-0.7,4.9-2.5c0.2-1.2-0.3-2.1-1.3-3.2l-0.8-0.8c-0.4-0.5-0.6-1.3-0.2-1.9 - c0.4-0.5,0.9-0.8,1.8-0.5c1.3,0.4,1.9,1.3,2.9,2.2c-0.4,1.4-0.7,2.9-0.9,4.2l-0.2,1c-0.7,4-1.3,6.2-2.7,7.5 - c-0.3,0.3-0.7,0.5-1.3,0.6c-0.3,0-0.4-0.3-0.4-0.3c0-0.3,0.2-0.3,0.3-0.4c0.2-0.1,0.5-0.3,0.4-0.8c0-0.7-0.6-1.3-1.3-1.3 - c-0.6,0-1.4,0.6-1.4,1.7s1,1.9,2.4,1.8c0.8,0,2.5-0.3,4.2-2.5c2-2.5,2.5-5.4,2.9-7.4l0.5-2.8c0.3,0,0.5,0.1,0.8,0.1 - c2.4,0.1,3.7-1.3,3.7-2.3c0-0.6-0.3-1.2-0.9-1.2c-0.4,0-0.8,0.3-1,0.8c-0.1,0.6,0.8,1.1,0.1,1.5c-0.5,0.3-1.4,0.6-2.7,0.4l0.3-1.3 - c0.5-2.6,1-5.7,3.2-5.8c0.2,0,0.8,0,0.8,0.4c0,0.2,0,0.2-0.2,0.5c-0.2,0.3-0.3,0.4-0.2,0.7c0,0.7,0.5,1.1,1.2,1.1 - c0.9,0,1.2-1,1.2-1.4c0-1.2-1.2-1.8-2.6-1.8c-1.5,0.1-2.8,0.9-3.7,2.1c-1.1,1.3-1.8,2.9-2.3,4.5c-0.9-0.8-1.6-1.8-3.1-2.3 - c-1.1-0.7-2.3-0.5-3.4,0.3c-0.5,0.4-0.8,1-1,1.6c-0.4,1.5,0.4,2.9,0.8,3.4l0.9,1c0.2,0.2,0.6,0.8,0.4,1.5c-0.3,0.8-1.2,1.3-2.1,1 - c-0.4-0.2-1-0.5-0.9-0.9c0.1-0.2,0.2-0.3,0.3-0.5s0.1-0.3,0.1-0.3c0.2-0.6-0.1-1.4-0.7-1.6c-0.6-0.2-1.2,0-1.3,0.8 - C4.3,38.4,4.7,40,6.8,40.8z M46.1,20.9c0-4.2-3.2-7.5-7.1-7.5h-3.8C34.8,10.8,32.7,9,30.2,9L-2.3,9.1c-2.8,0.1-4.9,2.4-4.9,5.4 - L-7,58.6c0,4.8,8.1,13.9,11.6,14.1l34.7-0.1c3.9,0,7-3.4,7-7.6L46.1,20.9z M-0.3,36.4c0-8.6,6.5-15.6,14.5-15.6 - c8,0,14.5,7,14.5,15.6S22.1,52,14.2,52C6.1,52-0.3,45-0.3,36.4z M42.1,65.1c0,1.8-1.5,3.1-3.1,3.1H4.6c-0.7,0-3-1.8-4.5-4.4h30.4 - c2.8,0,5-2.4,5-5.4V17.9h3.7c1.6,0,2.9,1.4,2.9,3.1V65.1L42.1,65.1z"/> - </svg> + <svg id="icon-book" xmlns="http://www.w3.org/2000/svg" viewBox="-12.5 9 64 64"><path fill="#AAA" d="M6.8 40.8c2.4.8 4.5-.7 4.9-2.5.2-1.2-.3-2.1-1.3-3.2l-.8-.8c-.4-.5-.6-1.3-.2-1.9.4-.5.9-.8 1.8-.5 1.3.4 1.9 1.3 2.9 2.2-.4 1.4-.7 2.9-.9 4.2l-.2 1c-.7 4-1.3 6.2-2.7 7.5-.3.3-.7.5-1.3.6-.3 0-.4-.3-.4-.3 0-.3.2-.3.3-.4.2-.1.5-.3.4-.8 0-.7-.6-1.3-1.3-1.3-.6 0-1.4.6-1.4 1.7s1 1.9 2.4 1.8c.8 0 2.5-.3 4.2-2.5 2-2.5 2.5-5.4 2.9-7.4l.5-2.8c.3 0 .5.1.8.1 2.4.1 3.7-1.3 3.7-2.3 0-.6-.3-1.2-.9-1.2-.4 0-.8.3-1 .8-.1.6.8 1.1.1 1.5-.5.3-1.4.6-2.7.4l.3-1.3c.5-2.6 1-5.7 3.2-5.8.2 0 .8 0 .8.4 0 .2 0 .2-.2.5s-.3.4-.2.7c0 .7.5 1.1 1.2 1.1.9 0 1.2-1 1.2-1.4 0-1.2-1.2-1.8-2.6-1.8-1.5.1-2.8.9-3.7 2.1-1.1 1.3-1.8 2.9-2.3 4.5-.9-.8-1.6-1.8-3.1-2.3-1.1-.7-2.3-.5-3.4.3-.5.4-.8 1-1 1.6-.4 1.5.4 2.9.8 3.4l.9 1c.2.2.6.8.4 1.5-.3.8-1.2 1.3-2.1 1-.4-.2-1-.5-.9-.9.1-.2.2-.3.3-.5s.1-.3.1-.3c.2-.6-.1-1.4-.7-1.6-.6-.2-1.2 0-1.3.8 0 .7.4 2.3 2.5 3.1zm39.3-19.9c0-4.2-3.2-7.5-7.1-7.5h-3.8c-.4-2.6-2.5-4.4-5-4.4l-32.5.1c-2.8.1-4.9 2.4-4.9 5.4l.2 44.1c0 4.8 8.1 13.9 11.6 14.1l34.7-.1c3.9 0 7-3.4 7-7.6l-.2-44.1zM-.3 36.4c0-8.6 6.5-15.6 14.5-15.6s14.5 7 14.5 15.6S22.1 52 14.2 52C6.1 52-.3 45-.3 36.4zm42.4 28.7c0 1.8-1.5 3.1-3.1 3.1H4.6c-.7 0-3-1.8-4.5-4.4h30.4c2.8 0 5-2.4 5-5.4V17.9h3.7c1.6 0 2.9 1.4 2.9 3.1v44.1z"/></svg> Read the documentation to learn <a href="https://symfony.com/doc/<?php echo $docVersion; ?>/page_creation.html"> diff --git a/vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php b/vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php index cf6a86695d..793fbd319f 100644 --- a/vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php +++ b/vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php @@ -15,6 +15,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\DataCollector\TimeDataCollector; +use Symfony\Component\Stopwatch\Stopwatch; /** * @group time-sensitive @@ -51,5 +52,6 @@ public function testCollect() $c->collect($request, new Response()); $this->assertEquals(123456000, $c->getStartTime()); + $this->assertSame(\class_exists(Stopwatch::class, false), $c->isStopwatchInstalled()); } } diff --git a/vendor/symfony/polyfill-ctype/LICENSE b/vendor/symfony/polyfill-ctype/LICENSE index ad399a798d..3f853aaf35 100644 --- a/vendor/symfony/polyfill-ctype/LICENSE +++ b/vendor/symfony/polyfill-ctype/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018 Fabien Potencier +Copyright (c) 2018-2019 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/vendor/symfony/polyfill-ctype/composer.json b/vendor/symfony/polyfill-ctype/composer.json index 094f8d867a..c24e20ca75 100644 --- a/vendor/symfony/polyfill-ctype/composer.json +++ b/vendor/symfony/polyfill-ctype/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } } } diff --git a/vendor/symfony/polyfill-iconv/LICENSE b/vendor/symfony/polyfill-iconv/LICENSE index 24fa32c2e9..4cd8bdd300 100644 --- a/vendor/symfony/polyfill-iconv/LICENSE +++ b/vendor/symfony/polyfill-iconv/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2018 Fabien Potencier +Copyright (c) 2015-2019 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/vendor/symfony/polyfill-iconv/composer.json b/vendor/symfony/polyfill-iconv/composer.json index 816e6bd7ff..6a3c1e0c43 100644 --- a/vendor/symfony/polyfill-iconv/composer.json +++ b/vendor/symfony/polyfill-iconv/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } } } diff --git a/vendor/symfony/polyfill-mbstring/LICENSE b/vendor/symfony/polyfill-mbstring/LICENSE index 24fa32c2e9..4cd8bdd300 100644 --- a/vendor/symfony/polyfill-mbstring/LICENSE +++ b/vendor/symfony/polyfill-mbstring/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2018 Fabien Potencier +Copyright (c) 2015-2019 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/vendor/symfony/polyfill-mbstring/composer.json b/vendor/symfony/polyfill-mbstring/composer.json index 50ea12f1bb..0bce08782e 100644 --- a/vendor/symfony/polyfill-mbstring/composer.json +++ b/vendor/symfony/polyfill-mbstring/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } } } diff --git a/vendor/symfony/polyfill-php70/LICENSE b/vendor/symfony/polyfill-php70/LICENSE index 24fa32c2e9..4cd8bdd300 100644 --- a/vendor/symfony/polyfill-php70/LICENSE +++ b/vendor/symfony/polyfill-php70/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2018 Fabien Potencier +Copyright (c) 2015-2019 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/vendor/symfony/polyfill-php70/composer.json b/vendor/symfony/polyfill-php70/composer.json index 13dcf94a62..923f309573 100644 --- a/vendor/symfony/polyfill-php70/composer.json +++ b/vendor/symfony/polyfill-php70/composer.json @@ -27,7 +27,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } } } diff --git a/vendor/symfony/process/ExecutableFinder.php b/vendor/symfony/process/ExecutableFinder.php index a621fc6918..cb4345e7bb 100644 --- a/vendor/symfony/process/ExecutableFinder.php +++ b/vendor/symfony/process/ExecutableFinder.php @@ -51,7 +51,7 @@ public function addSuffix($suffix) public function find($name, $default = null, array $extraDirs = []) { if (ini_get('open_basedir')) { - $searchPath = explode(PATH_SEPARATOR, ini_get('open_basedir')); + $searchPath = array_merge(explode(PATH_SEPARATOR, ini_get('open_basedir')), $extraDirs); $dirs = []; foreach ($searchPath as $path) { // Silencing against https://bugs.php.net/69240 diff --git a/vendor/symfony/psr-http-message-bridge/.travis.yml b/vendor/symfony/psr-http-message-bridge/.travis.yml index 6c9646aaa6..8ac385be63 100644 --- a/vendor/symfony/psr-http-message-bridge/.travis.yml +++ b/vendor/symfony/psr-http-message-bridge/.travis.yml @@ -9,13 +9,13 @@ env: global: - PHPUNIT_FLAGS="-v" - SYMFONY_PHPUNIT_DIR="$HOME/symfony-bridge/.phpunit" - - DEPENDENCIES="zendframework/zend-diactoros:^1.4.1 http-interop/http-factory-diactoros:^1.0" + - DEPENDENCIES="nyholm/psr7:^1.1" matrix: fast_finish: true include: # Minimum supported dependencies with the latest and oldest PHP version - - php: 7.2 + - php: 7.3 env: COMPOSER_FLAGS="--prefer-stable --prefer-lowest" SYMFONY_DEPRECATIONS_HELPER="weak_vendors" - php: 5.3 dist: 'precise' @@ -24,7 +24,7 @@ matrix: # Test the latest stable release - php: 5.3 dist: 'precise' - env: DEPENDENCIES="" + env: DEPENDENCIES="symfony/phpunit-bridge:>=3.4,<3.4.22||>=4.0,<4.1.11||>=4.2,<4.2.3" - php: 5.4 env: DEPENDENCIES="zendframework/zend-diactoros:^1.4.1" - php: 5.5 @@ -32,19 +32,21 @@ matrix: - php: 5.6 env: DEPENDENCIES="zendframework/zend-diactoros:^1.4.1" - php: 7.0 + env: DEPENDENCIES="zendframework/zend-diactoros:^1.4.1 http-interop/http-factory-diactoros:^1.0" - php: 7.1 - php: 7.2 + - php: 7.3 env: COVERAGE=true PHPUNIT_FLAGS="-v --coverage-text" # Test LTS versions. This makes sure we do not use Symfony packages with version greater # than 2 or 3 respectively. - - php: 7.2 + - php: 7.3 env: DEPENDENCIES="$DEPENDENCIES symfony/lts:^2 symfony/force-lowest:~2.8.0" - - php: 7.2 + - php: 7.3 env: DEPENDENCIES="$DEPENDENCIES symfony/lts:^3 symfony/force-lowest:~3.4.0" # Latest commit to master - - php: 7.2 + - php: 7.3 env: STABILITY="dev" allow_failures: diff --git a/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php b/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php index 8bf209dc15..8842ad0415 100644 --- a/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php +++ b/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php @@ -141,7 +141,7 @@ protected function getTemporaryPath() public function createResponse(ResponseInterface $psrResponse) { $cookies = $psrResponse->getHeader('Set-Cookie'); - $psrResponse = $psrResponse->withHeader('Set-Cookie', array()); + $psrResponse = $psrResponse->withoutHeader('Set-Cookie'); $response = new Response( $psrResponse->getBody()->__toString(), diff --git a/vendor/symfony/psr-http-message-bridge/Tests/Factory/AbstractHttpMessageFactoryTest.php b/vendor/symfony/psr-http-message-bridge/Tests/Factory/AbstractHttpMessageFactoryTest.php index 5855c7a457..d3e3f7e03f 100644 --- a/vendor/symfony/psr-http-message-bridge/Tests/Factory/AbstractHttpMessageFactoryTest.php +++ b/vendor/symfony/psr-http-message-bridge/Tests/Factory/AbstractHttpMessageFactoryTest.php @@ -149,7 +149,7 @@ public function testCreateResponse() 202, array('X-Symfony' => array('3.4')) ); - $response->headers->setCookie(new Cookie('city', 'Lille', new \DateTime('Wed, 13 Jan 2021 22:23:01 GMT'), '/', null, false, true, false, '')); + $response->headers->setCookie(new Cookie('city', 'Lille', new \DateTime('Wed, 13 Jan 2021 22:23:01 GMT'), '/', null, false, true, false, 'lax')); $psrResponse = $this->factory->createResponse($response); $this->assertEquals('Response content.', $psrResponse->getBody()->__toString()); diff --git a/vendor/symfony/psr-http-message-bridge/Tests/Factory/PsrHttpFactoryTest.php b/vendor/symfony/psr-http-message-bridge/Tests/Factory/PsrHttpFactoryTest.php index da12ea7bd9..1aeff07831 100644 --- a/vendor/symfony/psr-http-message-bridge/Tests/Factory/PsrHttpFactoryTest.php +++ b/vendor/symfony/psr-http-message-bridge/Tests/Factory/PsrHttpFactoryTest.php @@ -11,6 +11,10 @@ namespace Symfony\Bridge\PsrHttpMessage\Tests\Factory; +use Http\Factory\Diactoros\ResponseFactory; +use Http\Factory\Diactoros\ServerRequestFactory; +use Http\Factory\Diactoros\StreamFactory; +use Http\Factory\Diactoros\UploadedFileFactory; use Nyholm\Psr7\Factory\Psr17Factory; use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory; @@ -22,8 +26,20 @@ class PsrHttpFactoryTest extends AbstractHttpMessageFactoryTest { protected function buildHttpMessageFactory() { - $factory = new Psr17Factory(); + if (class_exists('Nyholm\Psr7\Factory\Psr17Factory')) { + $factory = new Psr17Factory(); + return new PsrHttpFactory($factory, $factory, $factory, $factory); + } - return new PsrHttpFactory($factory, $factory, $factory, $factory); + if (class_exists('Http\Factory\Diactoros\ServerRequestFactory')) { + return new PsrHttpFactory( + new ServerRequestFactory(), + new StreamFactory(), + new UploadedFileFactory(), + new ResponseFactory() + ); + } + + $this->markTestSkipped('No PSR-17 HTTP Factory installed.'); } } diff --git a/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php b/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php index 43ac394e85..30f2b790d4 100644 --- a/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php +++ b/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php @@ -76,7 +76,9 @@ public function withAddedHeader($name, $value) public function withoutHeader($name) { - throw new \BadMethodCallException('Not implemented.'); + unset($this->headers[$name]); + + return $this; } public function getBody() diff --git a/vendor/symfony/psr-http-message-bridge/composer.json b/vendor/symfony/psr-http-message-bridge/composer.json index 692f858a67..c1eb5fbef7 100644 --- a/vendor/symfony/psr-http-message-bridge/composer.json +++ b/vendor/symfony/psr-http-message-bridge/composer.json @@ -21,8 +21,7 @@ "symfony/http-foundation": "^2.3.42 || ^3.4 || ^4.0" }, "require-dev": { - "symfony/phpunit-bridge": "^3.4 || ^4.0", - "nyholm/psr7": "^1.1" + "symfony/phpunit-bridge": "^3.4 || ^4.0" }, "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" diff --git a/vendor/symfony/routing/CHANGELOG.md b/vendor/symfony/routing/CHANGELOG.md index 3d34c1d167..19fd7da725 100644 --- a/vendor/symfony/routing/CHANGELOG.md +++ b/vendor/symfony/routing/CHANGELOG.md @@ -57,7 +57,7 @@ CHANGELOG * [DEPRECATION] The `ApacheMatcherDumper` and `ApacheUrlMatcher` were deprecated and will be removed in Symfony 3.0, since the performance gains were minimal and - it's hard to replicate the behaviour of PHP implementation. + it's hard to replicate the behavior of PHP implementation. 2.3.0 ----- diff --git a/vendor/symfony/routing/Loader/AnnotationFileLoader.php b/vendor/symfony/routing/Loader/AnnotationFileLoader.php index dfea551fa1..b155510ed5 100644 --- a/vendor/symfony/routing/Loader/AnnotationFileLoader.php +++ b/vendor/symfony/routing/Loader/AnnotationFileLoader.php @@ -56,6 +56,11 @@ public function load($file, $type = null) $collection = new RouteCollection(); if ($class = $this->findClass($path)) { + $refl = new \ReflectionClass($class); + if ($refl->isAbstract()) { + return; + } + $collection->addResource(new FileResource($path)); $collection->addCollection($this->loader->load($class, $type)); } diff --git a/vendor/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php b/vendor/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php index 6c1621635b..0276719c10 100644 --- a/vendor/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php +++ b/vendor/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php @@ -17,8 +17,6 @@ /** * A route loader that executes a service to load the routes. * - * This depends on the DependencyInjection component. - * * @author Ryan Weaver <ryan@knpuniversity.com> */ class ServiceRouterLoader extends ObjectRouteLoader diff --git a/vendor/symfony/routing/Loader/PhpFileLoader.php b/vendor/symfony/routing/Loader/PhpFileLoader.php index 9e009387dd..d81e7e82e7 100644 --- a/vendor/symfony/routing/Loader/PhpFileLoader.php +++ b/vendor/symfony/routing/Loader/PhpFileLoader.php @@ -48,7 +48,7 @@ public function load($file, $type = null) if ($result instanceof \Closure) { $collection = new RouteCollection(); - $result(new RoutingConfigurator($collection, $this, $path, $file), $this); + $result(new RoutingConfigurator($collection, $this, $path, $file)); } else { $collection = $result; } diff --git a/vendor/symfony/routing/Loader/XmlFileLoader.php b/vendor/symfony/routing/Loader/XmlFileLoader.php index e56add97a3..444a08a776 100644 --- a/vendor/symfony/routing/Loader/XmlFileLoader.php +++ b/vendor/symfony/routing/Loader/XmlFileLoader.php @@ -208,6 +208,7 @@ private function parseConfigs(\DOMElement $node, $path) $options = []; $condition = null; + /** @var \DOMElement $n */ foreach ($node->getElementsByTagNameNS(self::NAMESPACE_URI, '*') as $n) { if ($node !== $n->parentNode) { continue; @@ -226,7 +227,7 @@ private function parseConfigs(\DOMElement $node, $path) $requirements[$n->getAttribute('key')] = trim($n->textContent); break; case 'option': - $options[$n->getAttribute('key')] = trim($n->textContent); + $options[$n->getAttribute('key')] = XmlUtils::phpize(trim($n->textContent)); break; case 'condition': $condition = trim($n->textContent); diff --git a/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php b/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php index 56bcab2a91..bd7ea962c1 100644 --- a/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php +++ b/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php @@ -13,4 +13,9 @@ abstract class AbstractClass { + abstract public function abstractRouteAction(); + + public function routeAction($arg1, $arg2 = 'defaultValue2', $arg3 = 'defaultValue3') + { + } } diff --git a/vendor/symfony/routing/Tests/Fixtures/controller/import__controller.xml b/vendor/symfony/routing/Tests/Fixtures/controller/import__controller.xml index bbe727d41b..5c62914f90 100644 --- a/vendor/symfony/routing/Tests/Fixtures/controller/import__controller.xml +++ b/vendor/symfony/routing/Tests/Fixtures/controller/import__controller.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <import resource="routing.xml"> <default key="_controller">FrameworkBundle:Template:template</default> diff --git a/vendor/symfony/routing/Tests/Fixtures/controller/import_controller.xml b/vendor/symfony/routing/Tests/Fixtures/controller/import_controller.xml index 378b9ca18f..8f52c4ec14 100644 --- a/vendor/symfony/routing/Tests/Fixtures/controller/import_controller.xml +++ b/vendor/symfony/routing/Tests/Fixtures/controller/import_controller.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <import resource="routing.xml" controller="FrameworkBundle:Template:template" /> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.xml index e3c755a40a..e092500fbd 100644 --- a/vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <import resource="routing.xml" controller="FrameworkBundle:Template:template"> <default key="_controller">AppBundle:Blog:index</default> diff --git a/vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.xml index f47c57b308..f665ddbbcb 100644 --- a/vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="app_blog" path="/blog" controller="AppBundle:Homepage:show"> <default key="_controller">AppBundle:Blog:index</default> diff --git a/vendor/symfony/routing/Tests/Fixtures/controller/routing.xml b/vendor/symfony/routing/Tests/Fixtures/controller/routing.xml index 6420138a65..f35e3e0a87 100644 --- a/vendor/symfony/routing/Tests/Fixtures/controller/routing.xml +++ b/vendor/symfony/routing/Tests/Fixtures/controller/routing.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="app_homepage" path="/" controller="AppBundle:Homepage:show" /> diff --git a/vendor/symfony/routing/Tests/Fixtures/glob/bar.xml b/vendor/symfony/routing/Tests/Fixtures/glob/bar.xml index 0d31eeb178..8a0410c5e6 100644 --- a/vendor/symfony/routing/Tests/Fixtures/glob/bar.xml +++ b/vendor/symfony/routing/Tests/Fixtures/glob/bar.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="bar_route" path="/bar" controller="AppBundle:Bar:view" /> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/glob/baz.xml b/vendor/symfony/routing/Tests/Fixtures/glob/baz.xml index 3abba1aced..4b48a0f3d1 100644 --- a/vendor/symfony/routing/Tests/Fixtures/glob/baz.xml +++ b/vendor/symfony/routing/Tests/Fixtures/glob/baz.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="baz_route" path="/baz" controller="AppBundle:Baz:view" /> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/glob/import_multiple.xml b/vendor/symfony/routing/Tests/Fixtures/glob/import_multiple.xml index ca6b1b5a92..a08e96d65a 100644 --- a/vendor/symfony/routing/Tests/Fixtures/glob/import_multiple.xml +++ b/vendor/symfony/routing/Tests/Fixtures/glob/import_multiple.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <import resource="ba?.xml" /> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/glob/import_single.xml b/vendor/symfony/routing/Tests/Fixtures/glob/import_single.xml index 15f5698ccd..3b26eef114 100644 --- a/vendor/symfony/routing/Tests/Fixtures/glob/import_single.xml +++ b/vendor/symfony/routing/Tests/Fixtures/glob/import_single.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <import resource="b?r.xml" /> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/list_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/list_defaults.xml index f93bf9c6ae..01be7c186d 100644 --- a/vendor/symfony/routing/Tests/Fixtures/list_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/list_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/list_in_list_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/list_in_list_defaults.xml index 987086dbdf..65baabe333 100644 --- a/vendor/symfony/routing/Tests/Fixtures/list_in_list_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/list_in_list_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/list_in_map_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/list_in_map_defaults.xml index 32d393c56f..f0d972d1f2 100644 --- a/vendor/symfony/routing/Tests/Fixtures/list_in_map_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/list_in_map_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/list_null_values.xml b/vendor/symfony/routing/Tests/Fixtures/list_null_values.xml index c70e03ccc6..45bdd9da4a 100644 --- a/vendor/symfony/routing/Tests/Fixtures/list_null_values.xml +++ b/vendor/symfony/routing/Tests/Fixtures/list_null_values.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/localized/utf8.xml b/vendor/symfony/routing/Tests/Fixtures/localized/utf8.xml new file mode 100644 index 0000000000..95aff20cfe --- /dev/null +++ b/vendor/symfony/routing/Tests/Fixtures/localized/utf8.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<routes xmlns="http://symfony.com/schema/routing" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://symfony.com/schema/routing + http://symfony.com/schema/routing/routing-1.0.xsd"> + + <route id="app_utf8" path="/utf8"> + <option key="utf8">true</option> + </route> + <route id="app_no_utf8" path="/no-utf8"> + <option key="utf8">false</option> + </route> +</routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/map_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/map_defaults.xml index 47feb29b9a..9f08044321 100644 --- a/vendor/symfony/routing/Tests/Fixtures/map_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/map_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/map_in_list_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/map_in_list_defaults.xml index 6d770653bb..1c8b87df3b 100644 --- a/vendor/symfony/routing/Tests/Fixtures/map_in_list_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/map_in_list_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/map_in_map_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/map_in_map_defaults.xml index 2beee61433..a3af49283e 100644 --- a/vendor/symfony/routing/Tests/Fixtures/map_in_map_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/map_in_map_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/map_null_values.xml b/vendor/symfony/routing/Tests/Fixtures/map_null_values.xml index 8fd8954e02..a8153ad1ff 100644 --- a/vendor/symfony/routing/Tests/Fixtures/map_null_values.xml +++ b/vendor/symfony/routing/Tests/Fixtures/map_null_values.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/missing_id.xml b/vendor/symfony/routing/Tests/Fixtures/missing_id.xml index 4ea4115f28..fa42e98b7f 100644 --- a/vendor/symfony/routing/Tests/Fixtures/missing_id.xml +++ b/vendor/symfony/routing/Tests/Fixtures/missing_id.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <route path="/test"></route> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/missing_path.xml b/vendor/symfony/routing/Tests/Fixtures/missing_path.xml index ef5bc088dd..d048adb17c 100644 --- a/vendor/symfony/routing/Tests/Fixtures/missing_path.xml +++ b/vendor/symfony/routing/Tests/Fixtures/missing_path.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="myroute"></route> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml b/vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml index e33955ae47..f303464d6d 100644 --- a/vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml +++ b/vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml @@ -2,7 +2,7 @@ <r:routes xmlns:r="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <r:route id="blog_show" path="/blog/{slug}" host="{_locale}.example.com"> <r:default key="_controller">MyBundle:Blog:show</r:default> diff --git a/vendor/symfony/routing/Tests/Fixtures/nonvalid.xml b/vendor/symfony/routing/Tests/Fixtures/nonvalid.xml index dc147d2e67..07f5f801c6 100644 --- a/vendor/symfony/routing/Tests/Fixtures/nonvalid.xml +++ b/vendor/symfony/routing/Tests/Fixtures/nonvalid.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog_show" path="/blog/{slug}"> <default key="_controller">MyBundle:Blog:show</default> diff --git a/vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml b/vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml index 863ef03b90..71093a4dd4 100644 --- a/vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml +++ b/vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <foo>bar</foo> </routes> diff --git a/vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml b/vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml index 908958c032..f0b84496c8 100644 --- a/vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml +++ b/vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog_show" path="/blog/{slug}"> <default key="_controller">MyBundle:Blog:show</default> diff --git a/vendor/symfony/routing/Tests/Fixtures/null_values.xml b/vendor/symfony/routing/Tests/Fixtures/null_values.xml index f9e2aa24df..078d49ae4f 100644 --- a/vendor/symfony/routing/Tests/Fixtures/null_values.xml +++ b/vendor/symfony/routing/Tests/Fixtures/null_values.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog_show" path="/blog/{slug}"> <default key="foo" xsi:nil="true" /> diff --git a/vendor/symfony/routing/Tests/Fixtures/scalar_defaults.xml b/vendor/symfony/routing/Tests/Fixtures/scalar_defaults.xml index ecfde2801e..e3f81cc474 100644 --- a/vendor/symfony/routing/Tests/Fixtures/scalar_defaults.xml +++ b/vendor/symfony/routing/Tests/Fixtures/scalar_defaults.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing - http://symfony.com/schema/routing/routing-1.0.xsd"> + https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog" path="/blog"> <default key="_controller"> diff --git a/vendor/symfony/routing/Tests/Fixtures/validpattern.xml b/vendor/symfony/routing/Tests/Fixtures/validpattern.xml index dbc72e46dd..93e59d62a7 100644 --- a/vendor/symfony/routing/Tests/Fixtures/validpattern.xml +++ b/vendor/symfony/routing/Tests/Fixtures/validpattern.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <route id="blog_show" path="/blog/{slug}" host="{locale}.example.com" methods="GET|POST put,OpTiOnS" schemes="hTTps"> <default key="_controller">MyBundle:Blog:show</default> diff --git a/vendor/symfony/routing/Tests/Fixtures/validresource.xml b/vendor/symfony/routing/Tests/Fixtures/validresource.xml index b7a15ddc7e..02dfe6be80 100644 --- a/vendor/symfony/routing/Tests/Fixtures/validresource.xml +++ b/vendor/symfony/routing/Tests/Fixtures/validresource.xml @@ -2,7 +2,7 @@ <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/routing https://symfony.com/schema/routing/routing-1.0.xsd"> <import resource="validpattern.xml" prefix="/{foo}" host=""> <default key="foo">123</default> diff --git a/vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php b/vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php index 26a897ea64..43eb44e48d 100644 --- a/vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php +++ b/vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php @@ -78,6 +78,14 @@ public function testLoadAnonymousClass() $this->loader->load(__DIR__.'/../Fixtures/OtherAnnotatedClasses/AnonymousClassInTrait.php'); } + public function testLoadAbstractClass() + { + $this->reader->expects($this->never())->method('getClassAnnotation'); + $this->reader->expects($this->never())->method('getMethodAnnotations'); + + $this->loader->load(__DIR__.'/../Fixtures/AnnotatedClasses/AbstractClass.php'); + } + public function testSupports() { $fixture = __DIR__.'/../Fixtures/annotated.php'; diff --git a/vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php b/vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php index 66588e7e90..9a061b295a 100644 --- a/vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php +++ b/vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php @@ -83,6 +83,26 @@ public function testLoadWithImport() } } + public function testUtf8Route() + { + $loader = new XmlFileLoader(new FileLocator([__DIR__.'/../Fixtures/localized'])); + $routeCollection = $loader->load('utf8.xml'); + $routes = $routeCollection->all(); + + $this->assertCount(2, $routes, 'Two routes are loaded'); + $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes); + + $utf8Route = $routeCollection->get('app_utf8'); + + $this->assertSame('/utf8', $utf8Route->getPath()); + $this->assertTrue($utf8Route->getOption('utf8'), 'Must be utf8'); + + $noUtf8Route = $routeCollection->get('app_no_utf8'); + + $this->assertSame('/no-utf8', $noUtf8Route->getPath()); + $this->assertFalse($noUtf8Route->getOption('utf8'), 'Must not be utf8'); + } + /** * @expectedException \InvalidArgumentException * @dataProvider getPathsToInvalidFiles diff --git a/vendor/symfony/routing/composer.json b/vendor/symfony/routing/composer.json index 266d52b7d0..e623e294fd 100644 --- a/vendor/symfony/routing/composer.json +++ b/vendor/symfony/routing/composer.json @@ -37,8 +37,7 @@ "symfony/config": "For using the all-in-one router or any loader", "symfony/yaml": "For using the YAML loader", "symfony/expression-language": "For using expression matching", - "doctrine/annotations": "For using the annotation loader", - "symfony/dependency-injection": "For loading routes from a service" + "doctrine/annotations": "For using the annotation loader" }, "autoload": { "psr-4": { "Symfony\\Component\\Routing\\": "" }, diff --git a/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php b/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php index 3f181e4e99..c5bd3ffd97 100644 --- a/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php +++ b/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php @@ -330,9 +330,15 @@ protected function instantiateObject(array &$data, $class, array &$context, \Ref return $object; } + // clean up even if no match + unset($context[static::OBJECT_TO_POPULATE]); $constructor = $this->getConstructor($data, $class, $context, $reflectionClass, $allowedAttributes); if ($constructor) { + if (true !== $constructor->isPublic()) { + return $reflectionClass->newInstanceWithoutConstructor(); + } + $constructorParameters = $constructor->getParameters(); $params = []; @@ -391,7 +397,7 @@ protected function denormalizeParameter(\ReflectionClass $class, \ReflectionPara } $parameterClass = $parameter->getClass()->getName(); - return $this->serializer->denormalize($parameterData, $parameterClass, $format, $this->createChildContext($context, $parameterName)); + return $this->serializer->denormalize($parameterData, $parameterClass, $format, $this->createChildContext($context, $parameterName, $format)); } return $parameterData; @@ -401,14 +407,15 @@ protected function denormalizeParameter(\ReflectionClass $class, \ReflectionPara } /** - * @param array $parentContext - * @param string $attribute + * @param array $parentContext + * @param string $attribute Attribute name + * @param string|null $format * * @return array * * @internal */ - protected function createChildContext(array $parentContext, $attribute) + protected function createChildContext(array $parentContext, $attribute/*, string $format = null */) { if (isset($parentContext[self::ATTRIBUTES][$attribute])) { $parentContext[self::ATTRIBUTES] = $parentContext[self::ATTRIBUTES][$attribute]; diff --git a/vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php b/vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php index 17c31b132b..38908a9323 100644 --- a/vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php +++ b/vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php @@ -94,7 +94,7 @@ public function normalize($object, $format = null, array $context = []) throw new LogicException(sprintf('Cannot normalize attribute "%s" because the injected serializer is not a normalizer', $attribute)); } - $data = $this->updateData($data, $attribute, $this->serializer->normalize($attributeValue, $format, $this->createChildContext($context, $attribute))); + $data = $this->updateData($data, $attribute, $this->serializer->normalize($attributeValue, $format, $this->createChildContext($context, $attribute, $format))); } return $data; @@ -128,15 +128,13 @@ protected function getAttributes($object, $format = null, array $context) return $allowedAttributes; } - if (isset($context['attributes'])) { - return $this->extractAttributes($object, $format, $context); - } + $attributes = $this->extractAttributes($object, $format, $context); - if (isset($this->attributesCache[$class])) { - return $this->attributesCache[$class]; + if ($context['cache_key']) { + $this->attributesCache[$key] = $attributes; } - return $this->attributesCache[$class] = $this->extractAttributes($object, $format, $context); + return $attributes; } /** @@ -276,7 +274,7 @@ private function validateAndDenormalize($currentClass, $attribute, $data, $forma throw new LogicException(sprintf('Cannot denormalize attribute "%s" for class "%s" because injected serializer is not a denormalizer', $attribute, $class)); } - $childContext = $this->createChildContext($context, $attribute); + $childContext = $this->createChildContext($context, $attribute, $format); if ($this->serializer->supportsDenormalization($data, $class, $format, $childContext)) { return $this->serializer->denormalize($data, $class, $format, $childContext); } @@ -373,7 +371,32 @@ private function isMaxDepthReached(array $attributesMetadata, $class, $attribute } /** - * Gets the cache key to use. + * Overwritten to update the cache key for the child. + * + * We must not mix up the attribute cache between parent and children. + * + * {@inheritdoc} + */ + protected function createChildContext(array $parentContext, $attribute/*, string $format = null */) + { + if (\func_num_args() >= 3) { + $format = \func_get_arg(2); + } else { + // will be deprecated in version 4 + $format = null; + } + + $context = parent::createChildContext($parentContext, $attribute, $format); + // format is already included in the cache_key of the parent. + $context['cache_key'] = $this->getCacheKey($format, $context); + + return $context; + } + + /** + * Builds the cache key for the attributes cache. + * + * The key must be different for every option in the context that could change which attributes should be handled. * * @param string|null $format * @param array $context @@ -382,8 +405,13 @@ private function isMaxDepthReached(array $attributesMetadata, $class, $attribute */ private function getCacheKey($format, array $context) { + unset($context['cache_key']); // avoid artificially different keys try { - return md5($format.serialize($context)); + return md5($format.serialize([ + 'context' => $context, + 'ignored' => $this->ignoredAttributes, + 'camelized' => $this->camelizedAttributes, + ])); } catch (\Exception $exception) { // The context cannot be serialized, skip the cache return false; diff --git a/vendor/symfony/serializer/Normalizer/GetSetMethodNormalizer.php b/vendor/symfony/serializer/Normalizer/GetSetMethodNormalizer.php index d4be31d3d1..7742da7bc0 100644 --- a/vendor/symfony/serializer/Normalizer/GetSetMethodNormalizer.php +++ b/vendor/symfony/serializer/Normalizer/GetSetMethodNormalizer.php @@ -109,7 +109,7 @@ protected function extractAttributes($object, $format = null, array $context = [ $attributeName = lcfirst(substr($method->name, 0 === strpos($method->name, 'is') ? 2 : 3)); - if ($this->isAllowedAttribute($object, $attributeName)) { + if ($this->isAllowedAttribute($object, $attributeName, $format, $context)) { $attributes[] = $attributeName; } } diff --git a/vendor/symfony/serializer/Normalizer/PropertyNormalizer.php b/vendor/symfony/serializer/Normalizer/PropertyNormalizer.php index ece267873f..84047e82c6 100644 --- a/vendor/symfony/serializer/Normalizer/PropertyNormalizer.php +++ b/vendor/symfony/serializer/Normalizer/PropertyNormalizer.php @@ -102,7 +102,7 @@ protected function extractAttributes($object, $format = null, array $context = [ do { foreach ($reflectionObject->getProperties() as $property) { - if (!$this->isAllowedAttribute($reflectionObject->getName(), $property->name)) { + if (!$this->isAllowedAttribute($reflectionObject->getName(), $property->name, $format, $context)) { continue; } diff --git a/vendor/symfony/serializer/Tests/Fixtures/serialization.xml b/vendor/symfony/serializer/Tests/Fixtures/serialization.xml index 9ba51cbfdf..9fe4143e73 100644 --- a/vendor/symfony/serializer/Tests/Fixtures/serialization.xml +++ b/vendor/symfony/serializer/Tests/Fixtures/serialization.xml @@ -2,7 +2,7 @@ <serializer xmlns="http://symfony.com/schema/dic/serializer-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/serializer-mapping http://symfony.com/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/serializer-mapping https://symfony.com/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd"> <class name="Symfony\Component\Serializer\Tests\Fixtures\GroupDummy"> <attribute name="foo"> diff --git a/vendor/symfony/serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php b/vendor/symfony/serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php index fe56c38ae4..8948017475 100644 --- a/vendor/symfony/serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php +++ b/vendor/symfony/serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php @@ -91,6 +91,23 @@ public function testDenormalize() $this->assertTrue($obj->isBaz()); } + public function testIgnoredAttributesInContext() + { + $ignoredAttributes = ['foo', 'bar', 'baz', 'object']; + $this->normalizer->setIgnoredAttributes($ignoredAttributes); + $obj = new GetSetDummy(); + $obj->setFoo('foo'); + $obj->setBar('bar'); + $obj->setCamelCase(true); + $this->assertEquals( + [ + 'fooBar' => 'foobar', + 'camelCase' => true, + ], + $this->normalizer->normalize($obj, 'any') + ); + } + public function testDenormalizeWithObject() { $data = new \stdClass(); diff --git a/vendor/symfony/serializer/Tests/Normalizer/ObjectNormalizerTest.php b/vendor/symfony/serializer/Tests/Normalizer/ObjectNormalizerTest.php index 4068479c87..b30739714b 100644 --- a/vendor/symfony/serializer/Tests/Normalizer/ObjectNormalizerTest.php +++ b/vendor/symfony/serializer/Tests/Normalizer/ObjectNormalizerTest.php @@ -315,6 +315,30 @@ public function testGroupsDenormalizeWithNameConverter() ); } + public function testObjectToPopulateNoMatch() + { + $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader())); + $this->normalizer = new ObjectNormalizer($classMetadataFactory, null, null, new PhpDocExtractor()); + new Serializer([$this->normalizer]); + + $objectToPopulate = new ObjectInner(); + $objectToPopulate->foo = 'foo'; + + $outer = $this->normalizer->denormalize([ + 'foo' => 'foo', + 'inner' => [ + 'bar' => 'bar', + ], + ], ObjectOuter::class, null, [ObjectNormalizer::OBJECT_TO_POPULATE => $objectToPopulate]); + + $this->assertInstanceOf(ObjectOuter::class, $outer); + $inner = $outer->getInner(); + $this->assertInstanceOf(ObjectInner::class, $inner); + $this->assertNotSame($objectToPopulate, $inner); + $this->assertSame('bar', $inner->bar); + $this->assertNull($inner->foo); + } + /** * @dataProvider provideCallbacks */ @@ -356,6 +380,16 @@ public function testIgnoredAttributes() ['fooBar' => 'foobar'], $this->normalizer->normalize($obj, 'any') ); + + $this->normalizer->setIgnoredAttributes(['foo', 'baz', 'camelCase', 'object']); + + $this->assertEquals( + [ + 'fooBar' => 'foobar', + 'bar' => 'bar', + ], + $this->normalizer->normalize($obj, 'any') + ); } public function testIgnoredAttributesDenormalize() @@ -936,6 +970,9 @@ class ObjectOuter { public $foo; public $bar; + /** + * @var ObjectInner + */ private $inner; private $date; diff --git a/vendor/symfony/translation/DataCollectorTranslator.php b/vendor/symfony/translation/DataCollectorTranslator.php index 6f826dfaa6..7eaf928e7f 100644 --- a/vendor/symfony/translation/DataCollectorTranslator.php +++ b/vendor/symfony/translation/DataCollectorTranslator.php @@ -11,12 +11,13 @@ namespace Symfony\Component\Translation; +use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface; use Symfony\Component\Translation\Exception\InvalidArgumentException; /** * @author Abdellatif Ait boudad <a.aitboudad@gmail.com> */ -class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInterface +class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInterface, WarmableInterface { const MESSAGE_DEFINED = 0; const MESSAGE_MISSING = 1; @@ -87,6 +88,16 @@ public function getCatalogue($locale = null) return $this->translator->getCatalogue($locale); } + /** + * {@inheritdoc} + */ + public function warmUp($cacheDir) + { + if ($this->translator instanceof WarmableInterface) { + $this->translator->warmUp($cacheDir); + } + } + /** * Gets the fallback locales. * diff --git a/vendor/symfony/translation/Dumper/PoFileDumper.php b/vendor/symfony/translation/Dumper/PoFileDumper.php index e9673b6d29..0f7e6fa834 100644 --- a/vendor/symfony/translation/Dumper/PoFileDumper.php +++ b/vendor/symfony/translation/Dumper/PoFileDumper.php @@ -40,7 +40,7 @@ public function formatCatalogue(MessageCatalogue $messages, $domain, array $opti $newLine = true; } $output .= sprintf('msgid "%s"'."\n", $this->escape($source)); - $output .= sprintf('msgstr "%s"', $this->escape($target)); + $output .= sprintf('msgstr "%s"'."\n", $this->escape($target)); } return $output; diff --git a/vendor/symfony/translation/Resources/bin/translation-status.php b/vendor/symfony/translation/Resources/bin/translation-status.php index acc8b4e227..0d37c3e0aa 100644 --- a/vendor/symfony/translation/Resources/bin/translation-status.php +++ b/vendor/symfony/translation/Resources/bin/translation-status.php @@ -159,6 +159,11 @@ function printTitle($title) function printTable($translations, $verboseOutput) { + if (0 === count($translations)) { + echo 'No translations found'; + + return; + } $longestLocaleNameLength = max(array_map('strlen', array_keys($translations))); foreach ($translations as $locale => $translation) { diff --git a/vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php b/vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php index d694a6dd3f..960ec2df65 100644 --- a/vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php +++ b/vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php @@ -20,7 +20,7 @@ class PoFileDumperTest extends TestCase public function testFormatCatalogue() { $catalogue = new MessageCatalogue('en'); - $catalogue->add(['foo' => 'bar']); + $catalogue->add(['foo' => 'bar', 'bar' => 'foo']); $dumper = new PoFileDumper(); diff --git a/vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php b/vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php index 24bc65ba24..e46da5a7e8 100644 --- a/vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php +++ b/vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php @@ -20,11 +20,10 @@ class YamlFileDumperTest extends TestCase public function testTreeFormatCatalogue() { $catalogue = new MessageCatalogue('en'); - $catalogue->add( - [ - 'foo.bar1' => 'value1', - 'foo.bar2' => 'value2', - ]); + $catalogue->add([ + 'foo.bar1' => 'value1', + 'foo.bar2' => 'value2', + ]); $dumper = new YamlFileDumper(); @@ -34,11 +33,10 @@ public function testTreeFormatCatalogue() public function testLinearFormatCatalogue() { $catalogue = new MessageCatalogue('en'); - $catalogue->add( - [ - 'foo.bar1' => 'value1', - 'foo.bar2' => 'value2', - ]); + $catalogue->add([ + 'foo.bar1' => 'value1', + 'foo.bar2' => 'value2', + ]); $dumper = new YamlFileDumper(); diff --git a/vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php b/vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php index 4bf2ee6545..d8e2c1993b 100644 --- a/vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php +++ b/vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php @@ -23,7 +23,7 @@ public function testLoad() $resource = __DIR__.'/../fixtures/resources.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); - $this->assertEquals(['foo' => 'bar'], $catalogue->all('domain1')); + $this->assertEquals(['foo' => 'bar', 'bar' => 'foo'], $catalogue->all('domain1')); $this->assertEquals('en', $catalogue->getLocale()); $this->assertEquals([new FileResource($resource)], $catalogue->getResources()); } diff --git a/vendor/symfony/translation/Tests/TranslatorCacheTest.php b/vendor/symfony/translation/Tests/TranslatorCacheTest.php index decda70cc4..6c94e14c54 100644 --- a/vendor/symfony/translation/Tests/TranslatorCacheTest.php +++ b/vendor/symfony/translation/Tests/TranslatorCacheTest.php @@ -198,7 +198,7 @@ public function testPrimaryAndFallbackCataloguesContainTheSameMessagesRegardless * messages provided by the loader. This must also be the case when these catalogues * are (internally) read from a cache. * - * Optimizations inside the translator must not change this behaviour. + * Optimizations inside the translator must not change this behavior. */ /* diff --git a/vendor/symfony/translation/Tests/fixtures/resources.po b/vendor/symfony/translation/Tests/fixtures/resources.po index ccfce6bb98..a20e619828 100644 --- a/vendor/symfony/translation/Tests/fixtures/resources.po +++ b/vendor/symfony/translation/Tests/fixtures/resources.po @@ -5,4 +5,7 @@ msgstr "" "Language: en\n" msgid "foo" -msgstr "bar" \ No newline at end of file +msgstr "bar" + +msgid "bar" +msgstr "foo" diff --git a/vendor/symfony/translation/composer.json b/vendor/symfony/translation/composer.json index 45ff664ca4..93c1236f27 100644 --- a/vendor/symfony/translation/composer.json +++ b/vendor/symfony/translation/composer.json @@ -22,7 +22,9 @@ "require-dev": { "symfony/config": "~2.8|~3.0|~4.0", "symfony/dependency-injection": "~3.4|~4.0", + "symfony/http-kernel": "~3.4|~4.0", "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/var-dumper": "~3.4|~4.0", "symfony/yaml": "~3.4|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", "psr/log": "~1.0" diff --git a/vendor/symfony/validator/Constraint.php b/vendor/symfony/validator/Constraint.php index b1a5e0c1a2..349698eb1a 100644 --- a/vendor/symfony/validator/Constraint.php +++ b/vendor/symfony/validator/Constraint.php @@ -105,6 +105,7 @@ public static function getErrorName($errorCode) */ public function __construct($options = null) { + $defaultOption = $this->getDefaultOption(); $invalidOptions = []; $missingOptions = array_flip((array) $this->getRequiredOptions()); $knownOptions = get_object_vars($this); @@ -112,8 +113,12 @@ public function __construct($options = null) // The "groups" option is added to the object lazily $knownOptions['groups'] = true; - if (\is_array($options) && \count($options) >= 1 && isset($options['value']) && !property_exists($this, 'value')) { - $options[$this->getDefaultOption()] = $options['value']; + if (\is_array($options) && isset($options['value']) && !property_exists($this, 'value')) { + if (null === $defaultOption) { + throw new ConstraintDefinitionException(sprintf('No default option is configured for constraint "%s".', \get_class($this))); + } + + $options[$defaultOption] = $options['value']; unset($options['value']); } @@ -130,26 +135,24 @@ public function __construct($options = null) } } } elseif (null !== $options && !(\is_array($options) && 0 === \count($options))) { - $option = $this->getDefaultOption(); - - if (null === $option) { - throw new ConstraintDefinitionException(sprintf('No default option is configured for constraint %s', \get_class($this))); + if (null === $defaultOption) { + throw new ConstraintDefinitionException(sprintf('No default option is configured for constraint "%s".', \get_class($this))); } - if (\array_key_exists($option, $knownOptions)) { - $this->$option = $options; - unset($missingOptions[$option]); + if (\array_key_exists($defaultOption, $knownOptions)) { + $this->$defaultOption = $options; + unset($missingOptions[$defaultOption]); } else { - $invalidOptions[] = $option; + $invalidOptions[] = $defaultOption; } } if (\count($invalidOptions) > 0) { - throw new InvalidOptionsException(sprintf('The options "%s" do not exist in constraint %s', implode('", "', $invalidOptions), \get_class($this)), $invalidOptions); + throw new InvalidOptionsException(sprintf('The options "%s" do not exist in constraint "%s".', implode('", "', $invalidOptions), \get_class($this)), $invalidOptions); } if (\count($missingOptions) > 0) { - throw new MissingOptionsException(sprintf('The options "%s" must be set for constraint %s', implode('", "', array_keys($missingOptions)), \get_class($this)), array_keys($missingOptions)); + throw new MissingOptionsException(sprintf('The options "%s" must be set for constraint "%s".', implode('", "', array_keys($missingOptions)), \get_class($this)), array_keys($missingOptions)); } } @@ -173,7 +176,7 @@ public function __set($option, $value) return; } - throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint %s', $option, \get_class($this)), [$option]); + throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint "%s".', $option, \get_class($this)), [$option]); } /** @@ -199,7 +202,7 @@ public function __get($option) return $this->groups; } - throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint %s', $option, \get_class($this)), [$option]); + throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint "%s".', $option, \get_class($this)), [$option]); } /** @@ -229,12 +232,13 @@ public function addImplicitGroupName($group) * * Override this method to define a default option. * - * @return string + * @return string|null * * @see __construct() */ public function getDefaultOption() { + return null; } /** @@ -256,7 +260,7 @@ public function getRequiredOptions() * * By default, this is the fully qualified name of the constraint class * suffixed with "Validator". You can override this method to change that - * behaviour. + * behavior. * * @return string */ diff --git a/vendor/symfony/validator/Constraints/Collection.php b/vendor/symfony/validator/Constraints/Collection.php index 21427722d9..86418690b8 100644 --- a/vendor/symfony/validator/Constraints/Collection.php +++ b/vendor/symfony/validator/Constraints/Collection.php @@ -68,7 +68,7 @@ protected function initializeNestedConstraints() } if (!$field instanceof Optional && !$field instanceof Required) { - $this->fields[$fieldName] = $field = new Required($field); + $this->fields[$fieldName] = new Required($field); } } } diff --git a/vendor/symfony/validator/Constraints/Count.php b/vendor/symfony/validator/Constraints/Count.php index 8de10edfc8..b11f994f58 100644 --- a/vendor/symfony/validator/Constraints/Count.php +++ b/vendor/symfony/validator/Constraints/Count.php @@ -43,6 +43,9 @@ public function __construct($options = null) 'min' => $options, 'max' => $options, ]; + } elseif (\is_array($options) && isset($options['value']) && !isset($options['min']) && !isset($options['max'])) { + $options['min'] = $options['max'] = $options['value']; + unset($options['value']); } parent::__construct($options); diff --git a/vendor/symfony/validator/Constraints/Length.php b/vendor/symfony/validator/Constraints/Length.php index 79aa473204..996a1e479f 100644 --- a/vendor/symfony/validator/Constraints/Length.php +++ b/vendor/symfony/validator/Constraints/Length.php @@ -47,6 +47,9 @@ public function __construct($options = null) 'min' => $options, 'max' => $options, ]; + } elseif (\is_array($options) && isset($options['value']) && !isset($options['min']) && !isset($options['max'])) { + $options['min'] = $options['max'] = $options['value']; + unset($options['value']); } parent::__construct($options); diff --git a/vendor/symfony/validator/Mapping/Cache/Psr6Cache.php b/vendor/symfony/validator/Mapping/Cache/Psr6Cache.php index 73c9513c16..a99d3ae700 100644 --- a/vendor/symfony/validator/Mapping/Cache/Psr6Cache.php +++ b/vendor/symfony/validator/Mapping/Cache/Psr6Cache.php @@ -70,6 +70,11 @@ public function write(ClassMetadata $metadata) */ private function escapeClassName($class) { + if (false !== strpos($class, '@')) { + // anonymous class: replace all PSR6-reserved characters + return str_replace(["\0", '\\', '/', '@', ':', '{', '}', '(', ')'], '.', $class); + } + return str_replace('\\', '.', $class); } } diff --git a/vendor/symfony/validator/Resources/translations/validators.ar.xlf b/vendor/symfony/validator/Resources/translations/validators.ar.xlf index eacd8d777d..12f26fdc88 100644 --- a/vendor/symfony/validator/Resources/translations/validators.ar.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.ar.xlf @@ -330,6 +330,10 @@ <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>رمز المعرّف نشاط تجاري (BIC) هذا لا يرتبط مع IBAN {{ iban }}.</target> </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>هذه القيمة يجب أن تكون صالحة ل JSON.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.bg.xlf b/vendor/symfony/validator/Resources/translations/validators.bg.xlf index bd09da5d0e..1db88086cf 100644 --- a/vendor/symfony/validator/Resources/translations/validators.bg.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.bg.xlf @@ -36,23 +36,23 @@ </trans-unit> <trans-unit id="9"> <source>This field was not expected.</source> - <target>Това поле не се е очаквало.</target> + <target>Полето не се е очаквало.</target> </trans-unit> <trans-unit id="10"> <source>This field is missing.</source> - <target>Това поле липсва.</target> + <target>Полето липсва.</target> </trans-unit> <trans-unit id="11"> <source>This value is not a valid date.</source> - <target>Стойността не е валидна дата (date).</target> + <target>Стойността не е валидна дата.</target> </trans-unit> <trans-unit id="12"> <source>This value is not a valid datetime.</source> - <target>Стойността не е валидна дата (datetime).</target> + <target>Стойността не е валидна дата и час.</target> </trans-unit> <trans-unit id="13"> <source>This value is not a valid email address.</source> - <target>Стойността не е валиден email адрес.</target> + <target>Стойността не е валиден имейл адрес.</target> </trans-unit> <trans-unit id="14"> <source>The file could not be found.</source> @@ -68,7 +68,7 @@ </trans-unit> <trans-unit id="17"> <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source> - <target>Майм типа на файла е невалиден ({{ type }}). Разрешени майм типове са {{ types }}.</target> + <target>Mime типа на файла е невалиден ({{ type }}). Разрешени mime типове са {{ types }}.</target> </trans-unit> <trans-unit id="18"> <source>This value should be {{ limit }} or less.</source> @@ -104,7 +104,7 @@ </trans-unit> <trans-unit id="26"> <source>This value is not a valid time.</source> - <target>Стойността не е валидно време (time).</target> + <target>Стойността не е валидно време.</target> </trans-unit> <trans-unit id="27"> <source>This value is not a valid URL.</source> @@ -216,35 +216,35 @@ </trans-unit> <trans-unit id="57"> <source>Invalid card number.</source> - <target>Невалиден номер на картата.</target> + <target>Невалиден номер на карта.</target> </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> - <target>Неподдържан тип карта или невалиден номер на картата.</target> + <target>Неподдържан тип карта или невалиден номер на карта.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> - <target>Невалиден Международен номер на банкова сметка (IBAN).</target> + <target>Това не е валиден Международен номер на банкова сметка (IBAN).</target> </trans-unit> <trans-unit id="60"> <source>This value is not a valid ISBN-10.</source> - <target>Невалиден ISBN-10.</target> + <target>Стойността не е валиден ISBN-10.</target> </trans-unit> <trans-unit id="61"> <source>This value is not a valid ISBN-13.</source> - <target>Невалиден ISBN-13.</target> + <target>Стойността не е валиден ISBN-13.</target> </trans-unit> <trans-unit id="62"> <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source> - <target>Невалидна стойност както за ISBN-10, така и за ISBN-13 .</target> + <target>Стойността не е нито валиден ISBN-10, нито валиден ISBN-13.</target> </trans-unit> <trans-unit id="63"> <source>This value is not a valid ISSN.</source> - <target>Невалиден Международен стандартен сериен номер (ISSN).</target> + <target>Стойността не е валиден ISSN.</target> </trans-unit> <trans-unit id="64"> <source>This value is not a valid currency.</source> - <target>Невалидна валута.</target> + <target>Стойността не е валидна валута.</target> </trans-unit> <trans-unit id="65"> <source>This value should be equal to {{ compared_value }}.</source> @@ -308,11 +308,11 @@ </trans-unit> <trans-unit id="80"> <source>This value does not match the expected {{ charset }} charset.</source> - <target>Стойността не съвпада с {{ charset }}.</target> + <target>Стойността не съвпада с очакваната {{ charset }} кодировка.</target> </trans-unit> <trans-unit id="81"> <source>This is not a valid Business Identifier Code (BIC).</source> - <target>Невалиден бизнес идентификационен код (BIC).</target> + <target>Това не е валиден Бизнес идентификационен код (BIC).</target> </trans-unit> <trans-unit id="82"> <source>Error</source> @@ -324,15 +324,15 @@ </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> - <target>Тази стойност трябва да бъде кратно число на {{ compared_value }}.</target> + <target>Стойността трябва да бъде кратно число на {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> - <target>Този бизнес идентификационен код (BIC) не е свързана с IBAN {{ iban }}.</target> + <target>Бизнес идентификационния код (BIC) не е свързан с IBAN {{ iban }}.</target> </trans-unit> <trans-unit id="86"> <source>This value should be valid JSON.</source> - <target>Тази стойност трябва да е валидна JSON.</target> + <target>Стойността трябва да е валиден JSON.</target> </trans-unit> </body> </file> diff --git a/vendor/symfony/validator/Resources/translations/validators.cs.xlf b/vendor/symfony/validator/Resources/translations/validators.cs.xlf index 4b966698f7..e637d09aa9 100644 --- a/vendor/symfony/validator/Resources/translations/validators.cs.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.cs.xlf @@ -318,6 +318,22 @@ <source>Error</source> <target>Chyba</target> </trans-unit> + <trans-unit id="83"> + <source>This is not a valid UUID.</source> + <target>Tato hodnota není platné UUID.</target> + </trans-unit> + <trans-unit id="84"> + <source>This value should be a multiple of {{ compared_value }}.</source> + <target>Tato hodnota musí být násobek hodnoty {{ compared_value }}.</target> + </trans-unit> + <trans-unit id="85"> + <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> + <target>Bankovní identifikační kód (BIC) neodpovídá mezinárodnímu číslu účtu (IBAN) {{ iban }}.</target> + </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>Tato hodnota musí být validní JSON.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.de.xlf b/vendor/symfony/validator/Resources/translations/validators.de.xlf index aab53e727b..f33e4d602c 100644 --- a/vendor/symfony/validator/Resources/translations/validators.de.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.de.xlf @@ -330,6 +330,38 @@ <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Diese internationale Bankleitzahl (BIC) ist nicht mit der IBAN {{ iban }} assoziiert.</target> </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>Dieser Wert sollte gültiges JSON sein.</target> + </trans-unit> + <trans-unit id="87"> + <source>This collection should contain only unique elements.</source> + <target>Diese Sammlung darf keine doppelten Elemente enthalten.</target> + </trans-unit> + <trans-unit id="88"> + <source>This value should be positive.</source> + <target>Diese Zahl sollte positiv sein.</target> + </trans-unit> + <trans-unit id="89"> + <source>This value should be either positive or zero.</source> + <target>Diese Zahl sollte entweder positiv oder 0 sein.</target> + </trans-unit> + <trans-unit id="90"> + <source>This value should be negative.</source> + <target>Diese Zahl sollte negativ sein.</target> + </trans-unit> + <trans-unit id="91"> + <source>This value should be either negative or zero.</source> + <target>Diese Zahl sollte entweder negativ oder 0 sein.</target> + </trans-unit> + <trans-unit id="92"> + <source>This value is not a valid timezone.</source> + <target>Dieser Wert ist keine gültige Zeitzone.</target> + </trans-unit> + <trans-unit id="93"> + <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> + <target>Dieses Passwort ist Teil eines Datenlecks, es darf nicht verwendet werden.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.en.xlf b/vendor/symfony/validator/Resources/translations/validators.en.xlf index 465ad220d8..d5d9d20997 100644 --- a/vendor/symfony/validator/Resources/translations/validators.en.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.en.xlf @@ -334,6 +334,34 @@ <source>This value should be valid JSON.</source> <target>This value should be valid JSON.</target> </trans-unit> + <trans-unit id="87"> + <source>This collection should contain only unique elements.</source> + <target>This collection should contain only unique elements.</target> + </trans-unit> + <trans-unit id="88"> + <source>This value should be positive.</source> + <target>This value should be positive.</target> + </trans-unit> + <trans-unit id="89"> + <source>This value should be either positive or zero.</source> + <target>This value should be either positive or zero.</target> + </trans-unit> + <trans-unit id="90"> + <source>This value should be negative.</source> + <target>This value should be negative.</target> + </trans-unit> + <trans-unit id="91"> + <source>This value should be either negative or zero.</source> + <target>This value should be either negative or zero.</target> + </trans-unit> + <trans-unit id="92"> + <source>This value is not a valid timezone.</source> + <target>This value is not a valid timezone.</target> + </trans-unit> + <trans-unit id="93"> + <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> + <target>This password has been leaked in a data breach, it must not be used. Please use another password.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.fr.xlf b/vendor/symfony/validator/Resources/translations/validators.fr.xlf index 7b1799d533..9b021cd682 100644 --- a/vendor/symfony/validator/Resources/translations/validators.fr.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.fr.xlf @@ -334,6 +334,34 @@ <source>This value should be valid JSON.</source> <target>Cette valeur doit être un JSON valide.</target> </trans-unit> + <trans-unit id="87"> + <source>This collection should contain only unique elements.</source> + <target>Cette collection ne doit pas comporter de doublons.</target> + </trans-unit> + <trans-unit id="88"> + <source>This value should be positive.</source> + <target>Cette valeur doit être strictement positive.</target> + </trans-unit> + <trans-unit id="89"> + <source>This value should be either positive or zero.</source> + <target>Cette valeur doit être supérieure ou égale à zéro.</target> + </trans-unit> + <trans-unit id="90"> + <source>This value should be negative.</source> + <target>Cette valeur doit être strictement négative.</target> + </trans-unit> + <trans-unit id="91"> + <source>This value should be either negative or zero.</source> + <target>Cette valeur doit être inférieure ou égale à zéro.</target> + </trans-unit> + <trans-unit id="92"> + <source>This value is not a valid timezone.</source> + <target>Cette valeur n'est pas un fuseau horaire valide.</target> + </trans-unit> + <trans-unit id="93"> + <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> + <target>Ce mot de passe a été divulgué lors d'une fuite de données, il ne doit plus être utilisé. Veuillez utiliser un autre mot de passe.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.hu.xlf b/vendor/symfony/validator/Resources/translations/validators.hu.xlf index 30c3cc399d..300eb5f68f 100644 --- a/vendor/symfony/validator/Resources/translations/validators.hu.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.hu.xlf @@ -330,6 +330,34 @@ <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> <target>Ez a Bankazonosító kód (BIC) nem kapcsolódik az IBAN kódhoz ({{ iban }}).</target> </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>Ez az érték érvényes JSON kell, hogy legyen.</target> + </trans-unit> + <trans-unit id="87"> + <source>This value should be positive.</source> + <target>Ennek az értéknek pozitívnak kell lennie.</target> + </trans-unit> + <trans-unit id="88"> + <source>This value should be either positive or zero.</source> + <target>Ennek az értéknek pozitívnak vagy nullának kell lennie.</target> + </trans-unit> + <trans-unit id="89"> + <source>This value should be negative.</source> + <target>Ennek az értéknek negatívnak kell lennie.</target> + </trans-unit> + <trans-unit id="90"> + <source>This value should be either negative or zero.</source> + <target>Ennek az értéknek negatívnak vagy nullának kell lennie.</target> + </trans-unit> + <trans-unit id="91"> + <source>This collection should contain only unique elements.</source> + <target>Ez a gyűjtemény csak egyedi elemeket tartalmazhat.</target> + </trans-unit> + <trans-unit id="92"> + <source>This value is not a valid timezone.</source> + <target>Ez az érték nem egy érvényes időzóna.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.lt.xlf b/vendor/symfony/validator/Resources/translations/validators.lt.xlf index 02eece5965..79171bc0df 100644 --- a/vendor/symfony/validator/Resources/translations/validators.lt.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.lt.xlf @@ -334,6 +334,34 @@ <source>This value should be valid JSON.</source> <target>Ši reikšmė turi būti tinkamo JSON formato.</target> </trans-unit> + <trans-unit id="87"> + <source>This collection should contain only unique elements.</source> + <target>Sąraše turi būti tik unikalios reikšmės.</target> + </trans-unit> + <trans-unit id="88"> + <source>This value should be positive.</source> + <target>Reikšmė turi būti teigiama.</target> + </trans-unit> + <trans-unit id="89"> + <source>This value should be either positive or zero.</source> + <target>Reikšmė turi būti teigiama arba lygi nuliui.</target> + </trans-unit> + <trans-unit id="90"> + <source>This value should be negative.</source> + <target>Reikšmė turi būti neigiama.</target> + </trans-unit> + <trans-unit id="91"> + <source>This value should be either negative or zero.</source> + <target>Reikšmė turi būti neigiama arba lygi nuliui.</target> + </trans-unit> + <trans-unit id="92"> + <source>This value is not a valid timezone.</source> + <target>Reikšmė nėra tinkama laiko juosta.</target> + </trans-unit> + <trans-unit id="93"> + <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> + <target>Slaptažodis yra nutekėjęs duomenų saugumo pažeidime, jo naudoti negalima. Prašome naudoti kitą slaptažodį.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.sr_Latn.xlf b/vendor/symfony/validator/Resources/translations/validators.sr_Latn.xlf index 9ac1ad6bce..1c57f20162 100644 --- a/vendor/symfony/validator/Resources/translations/validators.sr_Latn.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.sr_Latn.xlf @@ -220,7 +220,7 @@ </trans-unit> <trans-unit id="58"> <source>Unsupported card type or invalid card number.</source> - <target>Tip kartije nije podržan ili broj kartice nije validan.</target> + <target>Tip kartice nije podržan ili broj kartice nije validan.</target> </trans-unit> <trans-unit id="59"> <source>This is not a valid International Bank Account Number (IBAN).</source> @@ -324,7 +324,7 @@ </trans-unit> <trans-unit id="84"> <source>This value should be a multiple of {{ compared_value }}.</source> - <target>Ova vrednost bi trebalo da bude višestruko veća od {{ compared_value }}.</target> + <target>Ova vrednost bi trebalo da bude deljiva sa {{ compared_value }}.</target> </trans-unit> <trans-unit id="85"> <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> diff --git a/vendor/symfony/validator/Resources/translations/validators.sv.xlf b/vendor/symfony/validator/Resources/translations/validators.sv.xlf index 40dd63e293..b3e8f0f42f 100644 --- a/vendor/symfony/validator/Resources/translations/validators.sv.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.sv.xlf @@ -318,6 +318,22 @@ <source>Error</source> <target>Fel</target> </trans-unit> + <trans-unit id="83"> + <source>This is not a valid UUID.</source> + <target>Detta är inte ett giltigt UUID.</target> + </trans-unit> + <trans-unit id="84"> + <source>This value should be a multiple of {{ compared_value }}.</source> + <target>Detta värde ska vara en multipel av {{ compared_value }}.</target> + </trans-unit> + <trans-unit id="85"> + <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> + <target>Denna BIC-koden är inte associerad med IBAN {{ iban }}.</target> + </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>Detta värde ska vara giltig JSON.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.tl.xlf b/vendor/symfony/validator/Resources/translations/validators.tl.xlf index 75dc329589..1c408585b2 100644 --- a/vendor/symfony/validator/Resources/translations/validators.tl.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.tl.xlf @@ -314,6 +314,54 @@ <source>This is not a valid Business Identifier Code (BIC).</source> <target>Ito ay hindi isang balidong Business Identifier Code (BIC).</target> </trans-unit> + <trans-unit id="82"> + <source>Error</source> + <target>Error</target> + </trans-unit> + <trans-unit id="83"> + <source>This is not a valid UUID.</source> + <target>Ito ay hindi wastong UUID.</target> + </trans-unit> + <trans-unit id="84"> + <source>This value should be a multiple of {{ compared_value }}.</source> + <target>Ang halagang ito ay dapat multiple ng {{ compared_value }}.</target> + </trans-unit> + <trans-unit id="85"> + <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> + <target>Ang Business Identifier Code (BIC) na ito ay walang kaugnayan sa IBAN {{ iban }}.</target> + </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>Ang halagang ito ay dapat naka wastong JSON.</target> + </trans-unit> + <trans-unit id="87"> + <source>This collection should contain only unique elements.</source> + <target>Ang mga elemento ng koleksyong ito ay dapat magkakaiba.</target> + </trans-unit> + <trans-unit id="88"> + <source>This value should be positive.</source> + <target>Ang halagang ito ay dapat positibo.</target> + </trans-unit> + <trans-unit id="89"> + <source>This value should be either positive or zero.</source> + <target>Ang halagang ito ay dapat positibo o zero.</target> + </trans-unit> + <trans-unit id="90"> + <source>This value should be negative.</source> + <target>Ang halagang ito ay dapat negatibo.</target> + </trans-unit> + <trans-unit id="91"> + <source>This value should be either negative or zero.</source> + <target>Ang halagang ito ay dapat negatibo o zero.</target> + </trans-unit> + <trans-unit id="92"> + <source>This value is not a valid timezone.</source> + <target>Ang halagang ito ay hindi wastong timezone.</target> + </trans-unit> + <trans-unit id="93"> + <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> + <target>Naikalat ang password na ito sa isang data breach at hindi na dapat gamitin. Mangyaring gumamit ng ibang pang password.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.vi.xlf b/vendor/symfony/validator/Resources/translations/validators.vi.xlf index 750a4d91e2..95dd7d6665 100644 --- a/vendor/symfony/validator/Resources/translations/validators.vi.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.vi.xlf @@ -278,6 +278,90 @@ <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source> <target>Giá trị không được phép giống như {{ compared_value_type }} {{ compared_value }}.</target> </trans-unit> + <trans-unit id="73"> + <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source> + <target>Tỷ lệ bức ảnh quá lớn ({{ ratio }}). Tỷ lệ tối đa cho phép là {{ max_ratio }}.</target> + </trans-unit> + <trans-unit id="74"> + <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source> + <target>Tỷ lệ bức ảnh quá nhỏ ({{ ratio }}). Tỷ lệ tối thiểu mong muốn là {{ min_ratio }}.</target> + </trans-unit> + <trans-unit id="75"> + <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source> + <target>Bức ảnh là hình vuông ({{ width }}x{{ height }}px). Ảnh hình vuông không được phép.</target> + </trans-unit> + <trans-unit id="76"> + <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source> + <target>Bức ảnh theo chiều ngang ({{ width }}x{{ height }}px). Ảnh chiều ngang không được phép.</target> + </trans-unit> + <trans-unit id="77"> + <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source> + <target>Bức ảnh theo chiều dọc ({{ width }}x{{ height }}px). Ảnh chiều dọc không được phép.</target> + </trans-unit> + <trans-unit id="78"> + <source>An empty file is not allowed.</source> + <target>Một file rỗng không được phép.</target> + </trans-unit> + <trans-unit id="79"> + <source>The host could not be resolved.</source> + <target>Máy chủ không thể được tìm thấy.</target> + </trans-unit> + <trans-unit id="80"> + <source>This value does not match the expected {{ charset }} charset.</source> + <target>Giá trị này không đúng định dạng bộ ký tự mong muốn {{ charset }}.</target> + </trans-unit> + <trans-unit id="81"> + <source>This is not a valid Business Identifier Code (BIC).</source> + <target>Giá trị này không đúng định dạng mã định danh doanh nghiệp (BIC).</target> + </trans-unit> + <trans-unit id="82"> + <source>Error</source> + <target>Lỗi</target> + </trans-unit> + <trans-unit id="83"> + <source>This is not a valid UUID.</source> + <target>Giá trị này không đúng định dạng UUID.</target> + </trans-unit> + <trans-unit id="84"> + <source>This value should be a multiple of {{ compared_value }}.</source> + <target>Giá trị này nên là bội số của {{ compared_value }}.</target> + </trans-unit> + <trans-unit id="85"> + <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> + <target>Mã định danh doanh nghiệp (BIC) này không liên kết với IBAN {{ iban }}.</target> + </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>Giá trị này nên đúng định dạng JSON.</target> + </trans-unit> + <trans-unit id="87"> + <source>This collection should contain only unique elements.</source> + <target>Danh sách này chỉ nên chứa các phần tử khác nhau.</target> + </trans-unit> + <trans-unit id="88"> + <source>This value should be positive.</source> + <target>Giá trị này có thể thực hiện được.</target> + </trans-unit> + <trans-unit id="89"> + <source>This value should be either positive or zero.</source> + <target>Giá trị này có thể thực hiện được hoặc bằng không.</target> + </trans-unit> + <trans-unit id="90"> + <source>This value should be negative.</source> + <target>Giá trị này nên bị từ chối.</target> + </trans-unit> + <trans-unit id="91"> + <source>This value should be either negative or zero.</source> + <target>Giá trị này nên bị từ chối hoặc bằng không.</target> + </trans-unit> + <trans-unit id="92"> + <source>This value is not a valid timezone.</source> + <target>Giá trị này không phải là múi giờ hợp lệ.</target> + </trans-unit> + <trans-unit id="93"> + <source>This password has been leaked in a data breach, it must not be used. Please use another password.</source> + <target>Mật khẩu này đã bị rò rỉ dữ liệu, không được sử dụng nữa. Xin vui lòng sử dụng mật khẩu khác.</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Resources/translations/validators.zh_CN.xlf b/vendor/symfony/validator/Resources/translations/validators.zh_CN.xlf index d4ed03ded1..3c2f25c0f7 100644 --- a/vendor/symfony/validator/Resources/translations/validators.zh_CN.xlf +++ b/vendor/symfony/validator/Resources/translations/validators.zh_CN.xlf @@ -310,10 +310,30 @@ <source>This value does not match the expected {{ charset }} charset.</source> <target>该值不符合 {{ charset }} 编码。</target> </trans-unit> + <trans-unit id="81"> + <source>This is not a valid Business Identifier Code (BIC).</source> + <target>这不是有效的业务标识符代码(BIC)。</target> + </trans-unit> <trans-unit id="82"> <source>Error</source> <target>错误</target> </trans-unit> + <trans-unit id="83"> + <source>This is not a valid UUID.</source> + <target>这不是有效的UUID。</target> + </trans-unit> + <trans-unit id="84"> + <source>This value should be a multiple of {{ compared_value }}.</source> + <target>此值应为 {{ compared_value }} 的倍数。</target> + </trans-unit> + <trans-unit id="85"> + <source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source> + <target>此业务标识符代码(BIC)与IBAN {{ iban }} 无关。</target> + </trans-unit> + <trans-unit id="86"> + <source>This value should be valid JSON.</source> + <target>该值应该是有效的JSON。</target> + </trans-unit> </body> </file> </xliff> diff --git a/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php b/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php index afe1f1a582..f07adb9423 100644 --- a/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php +++ b/vendor/symfony/validator/Test/ConstraintValidatorTestCase.php @@ -29,6 +29,8 @@ */ abstract class ConstraintValidatorTestCase extends TestCase { + use TestCaseSetUpTearDownTrait; + /** * @var ExecutionContextInterface */ @@ -48,7 +50,7 @@ abstract class ConstraintValidatorTestCase extends TestCase protected $constraint; protected $defaultTimezone; - protected function setUp() + private function doSetUp() { $this->group = 'MyGroup'; $this->metadata = null; @@ -70,7 +72,7 @@ protected function setUp() $this->setDefaultTimezone('UTC'); } - protected function tearDown() + private function doTearDown() { $this->restoreDefaultTimezone(); } diff --git a/vendor/symfony/validator/Test/TestCaseSetUpTearDownTrait.php b/vendor/symfony/validator/Test/TestCaseSetUpTearDownTrait.php new file mode 100644 index 0000000000..236e02267b --- /dev/null +++ b/vendor/symfony/validator/Test/TestCaseSetUpTearDownTrait.php @@ -0,0 +1,82 @@ +<?php + +/* + * This file is part of the Symfony package. + * + * (c) Fabien Potencier <fabien@symfony.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Validator\Test; + +use PHPUnit\Framework\TestCase; + +// Auto-adapt to PHPUnit 8 that added a `void` return-type to the setUp/tearDown methods + +if (method_exists(\ReflectionMethod::class, 'hasReturnType') && (new \ReflectionMethod(TestCase::class, 'tearDown'))->hasReturnType()) { + eval(' + namespace Symfony\Component\Validator\Test; + + /** + * @internal + */ + trait TestCaseSetUpTearDownTrait + { + private function doSetUp(): void + { + } + + private function doTearDown(): void + { + } + + protected function setUp(): void + { + $this->doSetUp(); + } + + protected function tearDown(): void + { + $this->doTearDown(); + } + } +'); +} else { + /** + * @internal + */ + trait TestCaseSetUpTearDownTrait + { + /** + * @return void + */ + private function doSetUp() + { + } + + /** + * @return void + */ + private function doTearDown() + { + } + + /** + * @return void + */ + protected function setUp() + { + $this->doSetUp(); + } + + /** + * @return void + */ + protected function tearDown() + { + $this->doTearDown(); + } + } +} diff --git a/vendor/symfony/validator/Tests/ConstraintTest.php b/vendor/symfony/validator/Tests/ConstraintTest.php index 87bac5b0a6..d1f41ce5ee 100644 --- a/vendor/symfony/validator/Tests/ConstraintTest.php +++ b/vendor/symfony/validator/Tests/ConstraintTest.php @@ -225,7 +225,7 @@ public function testOptionsAsDefaultOption() /** * @expectedException \Symfony\Component\Validator\Exception\InvalidOptionsException - * @expectedExceptionMessage The options "0", "5" do not exist + * @expectedExceptionMessage The options "0", "5" do not exist in constraint "Symfony\Component\Validator\Tests\Fixtures\ConstraintA". */ public function testInvalidOptions() { @@ -242,4 +242,13 @@ public function testOptionsWithInvalidInternalPointer() $this->assertEquals('foo', $constraint->property1); } + + /** + * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException + * @expectedExceptionMessage No default option is configured for constraint "Symfony\Component\Validator\Tests\Fixtures\ConstraintB". + */ + public function testAnnotationSetUndefinedDefaultOption() + { + new ConstraintB(['value' => 1]); + } } diff --git a/vendor/symfony/validator/Tests/Constraints/ChoiceValidatorTest.php b/vendor/symfony/validator/Tests/Constraints/ChoiceValidatorTest.php index 1f312cda17..e83cb89977 100644 --- a/vendor/symfony/validator/Tests/Constraints/ChoiceValidatorTest.php +++ b/vendor/symfony/validator/Tests/Constraints/ChoiceValidatorTest.php @@ -55,12 +55,10 @@ public function testNullIsValid() { $this->validator->validate( null, - new Choice( - [ - 'choices' => ['foo', 'bar'], - 'strict' => true, - ] - ) + new Choice([ + 'choices' => ['foo', 'bar'], + 'strict' => true, + ]) ); $this->assertNoViolation(); @@ -102,14 +100,12 @@ public function testValidChoiceCallbackFunction() public function testValidChoiceCallbackClosure() { - $constraint = new Choice( - [ - 'strict' => true, - 'callback' => function () { - return ['foo', 'bar']; - }, - ] - ); + $constraint = new Choice([ + 'strict' => true, + 'callback' => function () { + return ['foo', 'bar']; + }, + ]); $this->validator->validate('bar', $constraint); diff --git a/vendor/symfony/validator/Tests/Constraints/CountValidatorTest.php b/vendor/symfony/validator/Tests/Constraints/CountValidatorTest.php index 8416136fd4..01e23cc3b9 100644 --- a/vendor/symfony/validator/Tests/Constraints/CountValidatorTest.php +++ b/vendor/symfony/validator/Tests/Constraints/CountValidatorTest.php @@ -195,4 +195,13 @@ public function testDefaultOption() $this->assertEquals(5, $constraint->min); $this->assertEquals(5, $constraint->max); } + + public function testConstraintAnnotationDefaultOption() + { + $constraint = new Count(['value' => 5, 'exactMessage' => 'message']); + + $this->assertEquals(5, $constraint->min); + $this->assertEquals(5, $constraint->max); + $this->assertEquals('message', $constraint->exactMessage); + } } diff --git a/vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php b/vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php index 955d8b5564..f1daee534a 100644 --- a/vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php +++ b/vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php @@ -237,11 +237,20 @@ public function testOneCharset($value, $charset, $isValid) } } - public function testConstraintGetDefaultOption() + public function testConstraintDefaultOption() { $constraint = new Length(5); $this->assertEquals(5, $constraint->min); $this->assertEquals(5, $constraint->max); } + + public function testConstraintAnnotationDefaultOption() + { + $constraint = new Length(['value' => 5, 'exactMessage' => 'message']); + + $this->assertEquals(5, $constraint->min); + $this->assertEquals(5, $constraint->max); + $this->assertEquals('message', $constraint->exactMessage); + } } diff --git a/vendor/symfony/validator/Tests/Mapping/Cache/Psr6CacheTest.php b/vendor/symfony/validator/Tests/Mapping/Cache/Psr6CacheTest.php index c11dddbf6f..fcac5e232a 100644 --- a/vendor/symfony/validator/Tests/Mapping/Cache/Psr6CacheTest.php +++ b/vendor/symfony/validator/Tests/Mapping/Cache/Psr6CacheTest.php @@ -23,4 +23,12 @@ public function testNameCollision() $this->cache->write($metadata); $this->assertFalse($this->cache->has('Foo_Bar')); } + + public function testNameWithInvalidChars() + { + $metadata = new ClassMetadata('class@anonymous/path/file'); + + $this->cache->write($metadata); + $this->assertTrue($this->cache->has('class@anonymous/path/file')); + } } diff --git a/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping-non-strings.xml b/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping-non-strings.xml index dfd5edddc5..83945a60d4 100644 --- a/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping-non-strings.xml +++ b/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping-non-strings.xml @@ -2,7 +2,7 @@ <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> <namespace prefix="custom">Symfony\Component\Validator\Tests\Fixtures\</namespace> diff --git a/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.xml b/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.xml index b1426cf4a9..5a7e9d46ee 100644 --- a/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.xml +++ b/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.xml @@ -2,7 +2,7 @@ <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> <namespace prefix="custom">Symfony\Component\Validator\Tests\Fixtures\</namespace> diff --git a/vendor/symfony/validator/Tests/Mapping/Loader/withdoctype.xml b/vendor/symfony/validator/Tests/Mapping/Loader/withdoctype.xml index 0beacc32cd..08d614469e 100644 --- a/vendor/symfony/validator/Tests/Mapping/Loader/withdoctype.xml +++ b/vendor/symfony/validator/Tests/Mapping/Loader/withdoctype.xml @@ -2,6 +2,6 @@ <!DOCTYPE foo> <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> + xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> <class name="Symfony\Component\Validator\Tests\Fixtures\Entity" /> </constraint-mapping> diff --git a/vendor/symfony/validator/Tests/Validator/AbstractValidatorTest.php b/vendor/symfony/validator/Tests/Validator/AbstractValidatorTest.php index ecfc10feb6..884ccc7da0 100644 --- a/vendor/symfony/validator/Tests/Validator/AbstractValidatorTest.php +++ b/vendor/symfony/validator/Tests/Validator/AbstractValidatorTest.php @@ -589,6 +589,30 @@ public function testRecursiveArrayReference() $this->assertNull($violations[0]->getCode()); } + public function testOnlyCascadedArraysAreTraversed() + { + $entity = new Entity(); + $entity->reference = ['key' => new Reference()]; + + $callback = function ($value, ExecutionContextInterface $context) { + $context->addViolation('Message %param%', ['%param%' => 'value']); + }; + + $this->metadata->addPropertyConstraint('reference', new Callback([ + 'callback' => function () {}, + 'groups' => 'Group', + ])); + $this->referenceMetadata->addConstraint(new Callback([ + 'callback' => $callback, + 'groups' => 'Group', + ])); + + $violations = $this->validate($entity, null, 'Group'); + + /* @var ConstraintViolationInterface[] $violations */ + $this->assertCount(0, $violations); + } + public function testArrayTraversalCannotBeDisabled() { $entity = new Entity(); diff --git a/vendor/symfony/validator/Validator/RecursiveContextualValidator.php b/vendor/symfony/validator/Validator/RecursiveContextualValidator.php index 50253c50e1..dc139c36d4 100644 --- a/vendor/symfony/validator/Validator/RecursiveContextualValidator.php +++ b/vendor/symfony/validator/Validator/RecursiveContextualValidator.php @@ -352,24 +352,18 @@ private function validateObject($object, $propertyPath, array $groups, $traversa * Validates each object in a collection against the constraints defined * for their classes. * - * If the parameter $recursive is set to true, nested {@link \Traversable} - * objects are iterated as well. Nested arrays are always iterated, - * regardless of the value of $recursive. + * Nested arrays are also iterated. * * @param iterable $collection The collection * @param string $propertyPath The current property path * @param (string|GroupSequence)[] $groups The validated groups * @param ExecutionContextInterface $context The current execution context - * - * @see ClassNode - * @see CollectionNode */ private function validateEachObjectIn($collection, $propertyPath, array $groups, ExecutionContextInterface $context) { foreach ($collection as $key => $value) { if (\is_array($value)) { - // Arrays are always cascaded, independent of the specified - // traversal strategy + // Also traverse nested arrays $this->validateEachObjectIn( $value, $propertyPath.'['.$key.']', @@ -599,7 +593,8 @@ private function validateClassNode($object, $cacheKey, ClassMetadataInterface $m * in the passed metadata object. Then, if the value is an instance of * {@link \Traversable} and the selected traversal strategy permits it, * the value is traversed and each nested object validated against its own - * constraints. Arrays are always traversed. + * constraints. If the value is an array, it is traversed regardless of + * the given strategy. * * @param mixed $value The validated value * @param object|null $object The current object @@ -658,8 +653,8 @@ private function validateGenericNode($value, $object, $cacheKey, MetadataInterfa $cascadingStrategy = $metadata->getCascadingStrategy(); - // Quit unless we have an array or a cascaded object - if (!\is_array($value) && !($cascadingStrategy & CascadingStrategy::CASCADE)) { + // Quit unless we cascade + if (!($cascadingStrategy & CascadingStrategy::CASCADE)) { return; } diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml index 4ecd828f01..dd2d776fa2 100644 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml +++ b/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml @@ -72,7 +72,7 @@ yaml: | - 2001-07-23 perl-busted: > YAML.pm will be able to emulate this behavior soon. In this regard - it may be somewhat more correct than Python's native behaviour which + it may be somewhat more correct than Python's native behavior which can only use tuples as mapping keys. PyYAML will also need to figure out some clever way to roundtrip structured keys. python: | diff --git a/vendor/twig/twig/CHANGELOG b/vendor/twig/twig/CHANGELOG index 2c563cf95c..ad18602b86 100644 --- a/vendor/twig/twig/CHANGELOG +++ b/vendor/twig/twig/CHANGELOG @@ -1,3 +1,30 @@ +* 1.39.1 (2019-04-16) + + * fixed EscaperNodeVisitor + +* 1.39.0 (2019-04-16) + + * added Traversable support for the length filter + * fixed some wrong location in error messages + * made exception creation faster + * made escaping on ternary expressions (?: and ??) more fine-grained + * added the possibility to give a nice name to string templates (template_from_string function) + * fixed the "with" behavior to always include the globals (for consistency with the "include" and "embed" tags) + * fixed "include" with "ignore missing" when an error loading occurs in the included template + * added support for a new whitespace trimming option ({%~ ~%}, {{~ ~}}, {#~ ~#}) + +* 1.38.4 (2019-03-23) + + * fixed CheckToStringNode implementation (broken when a function/filter is variadic) + +* 1.38.3 (2019-03-21) + + * fixed the spaceless filter so that it behaves like the spaceless tag + * fixed BC break on Environment::resolveTemplate() + * fixed the bundled Autoloader to also load namespaced classes + * allowed Traversable objects to be used in the "with" tag + * allowed Traversable objects to be used in the "with" argument of the "include" and "embed" tags + * 1.38.2 (2019-03-12) * added TemplateWrapper::getTemplateName() diff --git a/vendor/twig/twig/composer.json b/vendor/twig/twig/composer.json index 7eae2f0759..84a08a71fc 100644 --- a/vendor/twig/twig/composer.json +++ b/vendor/twig/twig/composer.json @@ -42,7 +42,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.38-dev" + "dev-master": "1.39-dev" } } } diff --git a/vendor/twig/twig/doc/filters/index.rst b/vendor/twig/twig/doc/filters/index.rst index 8daa961183..1ef94199f8 100644 --- a/vendor/twig/twig/doc/filters/index.rst +++ b/vendor/twig/twig/doc/filters/index.rst @@ -29,6 +29,7 @@ Filters round slice sort + spaceless split striptags title diff --git a/vendor/twig/twig/doc/filters/json_encode.rst b/vendor/twig/twig/doc/filters/json_encode.rst index f02a7a89ac..4a8635a9bc 100644 --- a/vendor/twig/twig/doc/filters/json_encode.rst +++ b/vendor/twig/twig/doc/filters/json_encode.rst @@ -17,7 +17,7 @@ Arguments * ``options``: A bitmask of `json_encode options`_: ``{{ data|json_encode(constant('JSON_PRETTY_PRINT')) }}``. Combine constants using :ref:`bitwise operators<template_logic>`: - ``{{ data|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_HEX_QUOT') }}`` + ``{{ data|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_HEX_QUOT')) }}`` .. _`json_encode`: https://secure.php.net/json_encode .. _`json_encode options`: https://secure.php.net/manual/en/json.constants.php diff --git a/vendor/twig/twig/doc/filters/raw.rst b/vendor/twig/twig/doc/filters/raw.rst index e5e5b12ecd..23e9287fd5 100644 --- a/vendor/twig/twig/doc/filters/raw.rst +++ b/vendor/twig/twig/doc/filters/raw.rst @@ -13,6 +13,8 @@ if ``raw`` is the last filter applied to it: .. note:: + **This note only applies to Twig before versions 1.39 and 2.8**. + Be careful when using the ``raw`` filter inside expressions: .. code-block:: jinja diff --git a/vendor/twig/twig/doc/functions/template_from_string.rst b/vendor/twig/twig/doc/functions/template_from_string.rst index db7db805b1..17711a25ad 100644 --- a/vendor/twig/twig/doc/functions/template_from_string.rst +++ b/vendor/twig/twig/doc/functions/template_from_string.rst @@ -4,6 +4,9 @@ .. versionadded:: 1.11 The ``template_from_string`` function was added in Twig 1.11. +.. versionadded:: 1.39 + The name argument was added in Twig 1.39. + The ``template_from_string`` function loads a template from a string: .. code-block:: jinja @@ -11,6 +14,13 @@ The ``template_from_string`` function loads a template from a string: {{ include(template_from_string("Hello {{ name }}")) }} {{ include(template_from_string(page.template)) }} +To ease debugging, you can also give the template a name that will be part of +any related error message: + +.. code-block:: jinja + + {{ include(template_from_string(page.template, "template for page " ~ page.name)) }} + .. note:: The ``template_from_string`` function is not available by default. You @@ -30,3 +40,4 @@ Arguments --------- * ``template``: The template +* ``name``: A name for the template diff --git a/vendor/twig/twig/doc/templates.rst b/vendor/twig/twig/doc/templates.rst index 91db45aa56..adebd9a143 100644 --- a/vendor/twig/twig/doc/templates.rst +++ b/vendor/twig/twig/doc/templates.rst @@ -844,25 +844,28 @@ Whitespace Control .. versionadded:: 1.1 Tag level whitespace control was added in Twig 1.1. -The first newline after a template tag is removed automatically (like in PHP.) +.. versionadded:: 1.39 + Tag level Line whitespace control was added in Twig 1.39. + +The first newline after a template tag is removed automatically (like in PHP). Whitespace is not further modified by the template engine, so each whitespace (spaces, tabs, newlines etc.) is returned unchanged. -Use the ``spaceless`` tag to remove whitespace *between HTML tags*: +You can also control whitespace on a per tag level. By using the whitespace +control modifiers on your tags, you can trim leading and or trailing whitespace. -.. code-block:: jinja +Twig supports two modifiers: - {% spaceless %} - <div> - <strong>foo bar</strong> - </div> - {% endspaceless %} +* *Whitespace trimming* via the ``-`` modifier: Removes all whitespace + (including newlines); - {# output will be <div><strong>foo bar</strong></div> #} +* *Line whitespace trimming* via the ``~`` modifier: Removes all whitespace + (excluding newlines). Using this modifier on the right disables the default + removal of the first newline inherited from PHP. -In addition to the spaceless tag you can also control whitespace on a per tag -level. By using the whitespace control modifier on your tags, you can trim -leading and or trailing whitespace: +The modifiers can be used on either side of the tags like in ``{%-`` or ``-%}`` +and they consume all whitespace for that side of the tag. It is possible to use +the modifiers on one side of a tag or on both sides: .. code-block:: jinja @@ -871,20 +874,34 @@ leading and or trailing whitespace: {%- if true -%} {{- value -}} {%- endif -%} - {# output 'no spaces' #} -The above sample shows the default whitespace control modifier, and how you can -use it to remove whitespace around tags. Trimming space will consume all whitespace -for that side of the tag. It is possible to use whitespace trimming on one side -of a tag: + <li> + {{ value }} </li> + {# outputs '<li>\n no spaces </li>' #} -.. code-block:: jinja + <li> + {{- value }} </li> + {# outputs '<li>no spaces </li>' #} - {% set value = 'no spaces' %} - <li> {{- value }} </li> + <li> + {{~ value }} </li> + {# outputs '<li>\nno spaces </li>' #} - {# outputs '<li>no spaces </li>' #} +.. tip:: + + In addition to the whitespace modifiers, Twig also has a ``spaceless`` filter + that removes whitespace **between HTML tags**: + + .. code-block:: jinja + + {% filter spaceless %} + <div> + <strong>foo bar</strong> + </div> + {% endfilter %} + + {# output will be <div><strong>foo bar</strong></div> #} Extensions ---------- diff --git a/vendor/twig/twig/ext/twig/php_twig.h b/vendor/twig/twig/ext/twig/php_twig.h index efbe2da2c9..1f8a10c9ee 100644 --- a/vendor/twig/twig/ext/twig/php_twig.h +++ b/vendor/twig/twig/ext/twig/php_twig.h @@ -15,7 +15,7 @@ #ifndef PHP_TWIG_H #define PHP_TWIG_H -#define PHP_TWIG_VERSION "1.38.2" +#define PHP_TWIG_VERSION "1.39.1" #include "php.h" diff --git a/vendor/twig/twig/lib/Twig/Autoloader.php b/vendor/twig/twig/lib/Twig/Autoloader.php index 633d7a582e..e34e2144fc 100644 --- a/vendor/twig/twig/lib/Twig/Autoloader.php +++ b/vendor/twig/twig/lib/Twig/Autoloader.php @@ -45,6 +45,8 @@ public static function autoload($class) if (is_file($file = __DIR__.'/../'.str_replace(['_', "\0"], ['/', ''], $class).'.php')) { require $file; + } elseif (is_file($file = __DIR__.'/../../src/'.str_replace(['Twig\\', '\\', "\0"], ['', '/', ''], $class).'.php')) { + require $file; } } } diff --git a/vendor/twig/twig/phpunit.xml.dist b/vendor/twig/twig/phpunit.xml.dist index ce77327855..0ca6827d57 100644 --- a/vendor/twig/twig/phpunit.xml.dist +++ b/vendor/twig/twig/phpunit.xml.dist @@ -19,6 +19,7 @@ <php> <ini name="error_reporting" value="-1" /> + <ini name="xdebug.overload_var_dump" value="0" /> </php> <listeners> @@ -27,7 +28,7 @@ <filter> <whitelist> - <directory suffix=".php">./lib/Twig/</directory> + <directory suffix=".php">./src/</directory> </whitelist> </filter> </phpunit> diff --git a/vendor/twig/twig/src/Environment.php b/vendor/twig/twig/src/Environment.php index 1bc11cd4ad..fe0818541f 100644 --- a/vendor/twig/twig/src/Environment.php +++ b/vendor/twig/twig/src/Environment.php @@ -41,11 +41,11 @@ */ class Environment { - const VERSION = '1.38.2'; - const VERSION_ID = 13802; - const MAJOR_VERSION = 2; - const MINOR_VERSION = 38; - const RELEASE_VERSION = 2; + const VERSION = '1.39.1'; + const VERSION_ID = 13901; + const MAJOR_VERSION = 1; + const MINOR_VERSION = 39; + const RELEASE_VERSION = 1; const EXTRA_VERSION = ''; protected $charset; @@ -83,7 +83,6 @@ class Environment private $runtimeLoaders = []; private $runtimes = []; private $optionsHash; - private $loading = []; /** * Constructor. @@ -471,6 +470,7 @@ public function loadClass($cls, $name, $index = null) $this->cache->load($key); } + $source = null; if (!class_exists($cls, false)) { $loader = $this->getLoader(); if (!$loader instanceof SourceContextLoaderInterface) { @@ -507,22 +507,7 @@ public function loadClass($cls, $name, $index = null) $this->initRuntime(); } - if (isset($this->loading[$cls])) { - throw new RuntimeError(sprintf('Circular reference detected for Twig template "%s", path: %s.', $name, implode(' -> ', array_merge($this->loading, [$name])))); - } - - $this->loading[$cls] = $name; - - try { - $this->loadedTemplates[$cls] = new $cls($this); - unset($this->loading[$cls]); - } catch (\Exception $e) { - unset($this->loading[$cls]); - - throw $e; - } - - return $this->loadedTemplates[$cls]; + return $this->loadedTemplates[$cls] = new $cls($this); } /** @@ -531,15 +516,21 @@ public function loadClass($cls, $name, $index = null) * This method should not be used as a generic way to load templates. * * @param string $template The template name + * @param string $name An optional name of the template to be used in error messages * * @return TemplateWrapper A template instance representing the given template name * * @throws LoaderError When the template cannot be found * @throws SyntaxError When an error occurred during compilation */ - public function createTemplate($template) + public function createTemplate($template, $name = null) { - $name = sprintf('__string_template__%s', hash('sha256', $template, false)); + $hash = hash('sha256', $template, false); + if (null !== $name) { + $name = sprintf('%s (string template %s)', $name, $hash); + } else { + $name = sprintf('__string_template__%s', $hash); + } $loader = new ChainLoader([ new ArrayLoader([$name => $template]), @@ -597,7 +588,7 @@ public function isTemplateFresh($name, $time) * * @param string|Template|\Twig\TemplateWrapper|array $names A template or an array of templates to try consecutively * - * @return TemplateWrapper + * @return TemplateWrapper|Template * * @throws LoaderError When none of the templates can be found * @throws SyntaxError When an error occurred during compilation @@ -605,13 +596,23 @@ public function isTemplateFresh($name, $time) public function resolveTemplate($names) { if (!\is_array($names)) { - return $this->load($names); + $names = [$names]; } foreach ($names as $name) { + if ($name instanceof Template) { + return $name; + } + if ($name instanceof TemplateWrapper) { + return $name; + } + try { - return $this->load($name); + return $this->loadTemplate($name); } catch (LoaderError $e) { + if (1 === \count($names)) { + throw $e; + } } } diff --git a/vendor/twig/twig/src/Error/Error.php b/vendor/twig/twig/src/Error/Error.php index e43a363746..6dd9b9d4df 100644 --- a/vendor/twig/twig/src/Error/Error.php +++ b/vendor/twig/twig/src/Error/Error.php @@ -63,7 +63,7 @@ class Error extends \Exception * @param Source|string|null $source The source context where the error occurred * @param \Exception $previous The previous exception */ - public function __construct($message, $lineno = -1, $source = null, \Exception $previous = null, $autoGuess = true) + public function __construct($message, $lineno = -1, $source = null, \Exception $previous = null) { if (null === $source) { $name = null; @@ -79,13 +79,7 @@ public function __construct($message, $lineno = -1, $source = null, \Exception $ $this->lineno = $lineno; $this->filename = $name; - - if ($autoGuess && (-1 === $lineno || null === $name || null === $this->sourcePath)) { - $this->guessTemplateInfo(); - } - $this->rawMessage = $message; - $this->updateRepr(); } diff --git a/vendor/twig/twig/src/Error/LoaderError.php b/vendor/twig/twig/src/Error/LoaderError.php index 5a1cd1ecc0..dc5a9f1af7 100644 --- a/vendor/twig/twig/src/Error/LoaderError.php +++ b/vendor/twig/twig/src/Error/LoaderError.php @@ -14,22 +14,10 @@ /** * Exception thrown when an error occurs during template loading. * - * Automatic template information guessing is always turned off as - * if a template cannot be loaded, there is nothing to guess. - * However, when a template is loaded from another one, then, we need - * to find the current context and this is automatically done by - * Twig\Template::displayWithErrorHandling(). - * - * This strategy makes Twig\Environment::resolveTemplate() much faster. - * * @author Fabien Potencier <fabien@symfony.com> */ class LoaderError extends Error { - public function __construct($message, $lineno = -1, $source = null, \Exception $previous = null) - { - parent::__construct($message, $lineno, $source, $previous, false); - } } class_alias('Twig\Error\LoaderError', 'Twig_Error_Loader'); diff --git a/vendor/twig/twig/src/Extension/CoreExtension.php b/vendor/twig/twig/src/Extension/CoreExtension.php index 63265d619a..37301dfd47 100644 --- a/vendor/twig/twig/src/Extension/CoreExtension.php +++ b/vendor/twig/twig/src/Extension/CoreExtension.php @@ -362,9 +362,7 @@ function twig_random(Environment $env, $values = null, $max = null) return mt_rand($min, $max); } - if ($values instanceof \Traversable) { - $values = iterator_to_array($values); - } elseif (\is_string($values)) { + if (\is_string($values)) { if ('' === $values) { return ''; } @@ -387,10 +385,12 @@ function twig_random(Environment $env, $values = null, $max = null) } } - if (!\is_array($values)) { + if (!twig_test_iterable($values)) { return $values; } + $values = twig_to_array($values); + if (0 === \count($values)) { throw new RuntimeError('The random function cannot pick from an empty array.'); } @@ -510,17 +510,17 @@ function twig_date_converter(Environment $env, $date = null, $timezone = null) */ function twig_replace_filter($str, $from, $to = null) { - if ($from instanceof \Traversable) { - $from = iterator_to_array($from); - } elseif (\is_string($from) && \is_string($to)) { + if (\is_string($from) && \is_string($to)) { @trigger_error('Using "replace" with character by character replacement is deprecated since version 1.22 and will be removed in Twig 2.0', E_USER_DEPRECATED); return strtr($str, $from, $to); - } elseif (!\is_array($from)) { + } + + if (!twig_test_iterable($from)) { throw new RuntimeError(sprintf('The "replace" filter expects an array or "Traversable" as replace values, got "%s".', \is_object($from) ? \get_class($from) : \gettype($from))); } - return strtr($str, $from); + return strtr($str, twig_to_array($from)); } /** @@ -639,19 +639,15 @@ function _twig_markup2string(&$value) */ function twig_array_merge($arr1, $arr2) { - if ($arr1 instanceof \Traversable) { - $arr1 = iterator_to_array($arr1); - } elseif (!\is_array($arr1)) { + if (!twig_test_iterable($arr1)) { throw new RuntimeError(sprintf('The merge filter only works with arrays or "Traversable", got "%s" as first argument.', \gettype($arr1))); } - if ($arr2 instanceof \Traversable) { - $arr2 = iterator_to_array($arr2); - } elseif (!\is_array($arr2)) { + if (!twig_test_iterable($arr2)) { throw new RuntimeError(sprintf('The merge filter only works with arrays or "Traversable", got "%s" as second argument.', \gettype($arr2))); } - return array_merge($arr1, $arr2); + return array_merge(twig_to_array($arr1), twig_to_array($arr2)); } /** @@ -674,7 +670,7 @@ function twig_slice(Environment $env, $item, $start, $length = null, $preserveKe if ($start >= 0 && $length >= 0 && $item instanceof \Iterator) { try { return iterator_to_array(new \LimitIterator($item, $start, null === $length ? -1 : $length), $preserveKeys); - } catch (\OutOfBoundsException $exception) { + } catch (\OutOfBoundsException $e) { return []; } } @@ -745,12 +741,12 @@ function twig_last(Environment $env, $item) */ function twig_join_filter($value, $glue = '', $and = null) { - if ($value instanceof \Traversable) { - $value = iterator_to_array($value, false); - } else { + if (!twig_test_iterable($value)) { $value = (array) $value; } + $value = twig_to_array($value, false); + if (0 === \count($value)) { return ''; } @@ -759,12 +755,11 @@ function twig_join_filter($value, $glue = '', $and = null) return implode($glue, $value); } - $v = array_values($value); - if (1 === \count($v)) { - return $v[0]; + if (1 === \count($value)) { + return $value[0]; } - return implode($glue, \array_slice($value, 0, -1)).$and.$v[\count($v) - 1]; + return implode($glue, \array_slice($value, 0, -1)).$and.$value[\count($value) - 1]; } /** @@ -997,7 +992,7 @@ function twig_trim_filter($string, $characterMask = null, $side = 'both') */ function twig_spaceless($content) { - return preg_replace('/>\s+</', '><', $content); + return trim(preg_replace('/>\s+</', '><', $content)); } /** @@ -1312,20 +1307,16 @@ function twig_length_filter(Environment $env, $thing) return mb_strlen($thing, $env->getCharset()); } - if ($thing instanceof \SimpleXMLElement) { + if ($thing instanceof \Countable || \is_array($thing) || $thing instanceof \SimpleXMLElement) { return \count($thing); } - if (\is_object($thing) && method_exists($thing, '__toString') && !$thing instanceof \Countable) { - return mb_strlen((string) $thing, $env->getCharset()); - } - - if ($thing instanceof \Countable || \is_array($thing)) { - return \count($thing); + if ($thing instanceof \Traversable) { + return iterator_count($thing); } - if ($thing instanceof \IteratorAggregate) { - return iterator_count($thing); + if (\is_object($thing) && method_exists($thing, '__toString')) { + return mb_strlen((string) $thing, $env->getCharset()); } return 1; @@ -1470,6 +1461,22 @@ function twig_ensure_traversable($seq) return []; } +/** + * @internal + */ +function twig_to_array($seq, $preserveKeys = true) +{ + if ($seq instanceof \Traversable) { + return iterator_to_array($seq, $preserveKeys); + } + + if (!\is_array($seq)) { + return $seq; + } + + return $preserveKeys ? $seq : array_values($seq); +} + /** * Checks if a variable is empty. * @@ -1539,9 +1546,9 @@ function twig_include(Environment $env, $context, $template, $variables = [], $w } } - $result = ''; + $loaded = null; try { - $result = $env->resolveTemplate($template)->render($variables); + $loaded = $env->resolveTemplate($template); } catch (LoaderError $e) { if (!$ignoreMissing) { if ($isSandboxed && !$alreadySandboxed) { @@ -1564,11 +1571,21 @@ function twig_include(Environment $env, $context, $template, $variables = [], $w throw $e; } + try { + $ret = $loaded ? $loaded->render($variables) : ''; + } catch (\Exception $e) { + if ($isSandboxed && !$alreadySandboxed) { + $sandbox->disableSandbox(); + } + + throw $e; + } + if ($isSandboxed && !$alreadySandboxed) { $sandbox->disableSandbox(); } - return $result; + return $ret; } /** @@ -1640,18 +1657,18 @@ function twig_constant_is_defined($constant, $object = null) */ function twig_array_batch($items, $size, $fill = null, $preserveKeys = true) { - if ($items instanceof \Traversable) { - $items = iterator_to_array($items, $preserveKeys); + if (!twig_test_iterable($items)) { + throw new RuntimeError(sprintf('The "batch" filter expects an array or "Traversable", got "%s".', \is_object($items) ? \get_class($items) : \gettype($items))); } $size = ceil($size); - $result = array_chunk($items, $size, $preserveKeys); + $result = array_chunk(twig_to_array($items, $preserveKeys), $size, $preserveKeys); if (null !== $fill && $result) { $last = \count($result) - 1; if ($fillCount = $size - \count($result[$last])) { - for ($i = 0; $i < $fillCount; $i++) { + for ($i = 0; $i < $fillCount; ++$i) { $result[$last][] = $fill; } } diff --git a/vendor/twig/twig/src/Extension/DebugExtension.php b/vendor/twig/twig/src/Extension/DebugExtension.php index 85ced73814..09b0223e2f 100644 --- a/vendor/twig/twig/src/Extension/DebugExtension.php +++ b/vendor/twig/twig/src/Extension/DebugExtension.php @@ -30,7 +30,7 @@ public function getFunctions() ; return [ - new TwigFunction('dump', 'twig_var_dump', ['is_safe' => $isDumpOutputHtmlSafe ? ['html'] : [], 'needs_context' => true, 'needs_environment' => true]), + new TwigFunction('dump', 'twig_var_dump', ['is_safe' => $isDumpOutputHtmlSafe ? ['html'] : [], 'needs_context' => true, 'needs_environment' => true, 'is_variadic' => true]), ]; } @@ -46,8 +46,9 @@ class_alias('Twig\Extension\DebugExtension', 'Twig_Extension_Debug'); namespace { use Twig\Environment; use Twig\Template; +use Twig\TemplateWrapper; -function twig_var_dump(Environment $env, $context) +function twig_var_dump(Environment $env, $context, array $vars = []) { if (!$env->isDebug()) { return; @@ -55,19 +56,18 @@ function twig_var_dump(Environment $env, $context) ob_start(); - $count = \func_num_args(); - if (2 === $count) { + if (!$vars) { $vars = []; foreach ($context as $key => $value) { - if (!$value instanceof Template) { + if (!$value instanceof Template && !$value instanceof TemplateWrapper) { $vars[$key] = $value; } } var_dump($vars); } else { - for ($i = 2; $i < $count; ++$i) { - var_dump(func_get_arg($i)); + foreach ($vars as $var) { + var_dump($var); } } diff --git a/vendor/twig/twig/src/Extension/StringLoaderExtension.php b/vendor/twig/twig/src/Extension/StringLoaderExtension.php index 9d7e2aa537..93ac834ac2 100644 --- a/vendor/twig/twig/src/Extension/StringLoaderExtension.php +++ b/vendor/twig/twig/src/Extension/StringLoaderExtension.php @@ -35,7 +35,7 @@ class_alias('Twig\Extension\StringLoaderExtension', 'Twig_Extension_StringLoader namespace { use Twig\Environment; -use Twig\Template; +use Twig\TemplateWrapper; /** * Loads a template from a string. @@ -43,11 +43,12 @@ class_alias('Twig\Extension\StringLoaderExtension', 'Twig_Extension_StringLoader * {{ include(template_from_string("Hello {{ name }}")) }} * * @param string $template A template as a string or object implementing __toString() + * @param string $name An optional name of the template to be used in error messages * - * @return Template + * @return TemplateWrapper */ -function twig_template_from_string(Environment $env, $template) +function twig_template_from_string(Environment $env, $template, $name = null) { - return $env->createTemplate((string) $template); + return $env->createTemplate((string) $template, $name); } } diff --git a/vendor/twig/twig/src/Lexer.php b/vendor/twig/twig/src/Lexer.php index fcb5d5511b..8cb63f388e 100644 --- a/vendor/twig/twig/src/Lexer.php +++ b/vendor/twig/twig/src/Lexer.php @@ -62,20 +62,100 @@ public function __construct(Environment $env, array $options = []) 'tag_block' => ['{%', '%}'], 'tag_variable' => ['{{', '}}'], 'whitespace_trim' => '-', + 'whitespace_line_trim' => '~', + 'whitespace_line_chars' => ' \t\0\x0B', 'interpolation' => ['#{', '}'], ], $options); $this->regexes = [ - 'lex_var' => '/\s*'.preg_quote($this->options['whitespace_trim'].$this->options['tag_variable'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_variable'][1], '/').'/A', - 'lex_block' => '/\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')\n?/A', - 'lex_raw_data' => '/('.preg_quote($this->options['tag_block'][0].$this->options['whitespace_trim'], '/').'|'.preg_quote($this->options['tag_block'][0], '/').')\s*(?:end%s)\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/s', + // }} + 'lex_var' => '{ + \s* + (?:'. + preg_quote($this->options['whitespace_trim'].$this->options['tag_variable'][1]).'\s*'. // -}}\s* + '|'. + preg_quote($this->options['whitespace_line_trim'].$this->options['tag_variable'][1]).'['.$this->options['whitespace_line_chars'].']*'. // ~}}[ \t\0\x0B]* + '|'. + preg_quote($this->options['tag_variable'][1]). // }} + ') + }Ax', + + // %} + 'lex_block' => '{ + \s* + (?:'. + preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1]).'\s*\n?'. // -%}\s*\n? + '|'. + preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1]).'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]* + '|'. + preg_quote($this->options['tag_block'][1]).'\n?'. // %}\n? + ') + }Ax', + + // {% endverbatim %} + 'lex_raw_data' => '{'. + preg_quote($this->options['tag_block'][0]). // {% + '('. + $this->options['whitespace_trim']. // - + '|'. + $this->options['whitespace_line_trim']. // ~ + ')?\s*'. + '(?:end%s)'. // endraw or endverbatim + '\s*'. + '(?:'. + preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1]).'\s*'. // -%} + '|'. + preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1]).'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]* + '|'. + preg_quote($this->options['tag_block'][1]). // %} + ') + }sx', + 'operator' => $this->getOperatorRegex(), - 'lex_comment' => '/(?:'.preg_quote($this->options['whitespace_trim'], '/').preg_quote($this->options['tag_comment'][1], '/').'\s*|'.preg_quote($this->options['tag_comment'][1], '/').')\n?/s', - 'lex_block_raw' => '/\s*(raw|verbatim)\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/As', - 'lex_block_line' => '/\s*line\s+(\d+)\s*'.preg_quote($this->options['tag_block'][1], '/').'/As', - 'lex_tokens_start' => '/('.preg_quote($this->options['tag_variable'][0], '/').'|'.preg_quote($this->options['tag_block'][0], '/').'|'.preg_quote($this->options['tag_comment'][0], '/').')('.preg_quote($this->options['whitespace_trim'], '/').')?/s', - 'interpolation_start' => '/'.preg_quote($this->options['interpolation'][0], '/').'\s*/A', - 'interpolation_end' => '/\s*'.preg_quote($this->options['interpolation'][1], '/').'/A', + + // #} + 'lex_comment' => '{ + (?:'. + preg_quote($this->options['whitespace_trim']).preg_quote($this->options['tag_comment'][1], '#').'\s*\n?'. // -#}\s*\n? + '|'. + preg_quote($this->options['whitespace_line_trim'].$this->options['tag_comment'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~#}[ \t\0\x0B]* + '|'. + preg_quote($this->options['tag_comment'][1], '#').'\n?'. // #}\n? + ') + }sx', + + // verbatim %} + 'lex_block_raw' => '{ + \s* + (raw|verbatim) + \s* + (?:'. + preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1]).'\s*'. // -%}\s* + '|'. + preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1]).'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]* + '|'. + preg_quote($this->options['tag_block'][1]). // %} + ') + }Asx', + + 'lex_block_line' => '{\s*line\s+(\d+)\s*'.preg_quote($this->options['tag_block'][1]).'}As', + + // {{ or {% or {# + 'lex_tokens_start' => '{ + ('. + preg_quote($this->options['tag_variable'][0]). // {{ + '|'. + preg_quote($this->options['tag_block'][0]). // {% + '|'. + preg_quote($this->options['tag_comment'][0], '#'). // {# + ')('. + preg_quote($this->options['whitespace_trim']). // - + '|'. + preg_quote($this->options['whitespace_line_trim']). // ~ + ')? + }sx', + 'interpolation_start' => '{'.preg_quote($this->options['interpolation'][0]).'\s*}A', + 'interpolation_end' => '{\s*'.preg_quote($this->options['interpolation'][1]).'}A', ]; } @@ -175,8 +255,17 @@ protected function lexData() // push the template text first $text = $textContent = substr($this->code, $this->cursor, $position[1] - $this->cursor); + + // trim? if (isset($this->positions[2][$this->position][0])) { - $text = rtrim($text); + if ($this->options['whitespace_trim'] === $this->positions[2][$this->position][0]) { + // whitespace_trim detected ({%-, {{- or {#-) + $text = rtrim($text); + } else { + // whitespace_line_trim detected ({%~, {{~ or {#~) + // don't trim \r and \n + $text = rtrim($text, " \t\0\x0B"); + } } $this->pushToken(Token::TEXT_TYPE, $text); $this->moveCursor($textContent.$position[0]); @@ -188,11 +277,11 @@ protected function lexData() case $this->options['tag_block'][0]: // raw data? - if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { + if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, 0, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} - } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { + } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, 0, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { @@ -212,7 +301,7 @@ protected function lexData() protected function lexBlock() { - if (empty($this->brackets) && preg_match($this->regexes['lex_block'], $this->code, $match, null, $this->cursor)) { + if (empty($this->brackets) && preg_match($this->regexes['lex_block'], $this->code, $match, 0, $this->cursor)) { $this->pushToken(Token::BLOCK_END_TYPE); $this->moveCursor($match[0]); $this->popState(); @@ -223,7 +312,7 @@ protected function lexBlock() protected function lexVar() { - if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { + if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, 0, $this->cursor)) { $this->pushToken(Token::VAR_END_TYPE); $this->moveCursor($match[0]); $this->popState(); @@ -235,7 +324,7 @@ protected function lexVar() protected function lexExpression() { // whitespace - if (preg_match('/\s+/A', $this->code, $match, null, $this->cursor)) { + if (preg_match('/\s+/A', $this->code, $match, 0, $this->cursor)) { $this->moveCursor($match[0]); if ($this->cursor >= $this->end) { @@ -244,17 +333,17 @@ protected function lexExpression() } // operators - if (preg_match($this->regexes['operator'], $this->code, $match, null, $this->cursor)) { + if (preg_match($this->regexes['operator'], $this->code, $match, 0, $this->cursor)) { $this->pushToken(Token::OPERATOR_TYPE, preg_replace('/\s+/', ' ', $match[0])); $this->moveCursor($match[0]); } // names - elseif (preg_match(self::REGEX_NAME, $this->code, $match, null, $this->cursor)) { + elseif (preg_match(self::REGEX_NAME, $this->code, $match, 0, $this->cursor)) { $this->pushToken(Token::NAME_TYPE, $match[0]); $this->moveCursor($match[0]); } // numbers - elseif (preg_match(self::REGEX_NUMBER, $this->code, $match, null, $this->cursor)) { + elseif (preg_match(self::REGEX_NUMBER, $this->code, $match, 0, $this->cursor)) { $number = (float) $match[0]; // floats if (ctype_digit($match[0]) && $number <= PHP_INT_MAX) { $number = (int) $match[0]; // integers lower than the maximum @@ -284,12 +373,12 @@ protected function lexExpression() ++$this->cursor; } // strings - elseif (preg_match(self::REGEX_STRING, $this->code, $match, null, $this->cursor)) { + elseif (preg_match(self::REGEX_STRING, $this->code, $match, 0, $this->cursor)) { $this->pushToken(Token::STRING_TYPE, stripcslashes(substr($match[0], 1, -1))); $this->moveCursor($match[0]); } // opening double quoted string - elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, null, $this->cursor)) { + elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, 0, $this->cursor)) { $this->brackets[] = ['"', $this->lineno]; $this->pushState(self::STATE_STRING); $this->moveCursor($match[0]); @@ -313,8 +402,16 @@ protected function lexRawData($tag) $text = substr($this->code, $this->cursor, $match[0][1] - $this->cursor); $this->moveCursor($text.$match[0][0]); - if (false !== strpos($match[1][0], $this->options['whitespace_trim'])) { - $text = rtrim($text); + // trim? + if (isset($match[1][0])) { + if ($this->options['whitespace_trim'] === $match[1][0]) { + // whitespace_trim detected ({%-, {{- or {#-) + $text = rtrim($text); + } else { + // whitespace_line_trim detected ({%~, {{~ or {#~) + // don't trim \r and \n + $text = rtrim($text, " \t\0\x0B"); + } } $this->pushToken(Token::TEXT_TYPE, $text); @@ -331,15 +428,15 @@ protected function lexComment() protected function lexString() { - if (preg_match($this->regexes['interpolation_start'], $this->code, $match, null, $this->cursor)) { + if (preg_match($this->regexes['interpolation_start'], $this->code, $match, 0, $this->cursor)) { $this->brackets[] = [$this->options['interpolation'][0], $this->lineno]; $this->pushToken(Token::INTERPOLATION_START_TYPE); $this->moveCursor($match[0]); $this->pushState(self::STATE_INTERPOLATION); - } elseif (preg_match(self::REGEX_DQ_STRING_PART, $this->code, $match, null, $this->cursor) && \strlen($match[0]) > 0) { + } elseif (preg_match(self::REGEX_DQ_STRING_PART, $this->code, $match, 0, $this->cursor) && \strlen($match[0]) > 0) { $this->pushToken(Token::STRING_TYPE, stripcslashes($match[0])); $this->moveCursor($match[0]); - } elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, null, $this->cursor)) { + } elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, 0, $this->cursor)) { list($expect, $lineno) = array_pop($this->brackets); if ('"' != $this->code[$this->cursor]) { throw new SyntaxError(sprintf('Unclosed "%s".', $expect), $lineno, $this->source); @@ -356,7 +453,7 @@ protected function lexString() protected function lexInterpolation() { $bracket = end($this->brackets); - if ($this->options['interpolation'][0] === $bracket[0] && preg_match($this->regexes['interpolation_end'], $this->code, $match, null, $this->cursor)) { + if ($this->options['interpolation'][0] === $bracket[0] && preg_match($this->regexes['interpolation_end'], $this->code, $match, 0, $this->cursor)) { array_pop($this->brackets); $this->pushToken(Token::INTERPOLATION_END_TYPE); $this->moveCursor($match[0]); diff --git a/vendor/twig/twig/src/Loader/FilesystemLoader.php b/vendor/twig/twig/src/Loader/FilesystemLoader.php index c30b41a1bc..ae9c979a76 100644 --- a/vendor/twig/twig/src/Loader/FilesystemLoader.php +++ b/vendor/twig/twig/src/Loader/FilesystemLoader.php @@ -171,7 +171,7 @@ public function exists($name) try { return false !== $this->findTemplate($name, false); - } catch (LoaderError $exception) { + } catch (LoaderError $e) { @trigger_error(sprintf('In %s::findTemplate(), you must accept a second argument that when set to "false" returns "false" instead of throwing an exception. Not supporting this argument is deprecated since version 1.27.', \get_class($this)), E_USER_DEPRECATED); return false; diff --git a/vendor/twig/twig/src/Node/CheckToStringNode.php b/vendor/twig/twig/src/Node/CheckToStringNode.php index 464c96fbae..5d67467916 100644 --- a/vendor/twig/twig/src/Node/CheckToStringNode.php +++ b/vendor/twig/twig/src/Node/CheckToStringNode.php @@ -24,7 +24,7 @@ * * @author Fabien Potencier <fabien@symfony.com> */ -class CheckToStringNode extends Node +class CheckToStringNode extends AbstractExpression { public function __construct(AbstractExpression $expr) { diff --git a/vendor/twig/twig/src/Node/Expression/CallExpression.php b/vendor/twig/twig/src/Node/Expression/CallExpression.php index 162393bdfa..d202a73953 100644 --- a/vendor/twig/twig/src/Node/Expression/CallExpression.php +++ b/vendor/twig/twig/src/Node/Expression/CallExpression.php @@ -121,7 +121,7 @@ protected function getArguments($callable, $arguments) $named = true; $name = $this->normalizeName($name); } elseif ($named) { - throw new SyntaxError(sprintf('Positional arguments cannot be used after named arguments for %s "%s".', $callType, $callName), $this->getTemplateLine(), null, null, false); + throw new SyntaxError(sprintf('Positional arguments cannot be used after named arguments for %s "%s".', $callType, $callName), $this->getTemplateLine(), $this->getSourceContext()); } $parameters[$name] = $node; @@ -153,14 +153,14 @@ protected function getArguments($callable, $arguments) if (\array_key_exists($name, $parameters)) { if (\array_key_exists($pos, $parameters)) { - throw new SyntaxError(sprintf('Argument "%s" is defined twice for %s "%s".', $name, $callType, $callName), $this->getTemplateLine(), null, null, false); + throw new SyntaxError(sprintf('Argument "%s" is defined twice for %s "%s".', $name, $callType, $callName), $this->getTemplateLine(), $this->getSourceContext()); } if (\count($missingArguments)) { throw new SyntaxError(sprintf( 'Argument "%s" could not be assigned for %s "%s(%s)" because it is mapped to an internal PHP function which cannot determine default value for optional argument%s "%s".', $name, $callType, $callName, implode(', ', $names), \count($missingArguments) > 1 ? 's' : '', implode('", "', $missingArguments) - ), $this->getTemplateLine(), null, null, false); + ), $this->getTemplateLine(), $this->getSourceContext()); } $arguments = array_merge($arguments, $optionalArguments); @@ -182,7 +182,7 @@ protected function getArguments($callable, $arguments) $missingArguments[] = $name; } } else { - throw new SyntaxError(sprintf('Value for argument "%s" is required for %s "%s".', $name, $callType, $callName), $this->getTemplateLine(), null, null, false); + throw new SyntaxError(sprintf('Value for argument "%s" is required for %s "%s".', $name, $callType, $callName), $this->getTemplateLine(), $this->getSourceContext()); } } @@ -212,10 +212,14 @@ protected function getArguments($callable, $arguments) } } - throw new SyntaxError(sprintf( - 'Unknown argument%s "%s" for %s "%s(%s)".', - \count($parameters) > 1 ? 's' : '', implode('", "', array_keys($parameters)), $callType, $callName, implode(', ', $names) - ), $unknownParameter ? $unknownParameter->getTemplateLine() : $this->getTemplateLine(), null, null, false); + throw new SyntaxError( + sprintf( + 'Unknown argument%s "%s" for %s "%s(%s)".', + \count($parameters) > 1 ? 's' : '', implode('", "', array_keys($parameters)), $callType, $callName, implode(', ', $names) + ), + $unknownParameter ? $unknownParameter->getTemplateLine() : $this->getTemplateLine(), + $unknownParameter ? $unknownParameter->getSourceContext() : $this->getSourceContext() + ); } return $arguments; diff --git a/vendor/twig/twig/src/Node/Expression/InlinePrint.php b/vendor/twig/twig/src/Node/Expression/InlinePrint.php new file mode 100644 index 0000000000..469e73675a --- /dev/null +++ b/vendor/twig/twig/src/Node/Expression/InlinePrint.php @@ -0,0 +1,35 @@ +<?php + +/* + * This file is part of Twig. + * + * (c) Fabien Potencier + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Twig\Node\Expression; + +use Twig\Compiler; +use Twig\Node\Node; + +/** + * @internal + */ +final class InlinePrint extends AbstractExpression +{ + public function __construct(Node $node, $lineno) + { + parent::__construct(['node' => $node], [], $lineno); + } + + public function compile(Compiler $compiler) + { + $compiler + ->raw('print (') + ->subcompile($this->getNode('node')) + ->raw(')') + ; + } +} diff --git a/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php b/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php index 6197fb93ca..2222e11cfd 100644 --- a/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php +++ b/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php @@ -47,7 +47,7 @@ public function __construct(\Twig_NodeInterface $node, $name, \Twig_NodeInterfac } elseif ($node instanceof ConstantExpression || $node instanceof ArrayExpression) { $node = new ConstantExpression(true, $node->getTemplateLine()); } else { - throw new SyntaxError('The "defined" test only works with simple variables.', $this->getTemplateLine(), null, null, false); + throw new SyntaxError('The "defined" test only works with simple variables.', $lineno); } parent::__construct($node, $name, $arguments, $lineno); diff --git a/vendor/twig/twig/src/Node/IncludeNode.php b/vendor/twig/twig/src/Node/IncludeNode.php index 524ddef23e..544db81eaf 100644 --- a/vendor/twig/twig/src/Node/IncludeNode.php +++ b/vendor/twig/twig/src/Node/IncludeNode.php @@ -37,43 +37,54 @@ public function compile(Compiler $compiler) $compiler->addDebugInfo($this); if ($this->getAttribute('ignore_missing')) { + $template = $compiler->getVarName(); + $compiler + ->write(sprintf("$%s = null;\n", $template)) ->write("try {\n") ->indent() + ->write(sprintf('$%s = ', $template)) ; - } - - $this->addGetTemplate($compiler); - $compiler->raw('->display('); + $this->addGetTemplate($compiler); - $this->addTemplateArguments($compiler); - - $compiler->raw(");\n"); - - if ($this->getAttribute('ignore_missing')) { $compiler + ->raw(";\n") ->outdent() ->write("} catch (LoaderError \$e) {\n") ->indent() ->write("// ignore missing template\n") ->outdent() - ->write("}\n\n") + ->write("}\n") + ->write(sprintf("if ($%s) {\n", $template)) + ->indent() + ->write(sprintf('$%s->display(', $template)) ; + $this->addTemplateArguments($compiler); + $compiler + ->raw(");\n") + ->outdent() + ->write("}\n") + ; + } else { + $this->addGetTemplate($compiler); + $compiler->raw('->display('); + $this->addTemplateArguments($compiler); + $compiler->raw(");\n"); } } protected function addGetTemplate(Compiler $compiler) { $compiler - ->write('$this->loadTemplate(') - ->subcompile($this->getNode('expr')) - ->raw(', ') - ->repr($this->getTemplateName()) - ->raw(', ') - ->repr($this->getTemplateLine()) - ->raw(')') - ; + ->write('$this->loadTemplate(') + ->subcompile($this->getNode('expr')) + ->raw(', ') + ->repr($this->getTemplateName()) + ->raw(', ') + ->repr($this->getTemplateLine()) + ->raw(')') + ; } protected function addTemplateArguments(Compiler $compiler) @@ -82,12 +93,14 @@ protected function addTemplateArguments(Compiler $compiler) $compiler->raw(false === $this->getAttribute('only') ? '$context' : '[]'); } elseif (false === $this->getAttribute('only')) { $compiler - ->raw('array_merge($context, ') + ->raw('twig_array_merge($context, ') ->subcompile($this->getNode('variables')) ->raw(')') ; } else { + $compiler->raw('twig_to_array('); $compiler->subcompile($this->getNode('variables')); + $compiler->raw(')'); } } } diff --git a/vendor/twig/twig/src/Node/MacroNode.php b/vendor/twig/twig/src/Node/MacroNode.php index 31f4baa7a4..8e3cc76a31 100644 --- a/vendor/twig/twig/src/Node/MacroNode.php +++ b/vendor/twig/twig/src/Node/MacroNode.php @@ -27,7 +27,7 @@ public function __construct($name, \Twig_NodeInterface $body, \Twig_NodeInterfac { foreach ($arguments as $argumentName => $argument) { if (self::VARARGS_NAME === $argumentName) { - throw new SyntaxError(sprintf('The argument "%s" in macro "%s" cannot be defined because the variable "%s" is reserved for arbitrary arguments.', self::VARARGS_NAME, $name, self::VARARGS_NAME), $argument->getTemplateLine(), null, null, false); + throw new SyntaxError(sprintf('The argument "%s" in macro "%s" cannot be defined because the variable "%s" is reserved for arbitrary arguments.', self::VARARGS_NAME, $name, self::VARARGS_NAME), $argument->getTemplateLine(), $argument->getSourceContext()); } } diff --git a/vendor/twig/twig/src/Node/ModuleNode.php b/vendor/twig/twig/src/Node/ModuleNode.php index 2eb0d49dc0..aab2aa33f2 100644 --- a/vendor/twig/twig/src/Node/ModuleNode.php +++ b/vendor/twig/twig/src/Node/ModuleNode.php @@ -28,15 +28,13 @@ */ class ModuleNode extends Node { - private $source; - public function __construct(\Twig_NodeInterface $body, AbstractExpression $parent = null, \Twig_NodeInterface $blocks, \Twig_NodeInterface $macros, \Twig_NodeInterface $traits, $embeddedTemplates, $name, $source = '') { if (!$name instanceof Source) { @trigger_error(sprintf('Passing a string as the $name argument of %s() is deprecated since version 1.27. Pass a \Twig\Source instance instead.', __METHOD__), E_USER_DEPRECATED); - $this->source = new Source($source, $name); + $source = new Source($source, $name); } else { - $this->source = $name; + $source = $name; } $nodes = [ @@ -57,15 +55,16 @@ public function __construct(\Twig_NodeInterface $body, AbstractExpression $paren // embedded templates are set as attributes so that they are only visited once by the visitors parent::__construct($nodes, [ // source to be remove in 2.0 - 'source' => $this->source->getCode(), + 'source' => $source->getCode(), // filename to be remove in 2.0 (use getTemplateName() instead) - 'filename' => $this->source->getName(), + 'filename' => $source->getName(), 'index' => null, 'embedded_templates' => $embeddedTemplates, ], 1); // populate the template name of all node children - $this->setTemplateName($this->source->getName()); + $this->setTemplateName($source->getName()); + $this->setSourceContext($source); } public function setIndex($index) @@ -143,7 +142,7 @@ protected function compileGetParent(Compiler $compiler) ->raw('$this->loadTemplate(') ->subcompile($parent) ->raw(', ') - ->repr($this->source->getName()) + ->repr($this->getSourceContext()->getName()) ->raw(', ') ->repr($parent->getTemplateLine()) ->raw(')') @@ -178,8 +177,8 @@ protected function compileClassHeader(Compiler $compiler) } $compiler // if the template name contains */, add a blank to avoid a PHP parse error - ->write('/* '.str_replace('*/', '* /', $this->source->getName())." */\n") - ->write('class '.$compiler->getEnvironment()->getTemplateClass($this->source->getName(), $this->getAttribute('index'))) + ->write('/* '.str_replace('*/', '* /', $this->getSourceContext()->getName())." */\n") + ->write('class '.$compiler->getEnvironment()->getTemplateClass($this->getSourceContext()->getName(), $this->getAttribute('index'))) ->raw(sprintf(" extends %s\n", $compiler->getEnvironment()->getBaseTemplateClass())) ->write("{\n") ->indent() @@ -198,17 +197,6 @@ protected function compileConstructor(Compiler $compiler) // parent if (!$this->hasNode('parent')) { $compiler->write("\$this->parent = false;\n\n"); - } elseif (($parent = $this->getNode('parent')) && $parent instanceof ConstantExpression) { - $compiler - ->addDebugInfo($parent) - ->write('$this->parent = $this->loadTemplate(') - ->subcompile($parent) - ->raw(', ') - ->repr($this->source->getName()) - ->raw(', ') - ->repr($parent->getTemplateLine()) - ->raw(");\n") - ; } $countTraits = \count($this->getNode('traits')); @@ -217,13 +205,16 @@ protected function compileConstructor(Compiler $compiler) foreach ($this->getNode('traits') as $i => $trait) { $this->compileLoadTemplate($compiler, $trait->getNode('template'), sprintf('$_trait_%s', $i)); + $node = $trait->getNode('template'); $compiler - ->addDebugInfo($trait->getNode('template')) + ->addDebugInfo($node) ->write(sprintf("if (!\$_trait_%s->isTraitable()) {\n", $i)) ->indent() ->write("throw new RuntimeError('Template \"'.") ->subcompile($trait->getNode('template')) - ->raw(".'\" cannot be used as a trait.');\n") + ->raw(".'\" cannot be used as a trait.', ") + ->repr($node->getTemplateLine()) + ->raw(", \$this->getSourceContext());\n") ->outdent() ->write("}\n") ->write(sprintf("\$_trait_%s_blocks = \$_trait_%s->getBlocks();\n\n", $i, $i)) @@ -239,7 +230,9 @@ protected function compileConstructor(Compiler $compiler) ->string($key) ->raw(' is not defined in trait ') ->subcompile($trait->getNode('template')) - ->raw(".'));\n") + ->raw(".'), ") + ->repr($node->getTemplateLine()) + ->raw(", \$this->getSourceContext());\n") ->outdent() ->write("}\n\n") @@ -331,8 +324,18 @@ protected function compileDisplay(Compiler $compiler) if ($this->hasNode('parent')) { $parent = $this->getNode('parent'); + $compiler->addDebugInfo($parent); if ($parent instanceof ConstantExpression) { + $compiler + ->write('$this->parent = $this->loadTemplate(') + ->subcompile($parent) + ->raw(', ') + ->repr($this->getSourceContext()->getName()) + ->raw(', ') + ->repr($parent->getTemplateLine()) + ->raw(");\n") + ; $compiler->write('$this->parent'); } else { $compiler->write('$this->getParent($context)'); @@ -367,7 +370,7 @@ protected function compileGetTemplateName(Compiler $compiler) ->write("public function getTemplateName()\n", "{\n") ->indent() ->write('return ') - ->repr($this->source->getName()) + ->repr($this->getSourceContext()->getName()) ->raw(";\n") ->outdent() ->write("}\n\n") @@ -457,11 +460,11 @@ protected function compileGetSourceContext(Compiler $compiler) ->write("public function getSourceContext()\n", "{\n") ->indent() ->write('return new Source(') - ->string($compiler->getEnvironment()->isDebug() ? $this->source->getCode() : '') + ->string($compiler->getEnvironment()->isDebug() ? $this->getSourceContext()->getCode() : '') ->raw(', ') - ->string($this->source->getName()) + ->string($this->getSourceContext()->getName()) ->raw(', ') - ->string($this->source->getPath()) + ->string($this->getSourceContext()->getPath()) ->raw(");\n") ->outdent() ->write("}\n") diff --git a/vendor/twig/twig/src/Node/Node.php b/vendor/twig/twig/src/Node/Node.php index d60367ff25..5dbe1a5ae3 100644 --- a/vendor/twig/twig/src/Node/Node.php +++ b/vendor/twig/twig/src/Node/Node.php @@ -13,6 +13,7 @@ namespace Twig\Node; use Twig\Compiler; +use Twig\Source; /** * Represents a node in the AST. @@ -27,13 +28,9 @@ class Node implements \Twig_NodeInterface protected $tag; private $name; + private $sourceContext; /** - * Constructor. - * - * The nodes are automatically made available as properties ($this->node). - * The attributes are automatically made available as array items ($this['name']). - * * @param array $nodes An array of named nodes * @param array $attributes An array of attributes (should not be nodes) * @param int $lineno The line number @@ -235,6 +232,21 @@ public function getTemplateName() return $this->name; } + public function setSourceContext(Source $source) + { + $this->sourceContext = $source; + foreach ($this->nodes as $node) { + if ($node instanceof Node) { + $node->setSourceContext($source); + } + } + } + + public function getSourceContext() + { + return $this->sourceContext; + } + /** * @deprecated since 1.27 (to be removed in 2.0) */ diff --git a/vendor/twig/twig/src/Node/WithNode.php b/vendor/twig/twig/src/Node/WithNode.php index 77364ac510..f5ae9246dd 100644 --- a/vendor/twig/twig/src/Node/WithNode.php +++ b/vendor/twig/twig/src/Node/WithNode.php @@ -35,16 +35,20 @@ public function compile(Compiler $compiler) $compiler->addDebugInfo($this); if ($this->hasNode('variables')) { + $node = $this->getNode('variables'); $varsName = $compiler->getVarName(); $compiler ->write(sprintf('$%s = ', $varsName)) - ->subcompile($this->getNode('variables')) + ->subcompile($node) ->raw(";\n") - ->write(sprintf("if (!is_array(\$%s)) {\n", $varsName)) + ->write(sprintf("if (!twig_test_iterable(\$%s)) {\n", $varsName)) ->indent() - ->write("throw new RuntimeError('Variables passed to the \"with\" tag must be a hash.');\n") + ->write("throw new RuntimeError('Variables passed to the \"with\" tag must be a hash.', ") + ->repr($node->getTemplateLine()) + ->raw(", \$this->getSourceContext());\n") ->outdent() ->write("}\n") + ->write(sprintf("\$%s = twig_to_array(\$%s);\n", $varsName, $varsName)) ; if ($this->getAttribute('only')) { @@ -53,7 +57,7 @@ public function compile(Compiler $compiler) $compiler->write("\$context['_parent'] = \$context;\n"); } - $compiler->write(sprintf("\$context = array_merge(\$context, \$%s);\n", $varsName)); + $compiler->write(sprintf("\$context = \$this->env->mergeGlobals(array_merge(\$context, \$%s));\n", $varsName)); } else { $compiler->write("\$context['_parent'] = \$context;\n"); } diff --git a/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php b/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php index 959108f057..f6e16fa7d7 100644 --- a/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php +++ b/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php @@ -15,8 +15,11 @@ use Twig\Node\AutoEscapeNode; use Twig\Node\BlockNode; use Twig\Node\BlockReferenceNode; +use Twig\Node\DoNode; +use Twig\Node\Expression\ConditionalExpression; use Twig\Node\Expression\ConstantExpression; use Twig\Node\Expression\FilterExpression; +use Twig\Node\Expression\InlinePrint; use Twig\Node\ImportNode; use Twig\Node\ModuleNode; use Twig\Node\Node; @@ -69,8 +72,13 @@ protected function doLeaveNode(Node $node, Environment $env) $this->blocks = []; } elseif ($node instanceof FilterExpression) { return $this->preEscapeFilterNode($node, $env); - } elseif ($node instanceof PrintNode) { - return $this->escapePrintNode($node, $env, $this->needEscaping($env)); + } elseif ($node instanceof PrintNode && false !== $type = $this->needEscaping($env)) { + $expression = $node->getNode('expr'); + if ($expression instanceof ConditionalExpression && $this->shouldUnwrapConditional($expression, $env, $type)) { + return new DoNode($this->unwrapConditional($expression, $env, $type), $expression->getTemplateLine()); + } + + return $this->escapePrintNode($node, $env, $type); } if ($node instanceof AutoEscapeNode || $node instanceof BlockNode) { @@ -82,6 +90,44 @@ protected function doLeaveNode(Node $node, Environment $env) return $node; } + private function shouldUnwrapConditional(ConditionalExpression $expression, Environment $env, $type) + { + $expr2Safe = $this->isSafeFor($type, $expression->getNode('expr2'), $env); + $expr3Safe = $this->isSafeFor($type, $expression->getNode('expr3'), $env); + + return $expr2Safe !== $expr3Safe; + } + + private function unwrapConditional(ConditionalExpression $expression, Environment $env, $type) + { + // convert "echo a ? b : c" to "a ? echo b : echo c" recursively + $expr2 = $expression->getNode('expr2'); + if ($expr2 instanceof ConditionalExpression && $this->shouldUnwrapConditional($expr2, $env, $type)) { + $expr2 = $this->unwrapConditional($expr2, $env, $type); + } else { + $expr2 = $this->escapeInlinePrintNode(new InlinePrint($expr2, $expr2->getTemplateLine()), $env, $type); + } + $expr3 = $expression->getNode('expr3'); + if ($expr3 instanceof ConditionalExpression && $this->shouldUnwrapConditional($expr3, $env, $type)) { + $expr3 = $this->unwrapConditional($expr3, $env, $type); + } else { + $expr3 = $this->escapeInlinePrintNode(new InlinePrint($expr3, $expr3->getTemplateLine()), $env, $type); + } + + return new ConditionalExpression($expression->getNode('expr1'), $expr2, $expr3, $expression->getTemplateLine()); + } + + private function escapeInlinePrintNode(InlinePrint $node, Environment $env, $type) + { + $expression = $node->getNode('node'); + + if ($this->isSafeFor($type, $expression, $env)) { + return $node; + } + + return new InlinePrint($this->getEscaperFilter($type, $expression), $node->getTemplateLine()); + } + protected function escapePrintNode(PrintNode $node, Environment $env, $type) { if (false === $type) { @@ -96,10 +142,7 @@ protected function escapePrintNode(PrintNode $node, Environment $env, $type) $class = \get_class($node); - return new $class( - $this->getEscaperFilter($type, $expression), - $node->getTemplateLine() - ); + return new $class($this->getEscaperFilter($type, $expression), $node->getTemplateLine()); } protected function preEscapeFilterNode(FilterExpression $filter, Environment $env) diff --git a/vendor/twig/twig/src/Profiler/Profile.php b/vendor/twig/twig/src/Profiler/Profile.php index f33963b31f..4d8ba3efd5 100644 --- a/vendor/twig/twig/src/Profiler/Profile.php +++ b/vendor/twig/twig/src/Profiler/Profile.php @@ -160,12 +160,28 @@ public function getIterator() public function serialize() { - return serialize([$this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles]); + return serialize($this->__serialize()); } public function unserialize($data) { - list($this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles) = unserialize($data); + $this->__unserialize(unserialize($data)); + } + + /** + * @internal + */ + public function __serialize() + { + return [$this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles]; + } + + /** + * @internal + */ + public function __unserialize(array $data) + { + list($this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles) = $data; } } diff --git a/vendor/twig/twig/src/Sandbox/SecurityPolicy.php b/vendor/twig/twig/src/Sandbox/SecurityPolicy.php index c6f7465c46..31b6c34833 100644 --- a/vendor/twig/twig/src/Sandbox/SecurityPolicy.php +++ b/vendor/twig/twig/src/Sandbox/SecurityPolicy.php @@ -89,7 +89,7 @@ public function checkSecurity($tags, $filters, $functions) public function checkMethodAllowed($obj, $method) { if ($obj instanceof \Twig_TemplateInterface || $obj instanceof Markup) { - return true; + return; } $allowed = false; diff --git a/vendor/twig/twig/src/Template.php b/vendor/twig/twig/src/Template.php index 8889c024dd..e2146c2802 100644 --- a/vendor/twig/twig/src/Template.php +++ b/vendor/twig/twig/src/Template.php @@ -227,7 +227,10 @@ public function displayBlock($name, array $context, array $blocks = [], $useBloc throw $e; } catch (\Exception $e) { - throw new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e); + $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e); + $e->guess(); + + throw $e; } } elseif (false !== $parent = $this->getParent($context)) { $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false); @@ -352,7 +355,7 @@ protected function loadTemplate($template, $templateName = null, $line = null, $ } if ($template === $this->getTemplateName()) { - $class = get_class($this); + $class = \get_class($this); if (false !== $pos = strrpos($class, '___', -1)) { $class = substr($class, 0, $pos); } @@ -438,7 +441,10 @@ protected function displayWithErrorHandling(array $context, array $blocks = []) throw $e; } catch (\Exception $e) { - throw new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e); + $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e); + $e->guess(); + + throw $e; } } diff --git a/vendor/twig/twig/src/Test/IntegrationTestCase.php b/vendor/twig/twig/src/Test/IntegrationTestCase.php index d1b633ab94..36b3607586 100644 --- a/vendor/twig/twig/src/Test/IntegrationTestCase.php +++ b/vendor/twig/twig/src/Test/IntegrationTestCase.php @@ -194,7 +194,7 @@ protected function doIntegrationTest($file, $message, $condition, $templates, $e $message = $e->getMessage(); $this->assertSame(trim($exception), trim(sprintf('%s: %s', \get_class($e), $message))); $last = substr($message, \strlen($message) - 1); - $this->assertTrue('.' === $last || '?' === $last, $message, 'Exception message must end with a dot or a question mark.'); + $this->assertTrue('.' === $last || '?' === $last, 'Exception message must end with a dot or a question mark.'); return; } diff --git a/vendor/twig/twig/src/Test/NodeTestCase.php b/vendor/twig/twig/src/Test/NodeTestCase.php index b35cd21853..f3358cb9a3 100644 --- a/vendor/twig/twig/src/Test/NodeTestCase.php +++ b/vendor/twig/twig/src/Test/NodeTestCase.php @@ -56,7 +56,7 @@ protected function getVariableGetter($name, $line = false) $line = $line > 0 ? "// line {$line}\n" : ''; if (\PHP_VERSION_ID >= 70000) { - return sprintf('%s($context["%s"] ?? null)', $line, $name, $name); + return sprintf('%s($context["%s"] ?? null)', $line, $name); } if (\PHP_VERSION_ID >= 50400) { diff --git a/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php b/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php index d4163efdf2..88fd15cfae 100644 --- a/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php +++ b/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php @@ -105,7 +105,7 @@ public function testGlobals() $twig = new Environment($loader); $twig->addGlobal('foo', 'foo'); $twig->getGlobals(); - $twig->loadTemplate('index'); + $twig->load('index'); $twig->addGlobal('foo', 'bar'); $globals = $twig->getGlobals(); $this->assertEquals('bar', $globals['foo']); @@ -125,7 +125,7 @@ public function testGlobals() $twig->addGlobal('foo', 'foo'); $twig->getGlobals(); $twig->getFunctions(); - $twig->loadTemplate('index'); + $twig->load('index'); $twig->addGlobal('foo', 'bar'); $globals = $twig->getGlobals(); $this->assertEquals('bar', $globals['foo']); @@ -133,7 +133,7 @@ public function testGlobals() $twig = new Environment($arrayLoader); $twig->getGlobals(); $twig->addGlobal('foo', 'bar'); - $template = $twig->loadTemplate('index'); + $template = $twig->load('index'); $this->assertEquals('bar', $template->render([])); /* to be uncomment in Twig 2.0 @@ -141,7 +141,7 @@ public function testGlobals() $twig = new Environment($loader); $twig->addGlobal('foo', 'foo'); $twig->getGlobals(); - $twig->loadTemplate('index'); + $twig->load('index'); try { $twig->addGlobal('bar', 'bar'); $this->fail(); @@ -166,7 +166,7 @@ public function testGlobals() $twig->addGlobal('foo', 'foo'); $twig->getGlobals(); $twig->getFunctions(); - $twig->loadTemplate('index'); + $twig->load('index'); try { $twig->addGlobal('bar', 'bar'); $this->fail(); @@ -176,7 +176,7 @@ public function testGlobals() // test adding globals after a template has been loaded without call to getGlobals $twig = new Environment($loader); - $twig->loadTemplate('index'); + $twig->load('index'); try { $twig->addGlobal('bar', 'bar'); $this->fail(); @@ -238,7 +238,7 @@ public function testAutoReloadCacheMiss() $cache->expects($this->once()) ->method('load'); - $twig->loadTemplate($templateName); + $twig->load($templateName); } public function testAutoReloadCacheHit() @@ -266,7 +266,7 @@ public function testAutoReloadCacheHit() $cache->expects($this->atLeastOnce()) ->method('load'); - $twig->loadTemplate($templateName); + $twig->load($templateName); } public function testAutoReloadOutdatedCacheHit() @@ -294,7 +294,7 @@ public function testAutoReloadOutdatedCacheHit() $cache->expects($this->once()) ->method('load'); - $twig->loadTemplate($templateName); + $twig->load($templateName); } /** @@ -498,33 +498,6 @@ public function testAddRuntimeLoader() $this->assertEquals('foo', $twig->render('func_string_named_args')); } - /** - * @expectedException \Twig\Error\RuntimeError - * @expectedExceptionMessage Circular reference detected for Twig template "base.html.twig", path: base.html.twig -> base.html.twig in "base.html.twig" at line 1 - */ - public function testFailLoadTemplateOnCircularReference() - { - $twig = new Environment(new ArrayLoader([ - 'base.html.twig' => '{% extends "base.html.twig" %}', - ])); - - $twig->loadTemplate('base.html.twig'); - } - - /** - * @expectedException \Twig\Error\RuntimeError - * @expectedExceptionMessage Circular reference detected for Twig template "base1.html.twig", path: base1.html.twig -> base2.html.twig -> base1.html.twig in "base1.html.twig" at line 1 - */ - public function testFailLoadTemplateOnComplexCircularReference() - { - $twig = new Environment(new ArrayLoader([ - 'base1.html.twig' => '{% extends "base2.html.twig" %}', - 'base2.html.twig' => '{% extends "base1.html.twig" %}', - ])); - - $twig->loadTemplate('base1.html.twig'); - } - protected function getMockLoader($templateName, $templateContent) { // to be removed in 2.0 diff --git a/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php b/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php index 1696938071..6a447a99a9 100644 --- a/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php +++ b/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php @@ -55,8 +55,9 @@ public function getFailingTestsForAssignment() public function testArrayExpression($template, $expected) { $env = new Environment($this->getMockBuilder('\Twig\Loader\LoaderInterface')->getMock(), ['cache' => false, 'autoescape' => false]); - $stream = $env->tokenize(new Source($template, '')); + $stream = $env->tokenize($source = new Source($template, '')); $parser = new Parser($env); + $expected->setSourceContext($source); $this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0)->getNode('expr')); } @@ -175,8 +176,9 @@ public function testStringExpressionDoesNotConcatenateTwoConsecutiveStrings() public function testStringExpression($template, $expected) { $env = new Environment($this->getMockBuilder('\Twig\Loader\LoaderInterface')->getMock(), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]); - $stream = $env->tokenize(new Source($template, '')); + $stream = $env->tokenize($source = new Source($template, '')); $parser = new Parser($env); + $expected->setSourceContext($source); $this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0)->getNode('expr')); } diff --git a/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php b/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php index de9ced0234..3420b7eae4 100644 --- a/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php +++ b/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php @@ -118,7 +118,7 @@ public function testSandboxUnallowedToString($template) { $twig = $this->getEnvironment(true, [], ['index' => $template], [], ['upper'], ['FooObject' => 'getAnotherFooObject'], [], ['random']); try { - $twig->loadTemplate('index')->render(self::$params); + $twig->load('index')->render(self::$params); $this->fail('Sandbox throws a SecurityError exception if an unallowed method (__toString()) is called in the template'); } catch (SecurityError $e) { $this->assertInstanceOf('\Twig\Sandbox\SecurityNotAllowedMethodError', $e, 'Exception should be an instance of Twig_Sandbox_SecurityNotAllowedMethodError'); diff --git a/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php b/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php index aa41b8326e..fd7a4ebfc4 100644 --- a/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php +++ b/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php @@ -44,7 +44,7 @@ protected function tearDown() public function testWritingCacheFiles() { $name = 'index'; - $this->env->loadTemplate($name); + $this->env->load($name); $cacheFileName = $this->env->getCacheFilename($name); $this->assertFileExists($cacheFileName, 'Cache file does not exist.'); @@ -56,7 +56,7 @@ public function testWritingCacheFiles() public function testClearingCacheFiles() { $name = 'index2'; - $this->env->loadTemplate($name); + $this->env->load($name); $cacheFileName = $this->env->getCacheFilename($name); $this->assertFileExists($cacheFileName, 'Cache file does not exist.'); diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_extends.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_extends.test new file mode 100644 index 0000000000..2ab298059d --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_extends.test @@ -0,0 +1,12 @@ +--TEST-- +Exception thrown from a child for an extension error +--TEMPLATE-- +{% extends 'base.twig' %} +--TEMPLATE(base.twig)-- + + +{{ random([]) }} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\RuntimeError: The random function cannot pick from an empty array in "base.twig" at line 4. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_include.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_include.test new file mode 100644 index 0000000000..e2281b2903 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_include.test @@ -0,0 +1,12 @@ +--TEST-- +Exception thrown from an include for an extension error +--TEMPLATE-- +{% include 'content.twig' %} +--TEMPLATE(content.twig)-- + + +{{ random([]) }} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\RuntimeError: The random function cannot pick from an empty array in "content.twig" at line 4. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_parent.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_parent.test index 566ee72192..07f855a3fe 100644 --- a/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_parent.test +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_parent.test @@ -4,5 +4,7 @@ Exception for an undefined parent {% extends 'foo.html' %} {% set foo = "foo" %} +--DATA-- +return [] --EXCEPTION-- Twig\Error\LoaderError: Template "foo.html" is not defined in "index.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_argument_defined_twice.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_argument_defined_twice.test new file mode 100644 index 0000000000..36539a6d13 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_argument_defined_twice.test @@ -0,0 +1,8 @@ +--TEST-- +Argument is defined twice in a call +--TEMPLATE-- +{{ date(987654, date = 123456) }} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\SyntaxError: Argument "date" is defined twice for function "date" in "index.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_positional_arg_after_named_arg.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_positional_arg_after_named_arg.test new file mode 100644 index 0000000000..729c674859 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_positional_arg_after_named_arg.test @@ -0,0 +1,8 @@ +--TEST-- +Positional arguments after named arguments in a call +--TEMPLATE-- +{{ date(date = 123456, 'Y-m-d') }} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\SyntaxError: Positional arguments cannot be used after named arguments for function "date" in "index.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/floats.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/floats.test index cf563a0320..cdf871cde1 100644 --- a/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/floats.test +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/floats.test @@ -9,7 +9,7 @@ version_compare(phpversion(), '7.0.0', '>=') {{ val2 is same as (0.0) ? 'Yes' : 'No' }} {{ val is same as (val2) ? 'Yes' : 'No' }} --DATA-- -return array('val' => 0.0) +return ['val' => 0.0] --EXPECT-- Yes Yes diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length.test index 67d2f6ac8c..52ad9e8b24 100644 --- a/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length.test +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length.test @@ -11,6 +11,7 @@ {{ magic|length }} {{ non_countable|length }} {{ simple_xml_element|length }} +{{ iterator|length }} --DATA-- return [ 'array' => [1, 4], @@ -23,6 +24,7 @@ return [ 'magic' => new MagicCallStub(), /* used to assert we do *not* call __call */ 'non_countable' => new \StdClass(), 'simple_xml_element' => new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><doc><elem/><elem/></doc>'), + 'iterator' => new \SimpleIteratorForTesting() ] --EXPECT-- 2 @@ -35,3 +37,4 @@ return [ 1 1 2 +7 diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing_exists.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing_exists.test new file mode 100644 index 0000000000..fc2d211ad8 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing_exists.test @@ -0,0 +1,11 @@ +--TEST-- +"include" function +--TEMPLATE-- +{{ include("included.twig", ignore_missing = true) }} +NOT DISPLAYED +--TEMPLATE(included.twig)-- +{{ include("DOES NOT EXIST") }} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\LoaderError: Template "DOES NOT EXIST" is not defined in "included.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/include_missing_extends.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/include_missing_extends.test new file mode 100644 index 0000000000..810ae82480 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/include_missing_extends.test @@ -0,0 +1,13 @@ +--TEST-- +"include" function +--TEMPLATE-- +{{ include(['bad.twig', 'good.twig'], ignore_missing = true) }} +NOT DISPLAYED +--TEMPLATE(bad.twig)-- +{% extends 'DOES NOT EXIST' %} +--TEMPLATE(good.twig)-- +NOT DISPLAYED +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\LoaderError: Template "DOES NOT EXIST" is not defined in "bad.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string_error.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string_error.test new file mode 100644 index 0000000000..900d238bd2 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string_error.test @@ -0,0 +1,8 @@ +--TEST-- +"template_from_string" function +--TEMPLATE-- +{% include template_from_string("{{ not a Twig template ", "foo.twig") %} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\SyntaxError: Unclosed "variable" in "foo.twig (string template 4900163d56b1af4b704c6b0afee7f98ba53418ce7a93d37a3af1882735baf9cd)" at line 1. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test index 1ed2bf35a3..3d8d4f8fdd 100644 --- a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test @@ -11,19 +11,40 @@ 3. Conditional expression with a variable {{ true ? "<br />" : someVar }} +{{ false ? "<br />" : someVar }} +{{ true ? someVar : "<br />" }} +{{ false ? someVar : "<br />" }} 4. Nested conditionals with only literals {{ true ? (true ? "<br />" : "<br>") : "\n" }} 5. Nested conditionals with a variable {{ true ? (true ? "<br />" : someVar) : "\n" }} +{{ true ? (false ? "<br />" : someVar) : "\n" }} +{{ true ? (true ? someVar : "<br />") : "\n" }} +{{ true ? (false ? someVar : "<br />") : "\n" }} +{{ false ? "\n" : (true ? someVar : "<br />") }} +{{ false ? "\n" : (false ? someVar : "<br />") }} 6. Nested conditionals with a variable marked safe {{ true ? (true ? "<br />" : someVar|raw) : "\n" }} +{{ true ? (false ? "<br />" : someVar|raw) : "\n" }} +{{ true ? (true ? someVar|raw : "<br />") : "\n" }} +{{ true ? (false ? someVar|raw : "<br />") : "\n" }} +{{ false ? "\n" : (true ? someVar|raw : "<br />") }} +{{ false ? "\n" : (false ? someVar|raw : "<br />") }} + +7. Without then clause +{{ "<br />" ?: someVar }} +{{ someFalseVar ?: "<br />" }} + +8. NullCoalesce +{{ aaaa ?? "<br />" }} +{{ "<br />" ?? someVar }} {% endautoescape %} --DATA-- -return [] +return ['someVar' => '<br />', 'someFalseVar' => false] --EXPECT-- 1. Simple literal @@ -33,13 +54,34 @@ return [] <br /> 3. Conditional expression with a variable +<br /> <br /> +<br /> +<br /> 4. Nested conditionals with only literals <br /> 5. Nested conditionals with a variable +<br /> <br /> +<br /> +<br /> +<br /> +<br /> 6. Nested conditionals with a variable marked safe <br /> +<br /> +<br /> +<br /> +<br /> +<br /> + +7. Without then clause +<br /> +<br /> + +8. NullCoalesce +<br /> +<br /> diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing_exists.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing_exists.test new file mode 100644 index 0000000000..1af012210e --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing_exists.test @@ -0,0 +1,11 @@ +--TEST-- +"include" tag +--TEMPLATE-- +{% include "included.twig" ignore missing %} +NOT DISPLAYED +--TEMPLATE(included.twig)-- +{% include "DOES NOT EXIST" %} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\LoaderError: Template "DOES NOT EXIST" is not defined in "included.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/include_missing_extends.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/include_missing_extends.test new file mode 100644 index 0000000000..d0d1bfe590 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/include_missing_extends.test @@ -0,0 +1,13 @@ +--TEST-- +"include" tag +--TEMPLATE-- +{% include ['bad.twig', 'good.twig'] ignore missing %} +NOT DISPLAYED +--TEMPLATE(bad.twig)-- +{% extends 'DOES NOT EXIST' %} +--TEMPLATE(good.twig)-- +NOT DISPLAYED +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\LoaderError: Template "DOES NOT EXIST" is not defined in "bad.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/only.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/only.test index d595f8061b..8da402f7a8 100644 --- a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/only.test +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/only.test @@ -3,14 +3,18 @@ --TEMPLATE-- {% include "foo.twig" %} {% include "foo.twig" only %} -{% include "foo.twig" with {'foo1': 'bar'} %} -{% include "foo.twig" with {'foo1': 'bar'} only %} +{% include "foo.twig" with vars1 %} +{% include "foo.twig" with vars1 only %} +{% include "foo.twig" with vars2 %} +{% include "foo.twig" with vars2 only %} --TEMPLATE(foo.twig)-- {% for k, v in _context %}{{ k }},{% endfor %} --DATA-- -return ['foo' => 'bar'] +return ['vars1' => ['foo1' => 'bar'], 'vars2' => new ArrayObject(['foo2' => 'bar'])] --EXPECT-- -foo,global,_parent, +vars1,vars2,global,_parent, global,_parent, -foo,global,foo1,_parent, +vars1,vars2,global,foo1,_parent, foo1,global,_parent, +vars1,vars2,global,foo2,_parent, +foo2,global,_parent, diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/with_variables.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/with_variables.test index 3b192aeb26..45a05199ec 100644 --- a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/with_variables.test +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/with_variables.test @@ -2,11 +2,13 @@ "include" tag accept variables --TEMPLATE-- {% include "foo.twig" with {'foo': 'bar'} %} -{% include "foo.twig" with vars %} +{% include "foo.twig" with vars1 %} +{% include "foo.twig" with vars2 %} --TEMPLATE(foo.twig)-- {{ foo }} --DATA-- -return ['vars' => ['foo' => 'bar']] +return ['vars1' => ['foo' => 'bar'], 'vars2' => new ArrayObject(['foo' => 'bar'])] --EXPECT-- bar bar +bar diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/array.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/array.test new file mode 100644 index 0000000000..b432427e4a --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/array.test @@ -0,0 +1,16 @@ +--TEST-- +sandbox tag +--TEMPLATE-- +{%- sandbox %} + {%- include "foo.twig" %} +{%- endsandbox %} +--TEMPLATE(foo.twig)-- +{{ [a][0] }} +{{ dump([a][0]) }} +--DATA-- +return ['a' => 'b'] +--CONFIG-- +return ['autoescape' => false, 'debug' => true] +--EXPECT-- +b +string(1) "b" diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture_scope.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture_scope.test new file mode 100644 index 0000000000..bb2bbebaf0 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture_scope.test @@ -0,0 +1,10 @@ +--TEST-- +"set" tag block capture +--TEMPLATE-- +{% set foo %}{{ foo }}{% endset %} + +{{ foo }} +--DATA-- +return ['foo' => 'foo'] +--EXPECT-- +foo diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance.test new file mode 100644 index 0000000000..79e89ce79b --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance.test @@ -0,0 +1,24 @@ +--TEST-- +"set" tag with inheritance +--TEMPLATE-- +{% extends "layout.twig" %} + +{% set bar %}bar{% endset %} + +{% block var_from_child %} + {{- bar -}} +{% endblock %} +--TEMPLATE(layout.twig)-- +{% set foo %}foo{% endset %} + +{% block var_from_layout %} + {{- foo -}} +{% endblock %} + +{% block var_from_child %} +{% endblock %} +--DATA-- +return [] +--EXPECT-- +foo +bar diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance_overriding.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance_overriding.test new file mode 100644 index 0000000000..2d23c83ae6 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance_overriding.test @@ -0,0 +1,24 @@ +--TEST-- +"set" tag with inheritance +--TEMPLATE-- +{% extends "layout.twig" %} + +{% set foo %}bar{% endset %} + +{% block var_from_child %} + {{- foo -}} +{% endblock %} +--TEMPLATE(layout.twig)-- +{% set foo %}foo{% endset %} + +{% block var_from_layout %} + {{- foo -}} +{% endblock %} + +{% block var_from_child %} +{% endblock %} +--DATA-- +return [] +--EXPECT-- +foo +foo diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/mutating.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/mutating.test new file mode 100644 index 0000000000..ae388bb873 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/mutating.test @@ -0,0 +1,17 @@ +--TEST-- +"set" tag +--TEMPLATE-- +{% set foo = "foo" %} + +{% set bar %} + {%- set foo = "bar" -%} + bar +{% endset %} + +{{ foo }} +{{ bar }} +--DATA-- +return [] +--EXPECT-- +bar +bar diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/globals.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/globals.test new file mode 100644 index 0000000000..b030e7eff3 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/globals.test @@ -0,0 +1,10 @@ +--TEST-- +"with" tag +--TEMPLATE-- +{% with [] only %} + {{ global }} +{% endwith %} +--DATA-- +return [] +--EXPECT-- +global diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/iterable.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/iterable.test new file mode 100644 index 0000000000..1b0cbc63e5 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/iterable.test @@ -0,0 +1,10 @@ +--TEST-- +"with" tag with an iterable expression +--TEMPLATE-- +{% with vars %} + {{ foo }}{{ bar }} +{% endwith %} +--DATA-- +return ['vars' => new ArrayObject(['foo' => 'baz', 'bar' => 'qux'])] +--EXPECT-- +bazqux diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined_on_complex_expr.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined_on_complex_expr.test new file mode 100644 index 0000000000..2d0615832f --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined_on_complex_expr.test @@ -0,0 +1,8 @@ +--TEST-- +"defined" support for "complex" expressions +--TEMPLATE-- +{{ (1 + 2) is defined ? 'ok' : 'ko' }} +--DATA-- +return [] +--EXCEPTION-- +Twig\Error\SyntaxError: The "defined" test only works with simple variables in "index.twig" at line 2. diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/trim_block.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_block.test similarity index 92% rename from vendor/twig/twig/test/Twig/Tests/Fixtures/tags/trim_block.test rename to vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_block.test index f1a1310ad9..346a11076c 100644 --- a/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/trim_block.test +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_block.test @@ -1,9 +1,6 @@ --TEST-- Whitespace trimming on tags. --TEMPLATE-- -{{ 5 * '{#-'|length }} -{{ '{{-'|length * 5 + '{%-'|length }} - Trim on control tag: {% for i in range(1, 9) -%} {{ i }} @@ -53,9 +50,6 @@ end --DATA-- return ['leading' => 'leading space', 'trailing' => 'trailing space', 'both' => 'both'] --EXPECT-- -15 -18 - Trim on control tag: 123456789 diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_delimiter_as_strings.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_delimiter_as_strings.test new file mode 100644 index 0000000000..a58818dde4 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_delimiter_as_strings.test @@ -0,0 +1,10 @@ +--TEST-- +Whitespace trimming as strings. +--TEMPLATE-- +{{ 5 * '{#-'|length }} +{{ '{{-'|length * 5 + '{%-'|length }} +--DATA-- +return [] +--EXPECT-- +15 +18 diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_left.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_left.test new file mode 100644 index 0000000000..75d0f80319 --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_left.test @@ -0,0 +1,32 @@ +--TEST-- +Whitespace trimming on tags (left side). +--TEMPLATE-- +**{% if true %} +foo + + {%- endif %}** + +** + + {{- 'foo' }}** + +** + + +{#- comment #}** + +**{% verbatim %} +foo + + {%- endverbatim %}** +--DATA-- +return [] +--EXPECT-- +**foo** + +**foo** + +**** + +** +foo** diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_left.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_left.test new file mode 100644 index 0000000000..e5e845f08b --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_left.test @@ -0,0 +1,33 @@ +--TEST-- +Line whitespace trimming on tags (left side). +--TEMPLATE-- +**{% if true %} +foo + {%~ endif %}** + +** + {{~ 'foo' }}** + +** + {#~ comment #}** + +**{% verbatim %} +foo + + {%~ endverbatim %}** +--DATA-- +return [] +--EXPECT-- +**foo +** + +** +foo** + +** +** + +** +foo + +** diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_right.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_right.test new file mode 100644 index 0000000000..e7b510c85d --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_right.test @@ -0,0 +1,32 @@ +--TEST-- +Line whitespace trimming on tags (right side). +--TEMPLATE-- +**{% if true ~%} +foo{% endif %}** + +**{{ 'foo' ~}} +foo +** + +**{# comment ~#} + foo +** + +**{% verbatim ~%} + foo{% endverbatim %}** +--DATA-- +return [] +--EXPECT-- +** +foo** + +**foo +foo +** + +** + foo +** + +** + foo** diff --git a/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_right.test b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_right.test new file mode 100644 index 0000000000..0ec3b0ceaa --- /dev/null +++ b/vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_right.test @@ -0,0 +1,28 @@ +--TEST-- +Whitespace trimming on tags (right side). +--TEMPLATE-- +**{% if true -%} + + foo{% endif %}** + +**{{ 'foo' -}} + +** + +**{# comment -#} + +** + +**{% verbatim -%} + +foo{% endverbatim %}** +--DATA-- +return [] +--EXPECT-- +**foo** + +**foo** + +**** + +**foo** diff --git a/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php b/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php index be25047c8a..e4b7d1d82f 100644 --- a/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php +++ b/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php @@ -34,7 +34,7 @@ class Twig_Tests_IntegrationTest extends IntegrationTestCase { public function getExtensions() { - $policy = new SecurityPolicy([], [], [], [], []); + $policy = new SecurityPolicy([], [], [], [], ['dump']); return [ new DebugExtension(), @@ -345,3 +345,40 @@ public function getIterator() return new \ArrayIterator($this->data); } } + +class SimpleIteratorForTesting implements Iterator +{ + private $data = [1, 2, 3, 4, 5, 6, 7]; + private $key = 0; + + public function current() + { + return $this->key; + } + + public function next() + { + ++$this->key; + } + + public function key() + { + return $this->key; + } + + public function valid() + { + return isset($this->data[$this->key]); + } + + public function rewind() + { + $this->key = 0; + } + + public function __toString() + { + // for testing, make sure string length returned is not the same as the `iterator_count` + return str_repeat('X', iterator_count($this) + 10); + } +} diff --git a/vendor/twig/twig/test/Twig/Tests/Node/IncludeTest.php b/vendor/twig/twig/test/Twig/Tests/Node/IncludeTest.php index bdb9d0a995..ae8ff074c1 100644 --- a/vendor/twig/twig/test/Twig/Tests/Node/IncludeTest.php +++ b/vendor/twig/twig/test/Twig/Tests/Node/IncludeTest.php @@ -62,27 +62,31 @@ public function getTests() $node = new IncludeNode($expr, $vars, false, false, 1); $tests[] = [$node, <<<EOF // line 1 -\$this->loadTemplate("foo.twig", null, 1)->display(array_merge(\$context, ["foo" => true])); +\$this->loadTemplate("foo.twig", null, 1)->display(twig_array_merge(\$context, ["foo" => true])); EOF ]; $node = new IncludeNode($expr, $vars, true, false, 1); $tests[] = [$node, <<<EOF // line 1 -\$this->loadTemplate("foo.twig", null, 1)->display(["foo" => true]); +\$this->loadTemplate("foo.twig", null, 1)->display(twig_to_array(["foo" => true])); EOF ]; $node = new IncludeNode($expr, $vars, true, true, 1); $tests[] = [$node, <<<EOF // line 1 +\$__internal_%s = null; try { - \$this->loadTemplate("foo.twig", null, 1)->display(["foo" => true]); + \$__internal_%s = \$this->loadTemplate("foo.twig", null, 1); } catch (LoaderError \$e) { // ignore missing template } +if (\$__internal_%s) { + \$__internal_%s->display(twig_to_array(["foo" => true])); +} EOF - ]; + , null, true]; return $tests; } diff --git a/vendor/twig/twig/test/Twig/Tests/Node/ModuleTest.php b/vendor/twig/twig/test/Twig/Tests/Node/ModuleTest.php index 875bea2040..213350a2c2 100644 --- a/vendor/twig/twig/test/Twig/Tests/Node/ModuleTest.php +++ b/vendor/twig/twig/test/Twig/Tests/Node/ModuleTest.php @@ -140,14 +140,13 @@ public function __construct(Environment \$env) { parent::__construct(\$env); - // line 1 - \$this->parent = \$this->loadTemplate("layout.twig", "foo.twig", 1); \$this->blocks = [ ]; } protected function doGetParent(array \$context) { + // line 1 return "layout.twig"; } @@ -156,6 +155,7 @@ protected function doDisplay(array \$context, array \$blocks = []) // line 2 \$context["macro"] = \$this->loadTemplate("foo.twig", "foo.twig", 2); // line 1 + \$this->parent = \$this->loadTemplate("layout.twig", "foo.twig", 1); \$this->parent->display(\$context, array_merge(\$this->blocks, \$blocks)); } @@ -171,7 +171,7 @@ public function isTraitable() public function getDebugInfo() { - return array ( 37 => 1, 35 => 2, 22 => 1,); + return array ( 36 => 1, 34 => 2, 28 => 1,); } /** @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead */ diff --git a/vendor/typo3/phar-stream-wrapper/README.md b/vendor/typo3/phar-stream-wrapper/README.md index b632784bdd..179bb6fd77 100644 --- a/vendor/typo3/phar-stream-wrapper/README.md +++ b/vendor/typo3/phar-stream-wrapper/README.md @@ -63,7 +63,7 @@ adjusted to according requirements. ``` $behavior = new \TYPO3\PharStreamWrapper\Behavior(); -Manager::initialize( +\TYPO3\PharStreamWrapper\Manager::initialize( $behavior->withAssertion(new PharExtensionInterceptor()) ); @@ -90,7 +90,7 @@ if (in_array('phar', stream_get_wrappers())) { + `COMMAND_UNLINK` + `COMMAND_URL_STAT` -## Interceptor +## Interceptors The following interceptor is shipped with the package and ready to use in order to block any Phar invocation of files not having a `.phar` suffix. Besides that @@ -137,9 +137,72 @@ class PharExtensionInterceptor implements Assertable } ``` +### ConjunctionInterceptor + +This interceptor combines multiple interceptors implementing `Assertable`. +It succeeds when all nested interceptors succeed as well (logical `AND`). + +``` +$behavior = new \TYPO3\PharStreamWrapper\Behavior(); +\TYPO3\PharStreamWrapper\Manager::initialize( + $behavior->withAssertion(new ConjunctionInterceptor(array( + new PharExtensionInterceptor(), + new PharMetaDataInterceptor() + ))) +); +``` + +### PharExtensionInterceptor + +This (basic) interceptor just checks whether the invoked Phar archive has +an according `.phar` file extension. Resolving symbolic links as well as +Phar internal alias resolving are considered as well. + +``` +$behavior = new \TYPO3\PharStreamWrapper\Behavior(); +\TYPO3\PharStreamWrapper\Manager::initialize( + $behavior->withAssertion(new PharExtensionInterceptor()) +); +``` + +### PharMetaDataInterceptor + +This interceptor is actually checking serialized Phar meta-data against +PHP objects and would consider a Phar archive malicious in case not only +scalar values are found. A custom low-level `Phar\Reader` is used in order to +avoid using PHP's `Phar` object which would trigger the initial vulnerability. + +``` +$behavior = new \TYPO3\PharStreamWrapper\Behavior(); +\TYPO3\PharStreamWrapper\Manager::initialize( + $behavior->withAssertion(new PharMetaDataInterceptor()) +); +``` + +## Reader + +* `Phar\Reader::__construct(string $fileName)`: Creates low-level reader for Phar archive +* `Phar\Reader::resolveContainer(): Phar\Container`: Resolves model representing Phar archive +* `Phar\Container::getStub(): Phar\Stub`: Resolves (plain PHP) stub section of Phar archive +* `Phar\Container::getManifest(): Phar\Manifest`: Resolves parsed Phar archive manifest as + documented at http://php.net/manual/en/phar.fileformat.manifestfile.php +* `Phar\Stub::getMappedAlias(): string`: Resolves internal Phar archive alias defined in stub + using `Phar::mapPhar('alias.phar')` - actually the plain PHP source is analyzed here +* `Phar\Manifest::getAlias(): string` - Resolves internal Phar archive alias defined in manifest + using `Phar::setAlias('alias.phar')` +* `Phar\Manifest::getMetaData(): string`: Resolves serialized Phar archive meta-data +* `Phar\Manifest::deserializeMetaData(): mixed`: Resolves deserialized Phar archive meta-data + containing only scalar values - in case an object is determined, an according + `Phar\DeserializationException` will be thrown + +``` +$reader = new Phar\Reader('example.phar'); +var_dump($reader->resolveContainer()->getManifest()->deserializeMetaData()); +``` + ## Helper -* `Helper::determineBaseFile(string $path)`: Determines base file that can be +* `Helper::determineBaseFile(string $path): string`: Determines base file that can be accessed using the regular file system. For instance the following path `phar:///home/user/bundle.phar/content.txt` would be resolved to `/home/user/bundle.phar`. diff --git a/vendor/typo3/phar-stream-wrapper/composer.json b/vendor/typo3/phar-stream-wrapper/composer.json index d308f8c874..f1d25a070d 100644 --- a/vendor/typo3/phar-stream-wrapper/composer.json +++ b/vendor/typo3/phar-stream-wrapper/composer.json @@ -6,7 +6,10 @@ "homepage": "https://typo3.org/", "keywords": ["php", "phar", "stream-wrapper", "security"], "require": { - "php": "^5.3.3|^7.0" + "php": "^5.3.3|^7.0", + "ext-fileinfo": "*", + "ext-json": "*", + "brumann/polyfill-unserialize": "^1.0" }, "require-dev": { "phpunit/phpunit": "^4.8.36" diff --git a/vendor/typo3/phar-stream-wrapper/src/Collectable.php b/vendor/typo3/phar-stream-wrapper/src/Collectable.php new file mode 100644 index 0000000000..0ad2783d24 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Collectable.php @@ -0,0 +1,31 @@ +<?php +namespace TYPO3\PharStreamWrapper; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Resolver\PharInvocation; + +interface Collectable +{ + /** + * @param PharInvocation $invocation + * @param null $flags + * @return bool + */ + public function collect(PharInvocation $invocation, $flags = null); + + /** + * @param callable $callback + * @param bool $reverse + * @return null|PharInvocation + */ + public function findByCallback($callback, $reverse = false); +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Helper.php b/vendor/typo3/phar-stream-wrapper/src/Helper.php index 32d0da6975..c9c3a0a510 100644 --- a/vendor/typo3/phar-stream-wrapper/src/Helper.php +++ b/vendor/typo3/phar-stream-wrapper/src/Helper.php @@ -11,6 +11,13 @@ * The TYPO3 project - inspiring people to share! */ +/** + * Helper provides low-level tools on file name resolving. However it does not + * (and should not) maintain any runtime state information. In order to resolve + * Phar archive paths according resolvers have to be used. + * + * @see \TYPO3\PharStreamWrapper\Resolvable::resolve() + */ class Helper { /* @@ -54,6 +61,15 @@ public static function determineBaseFile($path) return null; } + /** + * @param string $path + * @return bool + */ + public static function hasPharPrefix($path) + { + return stripos($path, 'phar://') === 0; + } + /** * @param string $path * @return string @@ -61,7 +77,7 @@ public static function determineBaseFile($path) public static function removePharPrefix($path) { $path = trim($path); - if (stripos($path, 'phar://') !== 0) { + if (!static::hasPharPrefix($path)) { return $path; } return substr($path, 7); diff --git a/vendor/typo3/phar-stream-wrapper/src/Interceptor/ConjunctionInterceptor.php b/vendor/typo3/phar-stream-wrapper/src/Interceptor/ConjunctionInterceptor.php new file mode 100644 index 0000000000..b9c665e6ac --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Interceptor/ConjunctionInterceptor.php @@ -0,0 +1,88 @@ +<?php +namespace TYPO3\PharStreamWrapper\Interceptor; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Assertable; +use TYPO3\PharStreamWrapper\Exception; + +class ConjunctionInterceptor implements Assertable +{ + /** + * @var Assertable[] + */ + private $assertions; + + public function __construct(array $assertions) + { + $this->assertAssertions($assertions); + $this->assertions = $assertions; + } + + /** + * Executes assertions based on all contained assertions. + * + * @param string $path + * @param string $command + * @return bool + * @throws Exception + */ + public function assert($path, $command) + { + if ($this->invokeAssertions($path, $command)) { + return true; + } + throw new Exception( + sprintf( + 'Assertion failed in "%s"', + $path + ), + 1539625084 + ); + } + + /** + * @param Assertable[] $assertions + */ + private function assertAssertions(array $assertions) + { + foreach ($assertions as $assertion) { + if (!$assertion instanceof Assertable) { + throw new \InvalidArgumentException( + sprintf( + 'Instance %s must implement Assertable', + get_class($assertion) + ), + 1539624719 + ); + } + } + } + + /** + * @param string $path + * @param string $command + * @return bool + */ + private function invokeAssertions($path, $command) + { + try { + foreach ($this->assertions as $assertion) { + if (!$assertion->assert($path, $command)) { + return false; + } + } + } catch (Exception $exception) { + return false; + } + return true; + } +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharExtensionInterceptor.php b/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharExtensionInterceptor.php index db500afc8a..6e7aeedcbe 100644 --- a/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharExtensionInterceptor.php +++ b/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharExtensionInterceptor.php @@ -12,8 +12,8 @@ */ use TYPO3\PharStreamWrapper\Assertable; -use TYPO3\PharStreamWrapper\Helper; use TYPO3\PharStreamWrapper\Exception; +use TYPO3\PharStreamWrapper\Manager; class PharExtensionInterceptor implements Assertable { @@ -45,11 +45,11 @@ public function assert($path, $command) */ private function baseFileContainsPharExtension($path) { - $baseFile = Helper::determineBaseFile($path); - if ($baseFile === null) { + $invocation = Manager::instance()->resolve($path); + if ($invocation === null) { return false; } - $fileExtension = pathinfo($baseFile, PATHINFO_EXTENSION); + $fileExtension = pathinfo($invocation->getBaseName(), PATHINFO_EXTENSION); return strtolower($fileExtension) === 'phar'; } } diff --git a/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php b/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php new file mode 100644 index 0000000000..a1224a2504 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php @@ -0,0 +1,68 @@ +<?php +namespace TYPO3\PharStreamWrapper\Interceptor; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Assertable; +use TYPO3\PharStreamWrapper\Exception; +use TYPO3\PharStreamWrapper\Manager; +use TYPO3\PharStreamWrapper\Phar\DeserializationException; +use TYPO3\PharStreamWrapper\Phar\Reader; + +/** + * @internal Experimental implementation of checking against serialized objects in Phar meta-data + * @internal This functionality has not been 100% pentested... + */ +class PharMetaDataInterceptor implements Assertable +{ + /** + * Determines whether the according Phar archive contains + * (potential insecure) serialized objects. + * + * @param string $path + * @param string $command + * @return bool + * @throws Exception + */ + public function assert($path, $command) + { + if ($this->baseFileDoesNotHaveMetaDataIssues($path)) { + return true; + } + throw new Exception( + sprintf( + 'Problematic meta-data in "%s"', + $path + ), + 1539632368 + ); + } + + /** + * @param string $path + * @return bool + */ + private function baseFileDoesNotHaveMetaDataIssues($path) + { + $invocation = Manager::instance()->resolve($path); + if ($invocation === null) { + return false; + } + + try { + $reader = new Reader($invocation->getBaseName()); + $reader->resolveContainer()->getManifest()->deserializeMetaData(); + } catch (DeserializationException $exception) { + return false; + } + return true; + } +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Manager.php b/vendor/typo3/phar-stream-wrapper/src/Manager.php index 1eb9735d98..f938ad9854 100644 --- a/vendor/typo3/phar-stream-wrapper/src/Manager.php +++ b/vendor/typo3/phar-stream-wrapper/src/Manager.php @@ -11,7 +11,11 @@ * The TYPO3 project - inspiring people to share! */ -class Manager implements Assertable +use TYPO3\PharStreamWrapper\Resolver\PharInvocation; +use TYPO3\PharStreamWrapper\Resolver\PharInvocationCollection; +use TYPO3\PharStreamWrapper\Resolver\PharInvocationResolver; + +class Manager { /** * @var self @@ -23,14 +27,29 @@ class Manager implements Assertable */ private $behavior; + /** + * @var Resolvable + */ + private $resolver; + + /** + * @var Collectable + */ + private $collection; + /** * @param Behavior $behaviour + * @param Resolvable $resolver + * @param Collectable $collection * @return self */ - public static function initialize(Behavior $behaviour) - { + public static function initialize( + Behavior $behaviour, + Resolvable $resolver = null, + Collectable $collection = null + ) { if (self::$instance === null) { - self::$instance = new self($behaviour); + self::$instance = new self($behaviour, $resolver, $collection); return self::$instance; } throw new \LogicException( @@ -67,9 +86,22 @@ public static function destroy() /** * @param Behavior $behaviour + * @param Resolvable $resolver + * @param Collectable $collection */ - private function __construct(Behavior $behaviour) - { + private function __construct( + Behavior $behaviour, + Resolvable $resolver = null, + Collectable $collection = null + ) { + if ($collection === null) { + $collection = new PharInvocationCollection(); + } + if ($resolver === null) { + $resolver = new PharInvocationResolver(); + } + $this->collection = $collection; + $this->resolver = $resolver; $this->behavior = $behaviour; } @@ -82,4 +114,22 @@ public function assert($path, $command) { return $this->behavior->assert($path, $command); } + + /** + * @param string $path + * @param null|int $flags + * @return null|PharInvocation + */ + public function resolve($path, $flags = null) + { + return $this->resolver->resolve($path, $flags); + } + + /** + * @return Collectable + */ + public function getCollection() + { + return $this->collection; + } } diff --git a/vendor/typo3/phar-stream-wrapper/src/Phar/Container.php b/vendor/typo3/phar-stream-wrapper/src/Phar/Container.php new file mode 100644 index 0000000000..3fbbaa57b0 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Phar/Container.php @@ -0,0 +1,59 @@ +<?php +namespace TYPO3\PharStreamWrapper\Phar; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +class Container +{ + /** + * @var Stub + */ + private $stub; + + /** + * @var Manifest + */ + private $manifest; + + /** + * @param Stub $stub + * @param Manifest $manifest + */ + public function __construct(Stub $stub, Manifest $manifest) + { + $this->stub = $stub; + $this->manifest = $manifest; + } + + /** + * @return Stub + */ + public function getStub() + { + return $this->stub; + } + + /** + * @return Manifest + */ + public function getManifest() + { + return $this->manifest; + } + + /** + * @return string + */ + public function getAlias() + { + return $this->stub->getMappedAlias() ?: $this->manifest->getAlias(); + } +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Phar/DeserializationException.php b/vendor/typo3/phar-stream-wrapper/src/Phar/DeserializationException.php new file mode 100644 index 0000000000..5a675d34fe --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Phar/DeserializationException.php @@ -0,0 +1,18 @@ +<?php +namespace TYPO3\PharStreamWrapper\Phar; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Exception; + +class DeserializationException extends Exception +{ +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Phar/Manifest.php b/vendor/typo3/phar-stream-wrapper/src/Phar/Manifest.php new file mode 100644 index 0000000000..cf7a6210e5 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Phar/Manifest.php @@ -0,0 +1,176 @@ +<?php +namespace TYPO3\PharStreamWrapper\Phar; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use Brumann\Polyfill\Unserialize; + +class Manifest +{ + /** + * @param string $content + * @return self + * @see http://php.net/manual/en/phar.fileformat.phar.php + */ + public static function fromContent($content) + { + $target = new static(); + $target->manifestLength = Reader::resolveFourByteLittleEndian($content, 0); + $target->amountOfFiles = Reader::resolveFourByteLittleEndian($content, 4); + $target->flags = Reader::resolveFourByteLittleEndian($content, 10); + $target->aliasLength = Reader::resolveFourByteLittleEndian($content, 14); + $target->alias = substr($content, 18, $target->aliasLength); + $target->metaDataLength = Reader::resolveFourByteLittleEndian($content, 18 + $target->aliasLength); + $target->metaData = substr($content, 22 + $target->aliasLength, $target->metaDataLength); + + $apiVersionNibbles = Reader::resolveTwoByteBigEndian($content, 8); + $target->apiVersion = implode('.', array( + ($apiVersionNibbles & 0xf000) >> 12, + ($apiVersionNibbles & 0x0f00) >> 8, + ($apiVersionNibbles & 0x00f0) >> 4, + )); + + return $target; + } + + /** + * @var int + */ + private $manifestLength; + + /** + * @var int + */ + private $amountOfFiles; + + /** + * @var string + */ + private $apiVersion; + + /** + * @var int + */ + private $flags; + + /** + * @var int + */ + private $aliasLength; + + /** + * @var string + */ + private $alias; + + /** + * @var int + */ + private $metaDataLength; + + /** + * @var string + */ + private $metaData; + + /** + * Avoid direct instantiation. + */ + private function __construct() + { + } + + /** + * @return int + */ + public function getManifestLength() + { + return $this->manifestLength; + } + + /** + * @return int + */ + public function getAmountOfFiles() + { + return $this->amountOfFiles; + } + + /** + * @return string + */ + public function getApiVersion() + { + return $this->apiVersion; + } + + /** + * @return int + */ + public function getFlags() + { + return $this->flags; + } + + /** + * @return int + */ + public function getAliasLength() + { + return $this->aliasLength; + } + + /** + * @return string + */ + public function getAlias() + { + return $this->alias; + } + + /** + * @return int + */ + public function getMetaDataLength() + { + return $this->metaDataLength; + } + + /** + * @return string + */ + public function getMetaData() + { + return $this->metaData; + } + + /** + * @return mixed|null + */ + public function deserializeMetaData() + { + if (empty($this->metaData)) { + return null; + } + + $result = Unserialize::unserialize($this->metaData, array('allowed_classes' => false)); + + $serialized = json_encode($result); + if (strpos($serialized, '__PHP_Incomplete_Class_Name') !== false) { + throw new DeserializationException( + 'Meta-data contains serialized object', + 1539623382 + ); + } + + return $result; + } +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Phar/Reader.php b/vendor/typo3/phar-stream-wrapper/src/Phar/Reader.php new file mode 100644 index 0000000000..faa254fbd9 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Phar/Reader.php @@ -0,0 +1,222 @@ +<?php +namespace TYPO3\PharStreamWrapper\Phar; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +class Reader +{ + /** + * @var string + */ + private $fileName; + + /** + * @var string + */ + private $fileType; + + /** + * @param string $fileName + */ + public function __construct($fileName) + { + if (strpos($fileName, '://') !== false) { + throw new ReaderException( + 'File name must not contain stream prefix', + 1539623708 + ); + } + + $this->fileName = $fileName; + $this->fileType = $this->determineFileType(); + } + + /** + * @return Container + */ + public function resolveContainer() + { + $data = $this->extractData($this->resolveStream() . $this->fileName); + + if ($data['stubContent'] === null) { + throw new ReaderException( + 'Cannot resolve stub', + 1547807881 + ); + } + if ($data['manifestContent'] === null || $data['manifestLength'] === null) { + throw new ReaderException( + 'Cannot resolve manifest', + 1547807882 + ); + } + if (strlen($data['manifestContent']) < $data['manifestLength']) { + throw new ReaderException( + sprintf( + 'Exected manifest length %d, got %d', + strlen($data['manifestContent']), + $data['manifestLength'] + ), + 1547807883 + ); + } + + return new Container( + Stub::fromContent($data['stubContent']), + Manifest::fromContent($data['manifestContent']) + ); + } + + /** + * @param string $fileName e.g. '/path/file.phar' or 'compress.zlib:///path/file.phar' + * @return array + */ + private function extractData($fileName) + { + $stubContent = null; + $manifestContent = null; + $manifestLength = null; + + $resource = fopen($fileName, 'r'); + if (!is_resource($resource)) { + throw new ReaderException( + sprintf('Resource %s could not be opened', $fileName), + 1547902055 + ); + } + + while (!feof($resource)) { + $line = fgets($resource); + // stop reading file when manifest can be extracted + if ($manifestLength !== null && $manifestContent !== null && strlen($manifestContent) >= $manifestLength) { + break; + } + + $stubPosition = strpos($line, '<?php'); + $manifestPosition = strpos($line, '__HALT_COMPILER()'); + + // line contains both, start of (empty) stub and start of manifest + if ($stubContent === null && $stubPosition !== false + && $manifestContent === null && $manifestPosition !== false) { + $stubContent = substr($line, $stubPosition, $manifestPosition - $stubPosition - 1); + $manifestContent = preg_replace('#^.*__HALT_COMPILER\(\)[^>]*\?>(\r|\n)*#', '', $line); + $manifestLength = $this->resolveManifestLength($manifestContent); + // line contains start of stub + } elseif ($stubContent === null && $stubPosition !== false) { + $stubContent = substr($line, $stubPosition); + // line contains start of manifest + } elseif ($manifestContent === null && $manifestPosition !== false) { + $manifestContent = preg_replace('#^.*__HALT_COMPILER\(\)[^>]*\?>(\r|\n)*#', '', $line); + $manifestLength = $this->resolveManifestLength($manifestContent); + // manifest has been started (thus is cannot be stub anymore), add content + } elseif ($manifestContent !== null) { + $manifestContent .= $line; + $manifestLength = $this->resolveManifestLength($manifestContent); + // stub has been started (thus cannot be manifest here, yet), add content + } elseif ($stubContent !== null) { + $stubContent .= $line; + } + } + fclose($resource); + + return array( + 'stubContent' => $stubContent, + 'manifestContent' => $manifestContent, + 'manifestLength' => $manifestLength, + ); + } + + /** + * Resolves stream in order to handle compressed Phar archives. + * + * @return string + */ + private function resolveStream() + { + if ($this->fileType === 'application/x-gzip') { + return 'compress.zlib://'; + } elseif ($this->fileType === 'application/x-bzip2') { + return 'compress.bzip2://'; + } + return ''; + } + + /** + * @return string + */ + private function determineFileType() + { + $fileInfo = new \finfo(); + return $fileInfo->file($this->fileName, FILEINFO_MIME_TYPE); + } + + /** + * @param string $content + * @return int|null + */ + private function resolveManifestLength($content) + { + if (strlen($content) < 4) { + return null; + } + return static::resolveFourByteLittleEndian($content, 0); + } + + /** + * @param string $content + * @param int $start + * @return int + */ + public static function resolveFourByteLittleEndian($content, $start) + { + $payload = substr($content, $start, 4); + if (!is_string($payload)) { + throw new ReaderException( + sprintf('Cannot resolve value at offset %d', $start), + 1539614260 + ); + } + + $value = unpack('V', $payload); + if (!isset($value[1])) { + throw new ReaderException( + sprintf('Cannot resolve value at offset %d', $start), + 1539614261 + ); + } + return $value[1]; + } + + /** + * @param string $content + * @param int $start + * @return int + */ + public static function resolveTwoByteBigEndian($content, $start) + { + $payload = substr($content, $start, 2); + if (!is_string($payload)) { + throw new ReaderException( + sprintf('Cannot resolve value at offset %d', $start), + 1539614263 + ); + } + + $value = unpack('n', $payload); + if (!isset($value[1])) { + throw new ReaderException( + sprintf('Cannot resolve value at offset %d', $start), + 1539614264 + ); + } + return $value[1]; + } +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Phar/ReaderException.php b/vendor/typo3/phar-stream-wrapper/src/Phar/ReaderException.php new file mode 100644 index 0000000000..002afe158d --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Phar/ReaderException.php @@ -0,0 +1,18 @@ +<?php +namespace TYPO3\PharStreamWrapper\Phar; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Exception; + +class ReaderException extends Exception +{ +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Phar/Stub.php b/vendor/typo3/phar-stream-wrapper/src/Phar/Stub.php new file mode 100644 index 0000000000..7f72267f95 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Phar/Stub.php @@ -0,0 +1,65 @@ +<?php +namespace TYPO3\PharStreamWrapper\Phar; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +/** + * @internal Experimental implementation of Phar archive internals + */ +class Stub +{ + /** + * @param string $content + * @return self + */ + public static function fromContent($content) + { + $target = new static(); + $target->content = $content; + + if ( + stripos($content, 'Phar::mapPhar(') !== false + && preg_match('#Phar\:\:mapPhar\(([^)]+)\)#', $content, $matches) + ) { + // remove spaces, single & double quotes + // @todo `'my' . 'alias' . '.phar'` is not evaluated here + $target->mappedAlias = trim($matches[1], ' \'"'); + } + + return $target; + } + + /** + * @var string + */ + private $content; + + /** + * @var string + */ + private $mappedAlias = ''; + + /** + * @return string + */ + public function getContent() + { + return $this->content; + } + + /** + * @return string + */ + public function getMappedAlias() + { + return $this->mappedAlias; + } +} diff --git a/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php b/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php index 5a924e4ccd..b552d25dfa 100644 --- a/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php +++ b/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php @@ -11,6 +11,8 @@ * The TYPO3 project - inspiring people to share! */ +use TYPO3\PharStreamWrapper\Resolver\PharInvocation; + class PharStreamWrapper { /** @@ -29,6 +31,11 @@ class PharStreamWrapper */ protected $internalResource; + /** + * @var PharInvocation + */ + protected $invocation; + /** * @return bool */ @@ -409,7 +416,8 @@ public function url_stat($path, $flags) */ protected function assert($path, $command) { - if ($this->resolveAssertable()->assert($path, $command) === true) { + if (Manager::instance()->assert($path, $command) === true) { + $this->collectInvocation($path); return; } @@ -424,7 +432,22 @@ protected function assert($path, $command) } /** - * @return Assertable + * @param string $path + */ + protected function collectInvocation($path) + { + if (isset($this->invocation)) { + return; + } + + $manager = Manager::instance(); + $this->invocation = $manager->resolve($path); + $manager->getCollection()->collect($this->invocation); + } + + /** + * @return Manager|Assertable + * @deprecated Use Manager::instance() directly */ protected function resolveAssertable() { diff --git a/vendor/typo3/phar-stream-wrapper/src/Resolvable.php b/vendor/typo3/phar-stream-wrapper/src/Resolvable.php new file mode 100644 index 0000000000..5d5fdc63ee --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Resolvable.php @@ -0,0 +1,24 @@ +<?php +namespace TYPO3\PharStreamWrapper; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Resolver\PharInvocation; + +interface Resolvable +{ + /** + * @param string $path + * @param null|int $flags + * @return null|PharInvocation + */ + public function resolve($path, $flags = null); +} diff --git a/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocation.php b/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocation.php new file mode 100644 index 0000000000..d7ee96bc3b --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocation.php @@ -0,0 +1,77 @@ +<?php +namespace TYPO3\PharStreamWrapper\Resolver; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Exception; + +class PharInvocation +{ + /** + * @var string + */ + private $baseName; + + /** + * @var string + */ + private $alias; + + /** + * @param string $baseName + * @param string $alias + */ + public function __construct($baseName, $alias = '') + { + if ($baseName === '') { + throw new Exception( + 'Base-name cannot be empty', + 1551283689 + ); + } + $this->baseName = $baseName; + $this->alias = $alias; + } + + /** + * @return string + */ + public function __toString() + { + return $this->baseName; + } + + /** + * @return string + */ + public function getBaseName() + { + return $this->baseName; + } + + /** + * @return null|string + */ + public function getAlias() + { + return $this->alias; + } + + /** + * @param PharInvocation $other + * @return bool + */ + public function equals(PharInvocation $other) + { + return $other->baseName === $this->baseName + && $other->alias === $this->alias; + } +} \ No newline at end of file diff --git a/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationCollection.php b/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationCollection.php new file mode 100644 index 0000000000..d3a6ba8b29 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationCollection.php @@ -0,0 +1,143 @@ +<?php +namespace TYPO3\PharStreamWrapper\Resolver; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Collectable; + +class PharInvocationCollection implements Collectable +{ + const UNIQUE_INVOCATION = 1; + const UNIQUE_BASE_NAME = 2; + const DUPLICATE_ALIAS_WARNING = 32; + + /** + * @var PharInvocation[] + */ + private $invocations = array(); + + /** + * @param PharInvocation $invocation + * @param null|int $flags + * @return bool + */ + public function collect(PharInvocation $invocation, $flags = null) + { + if ($flags === null) { + $flags = static::UNIQUE_INVOCATION | static::DUPLICATE_ALIAS_WARNING; + } + if ($invocation->getBaseName() === '' + || $invocation->getAlias() === '' + || !$this->assertUniqueBaseName($invocation, $flags) + || !$this->assertUniqueInvocation($invocation, $flags) + ) { + return false; + } + if ($flags & static::DUPLICATE_ALIAS_WARNING) { + $this->triggerDuplicateAliasWarning($invocation); + } + + $this->invocations[] = $invocation; + return true; + } + + /** + * @param callable $callback + * @param bool $reverse + * @return null|PharInvocation + */ + public function findByCallback($callback, $reverse = false) + { + foreach ($this->getInvocations($reverse) as $invocation) { + if (call_user_func($callback, $invocation) === true) { + return $invocation; + } + } + return null; + } + + /** + * Asserts that base-name is unique. This disallows having multiple invocations for + * same base-name but having different alias names. + * + * @param PharInvocation $invocation + * @param int $flags + * @return bool + */ + private function assertUniqueBaseName(PharInvocation $invocation, $flags) + { + if (!($flags & static::UNIQUE_BASE_NAME)) { + return true; + } + return $this->findByCallback( + function (PharInvocation $candidate) use ($invocation) { + return $candidate->getBaseName() === $invocation->getBaseName(); + } + ) === null; + } + + /** + * Asserts that combination of base-name and alias is unique. This allows having multiple + * invocations for same base-name but having different alias names (for whatever reason). + * + * @param PharInvocation $invocation + * @param int $flags + * @return bool + */ + private function assertUniqueInvocation(PharInvocation $invocation, $flags) + { + if (!($flags & static::UNIQUE_INVOCATION)) { + return true; + } + return $this->findByCallback( + function (PharInvocation $candidate) use ($invocation) { + return $candidate->equals($invocation); + } + ) === null; + } + + /** + * @param PharInvocation $invocation + */ + private function triggerDuplicateAliasWarning(PharInvocation $invocation) + { + $sameAliasInvocation = $this->findByCallback( + function (PharInvocation $candidate) use ($invocation) { + return $candidate->getAlias() === $invocation->getAlias(); + }, + true + ); + if ($sameAliasInvocation === null) { + return; + } + trigger_error( + sprintf( + 'Alias %s cannot be used by %s, already used by %s', + $invocation->getAlias(), + $invocation->getBaseName(), + $sameAliasInvocation->getBaseName() + ), + E_USER_WARNING + ); + } + + /** + * @param bool $reverse + * @return PharInvocation[] + */ + private function getInvocations($reverse = false) + { + if ($reverse) { + return array_reverse($this->invocations); + } + return $this->invocations; + } +} \ No newline at end of file diff --git a/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php b/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php new file mode 100644 index 0000000000..b62b53ae31 --- /dev/null +++ b/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php @@ -0,0 +1,137 @@ +<?php +namespace TYPO3\PharStreamWrapper\Resolver; + +/* + * This file is part of the TYPO3 project. + * + * It is free software; you can redistribute it and/or modify it under the terms + * of the MIT License (MIT). For the full copyright and license information, + * please read the LICENSE file that was distributed with this source code. + * + * The TYPO3 project - inspiring people to share! + */ + +use TYPO3\PharStreamWrapper\Helper; +use TYPO3\PharStreamWrapper\Manager; +use TYPO3\PharStreamWrapper\Phar\Reader; +use TYPO3\PharStreamWrapper\Resolvable; + +class PharInvocationResolver implements Resolvable +{ + const RESOLVE_REALPATH = 1; + const RESOLVE_ALIAS = 2; + const ASSERT_INTERNAL_INVOCATION = 32; + + /** + * @var string[] + */ + private $invocationFunctionNames = array( + 'include', + 'include_once', + 'require', + 'require_once' + ); + + + /** + * Resolves PharInvocation value object (baseName and optional alias). + * + * Phar aliases are intended to be used only inside Phar archives, however + * PharStreamWrapper needs this information exposed outside of Phar as well + * It is possible that same alias is used for different $baseName values. + * That's why PharInvocationCollection behaves like a stack when resolving + * base-name for a given alias. On the other hand it is not possible that + * one $baseName is referring to multiple aliases. + * @see https://secure.php.net/manual/en/phar.setalias.php + * @see https://secure.php.net/manual/en/phar.mapphar.php + * + * @param string $path + * @param int|null $flags + * @return null|PharInvocation + */ + public function resolve($path, $flags = null) + { + $hasPharPrefix = Helper::hasPharPrefix($path); + if ($flags === null) { + $flags = static::RESOLVE_REALPATH | static::RESOLVE_ALIAS | static::ASSERT_INTERNAL_INVOCATION; + } + + if ($hasPharPrefix && $flags & static::RESOLVE_ALIAS) { + $invocation = $this->findByAlias($path); + if ($invocation !== null && $this->assertInternalInvocation($invocation, $flags)) { + return $invocation; + } elseif ($invocation !== null) { + return null; + } + } + + $baseName = Helper::determineBaseFile($path); + if ($baseName === null) { + return null; + } + + if ($flags & static::RESOLVE_REALPATH) { + $baseName = realpath($baseName); + } + if ($flags & static::RESOLVE_ALIAS) { + $reader = new Reader($baseName); + $alias = $reader->resolveContainer()->getAlias(); + } else { + $alias = ''; + } + + return new PharInvocation($baseName, $alias); + } + + /** + * @param string $path + * @return null|PharInvocation + */ + private function findByAlias($path) + { + $normalizedPath = Helper::normalizePath($path); + $possibleAlias = strstr($normalizedPath, '/', true); + if (empty($possibleAlias)) { + return null; + } + return Manager::instance()->getCollection()->findByCallback( + function (PharInvocation $candidate) use ($possibleAlias) { + return $candidate->getAlias() === $possibleAlias; + }, + true + ); + } + + /** + * @param PharInvocation $invocation + * @param int $flags + * @return bool + * @experimental + */ + private function assertInternalInvocation(PharInvocation $invocation, $flags) + { + if (!($flags & static::ASSERT_INTERNAL_INVOCATION)) { + return true; + } + + $trace = debug_backtrace(0); + $firstIndex = count($trace) - 1; + // initial invocation, most probably a CLI tool + if (isset($trace[$firstIndex]['file']) && $trace[$firstIndex]['file'] === $invocation->getBaseName()) { + return true; + } + // otherwise search for include/require invocations + foreach ($trace as $item) { + if (!isset($item['function']) || !isset($item['args'][0])) { + continue; + } + if ($item['args'][0] === $invocation->getBaseName() + && in_array($item['function'], $this->invocationFunctionNames, true) + ) { + return true; + } + } + + return false; + } +} -- GitLab