gulp-phug 1.3.4 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +23 -8
- package/package.json +4 -4
- package/support/composer.json +1 -1
- package/support/composer.lock +93 -178
- package/support/vendor/autoload.php +15 -0
- package/support/vendor/bin/phug +119 -0
- package/support/vendor/bin/var-dump-server +119 -0
- package/support/vendor/composer/ClassLoader.php +166 -32
- package/support/vendor/composer/InstalledVersions.php +387 -329
- package/support/vendor/composer/autoload_classmap.php +1 -5
- package/support/vendor/composer/autoload_files.php +2 -3
- package/support/vendor/composer/autoload_namespaces.php +1 -1
- package/support/vendor/composer/autoload_psr4.php +3 -4
- package/support/vendor/composer/autoload_real.php +12 -37
- package/support/vendor/composer/autoload_static.php +6 -17
- package/support/vendor/composer/installed.json +97 -184
- package/support/vendor/composer/installed.php +129 -151
- package/support/vendor/composer/platform_check.php +16 -4
- package/support/vendor/phug/phug/.github/workflows/coverage.yml +71 -0
- package/support/vendor/phug/phug/.github/workflows/multi-tester.yml +46 -0
- package/support/vendor/phug/phug/.github/workflows/split.yml +41 -0
- package/support/vendor/phug/phug/.github/workflows/style.yml +48 -0
- package/support/vendor/phug/phug/.github/workflows/tests.yml +49 -0
- package/support/vendor/phug/phug/.multi-tester.yml +42 -10
- package/support/vendor/phug/phug/composer.json +25 -16
- package/support/vendor/phug/phug/phpcs.xml +4 -0
- package/support/vendor/phug/phug/phpunit.xml +2 -0
- package/support/vendor/phug/phug/phug +1 -1
- package/support/vendor/phug/phug/release.php +8 -0
- package/support/vendor/phug/phug/src/Phug/Ast/Ast/Node.php +7 -1
- package/support/vendor/phug/phug/src/Phug/Ast/composer.json +1 -2
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/Element/BlockElement.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentNodeCompiler.php +9 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeNodeCompiler.php +1 -0
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ElementNodeCompiler.php +6 -0
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ImportNodeCompiler.php +4 -4
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompilerInterface.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/composer.json +5 -2
- package/support/vendor/phug/phug/src/Phug/DependencyInjection/DependencyInjection.php +1 -1
- package/support/vendor/phug/phug/src/Phug/DependencyInjection/composer.json +1 -2
- package/support/vendor/phug/phug/src/Phug/Event/Event/ListenerQueue.php +3 -0
- package/support/vendor/phug/phug/src/Phug/Event/EventManagerTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Event/composer.json +1 -2
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractFormat.php +15 -12
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AssignmentContainerInterface.php +2 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractAssignmentContainerElement.php +11 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractMarkupElement.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AssignmentElement.php +9 -4
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AttributeElement.php +4 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/CodeElement.php +2 -2
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MarkupElement.php +10 -8
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinCallElement.php +2 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinElement.php +2 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XmlFormat.php +213 -20
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/AssignmentHelpersTrait.php +7 -4
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/HandleVariable.php +4 -4
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/MagicAccessorTrait.php +1 -7
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/composer.json +1 -2
- package/support/vendor/phug/phug/src/Phug/Invoker/Invoker.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Invoker/composer.json +5 -2
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Partial/IndentStyleTrait.php +5 -5
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AssignmentScanner.php +8 -2
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AttributeScanner.php +23 -11
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/ConditionalScanner.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/FilterScanner.php +6 -10
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/IndentationScanner.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/KeywordScanner.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/MultilineScanner.php +6 -12
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/Partial/TrailingOutdentHandlerTrait.php +26 -0
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/TextScanner.php +3 -3
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/State.php +9 -9
- package/support/vendor/phug/phug/src/Phug/Lexer/composer.json +1 -2
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/Event/NodeEvent.php +3 -2
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AssignmentNode.php +5 -1
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AttributeNode.php +4 -1
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/ElementNode.php +5 -1
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/FilterNode.php +2 -1
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinCallNode.php +5 -1
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinNode.php +5 -1
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AbstractTokenHandler.php +87 -0
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AssignmentTokenHandler.php +6 -21
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeEndTokenHandler.php +5 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeStartTokenHandler.php +7 -23
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeTokenHandler.php +21 -19
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AutoCloseTokenHandler.php +5 -17
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/BlockTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CaseTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ClassTokenHandler.php +7 -34
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CodeTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CommentTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ConditionalTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoctypeTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/EachTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpansionTokenHandler.php +5 -11
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpressionTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/FilterTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ForTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IdTokenHandler.php +7 -33
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ImportTokenHandler.php +14 -20
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IndentTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationEndTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationStartTokenHandler.php +29 -30
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/KeywordTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinCallTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/NewLineTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/OutdentTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/Partial/StaticAttributeTrait.php +36 -0
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationEndTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationStartTokenHandler.php +7 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagTokenHandler.php +6 -21
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TextTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/VariableTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhenTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhileTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/YieldTokenHandler.php +4 -10
- package/support/vendor/phug/phug/src/Phug/Parser/Parser.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Parser/composer.json +1 -2
- package/support/vendor/phug/phug/src/Phug/Phug/Phug/Cli.php +5 -5
- package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/ExtensionsTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/FacadeOptionsTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Phug/Phug/Phug.php +14 -5
- package/support/vendor/phug/phug/src/Phug/Phug/composer.json +5 -2
- package/support/vendor/phug/phug/src/Phug/Reader/Reader.php +9 -9
- package/support/vendor/phug/phug/src/Phug/Reader/composer.json +4 -0
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/FileAdapter.php +21 -4
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/Stream/Template.php +5 -0
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/StreamAdapter.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/CacheInterface.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/AdapterTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/Debug/DebuggerTrait.php +56 -10
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/RendererOptionsTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/Dump.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/LinkDump.php +2 -2
- package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/ProfilerModule.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Renderer/composer.json +7 -3
- package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseTyped.php +67 -0
- package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseUntyped.php +67 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesInterface.php +16 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesOrderInterface.php +17 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesStorage.php +44 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/Collection.php +2 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/OrderableInterface.php +22 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/OrderedValue.php +25 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributeTrait.php +2 -1
- package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributesOrderTrait.php +19 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ModuleContainerTrait.php +3 -3
- package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OptionTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OrderTrait.php +27 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/StaticMemberTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ValueTrait.php +5 -3
- package/support/vendor/phug/phug/src/Phug/Util/Util/SandBox.php +1 -0
- package/support/vendor/phug/phug/src/Phug/Util/Util/TestCase.php +47 -4
- package/support/vendor/phug/phug/src/Phug/Util/composer.json +5 -6
- package/support/vendor/symfony/deprecation-contracts/CHANGELOG.md +5 -0
- package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/LICENSE +1 -1
- package/support/vendor/symfony/deprecation-contracts/README.md +26 -0
- package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/composer.json +9 -9
- package/support/vendor/symfony/deprecation-contracts/function.php +27 -0
- package/support/vendor/symfony/polyfill-mbstring/LICENSE +1 -1
- package/support/vendor/symfony/polyfill-mbstring/Mbstring.php +256 -57
- package/support/vendor/symfony/polyfill-mbstring/README.md +1 -1
- package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
- package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1 -1
- package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +102 -27
- package/support/vendor/symfony/polyfill-mbstring/bootstrap.php +33 -8
- package/support/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -0
- package/support/vendor/symfony/polyfill-mbstring/composer.json +5 -4
- package/support/vendor/symfony/var-dumper/CHANGELOG.md +63 -0
- package/support/vendor/symfony/var-dumper/Caster/AddressInfoCaster.php +82 -0
- package/support/vendor/symfony/var-dumper/Caster/AmqpCaster.php +12 -10
- package/support/vendor/symfony/var-dumper/Caster/ArgsStub.php +6 -7
- package/support/vendor/symfony/var-dumper/Caster/Caster.php +59 -31
- package/support/vendor/symfony/var-dumper/Caster/ClassStub.php +7 -9
- package/support/vendor/symfony/var-dumper/Caster/ConstStub.php +20 -4
- package/support/vendor/symfony/var-dumper/Caster/CurlCaster.php +31 -0
- package/support/vendor/symfony/var-dumper/Caster/CutArrayStub.php +1 -1
- package/support/vendor/symfony/var-dumper/Caster/CutStub.php +2 -2
- package/support/vendor/symfony/var-dumper/Caster/DOMCaster.php +61 -156
- package/support/vendor/symfony/var-dumper/Caster/DateCaster.php +27 -26
- package/support/vendor/symfony/var-dumper/Caster/DoctrineCaster.php +6 -4
- package/support/vendor/symfony/var-dumper/Caster/DsCaster.php +1 -1
- package/support/vendor/symfony/var-dumper/Caster/DsPairStub.php +1 -1
- package/support/vendor/symfony/var-dumper/Caster/EnumStub.php +4 -5
- package/support/vendor/symfony/var-dumper/Caster/ExceptionCaster.php +64 -49
- package/support/vendor/symfony/var-dumper/Caster/FFICaster.php +171 -0
- package/support/vendor/symfony/var-dumper/Caster/FiberCaster.php +43 -0
- package/support/vendor/symfony/var-dumper/Caster/FrameStub.php +6 -8
- package/support/vendor/symfony/var-dumper/Caster/GdCaster.php +30 -0
- package/support/vendor/symfony/var-dumper/Caster/GmpCaster.php +4 -2
- package/support/vendor/symfony/var-dumper/Caster/ImagineCaster.php +2 -0
- package/support/vendor/symfony/var-dumper/Caster/ImgStub.php +1 -1
- package/support/vendor/symfony/var-dumper/Caster/IntlCaster.php +10 -8
- package/support/vendor/symfony/var-dumper/Caster/LinkStub.php +14 -17
- package/support/vendor/symfony/var-dumper/Caster/MemcachedCaster.php +10 -8
- package/support/vendor/symfony/var-dumper/Caster/MysqliCaster.php +33 -0
- package/support/vendor/symfony/var-dumper/Caster/OpenSSLCaster.php +69 -0
- package/support/vendor/symfony/var-dumper/Caster/PdoCaster.php +8 -6
- package/support/vendor/symfony/var-dumper/Caster/PgSqlCaster.php +21 -19
- package/support/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php +4 -2
- package/support/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php +188 -0
- package/support/vendor/symfony/var-dumper/Caster/RedisCaster.php +31 -31
- package/support/vendor/symfony/var-dumper/Caster/ReflectionCaster.php +100 -44
- package/support/vendor/symfony/var-dumper/Caster/ResourceCaster.php +33 -46
- package/support/vendor/symfony/var-dumper/Caster/ScalarStub.php +27 -0
- package/support/vendor/symfony/var-dumper/Caster/SocketCaster.php +64 -0
- package/support/vendor/symfony/var-dumper/Caster/SplCaster.php +57 -44
- package/support/vendor/symfony/var-dumper/Caster/SqliteCaster.php +32 -0
- package/support/vendor/symfony/var-dumper/Caster/StubCaster.php +15 -5
- package/support/vendor/symfony/var-dumper/Caster/SymfonyCaster.php +66 -10
- package/support/vendor/symfony/var-dumper/Caster/TraceStub.php +7 -11
- package/support/vendor/symfony/var-dumper/Caster/UninitializedStub.php +25 -0
- package/support/vendor/symfony/var-dumper/Caster/UuidCaster.php +2 -0
- package/support/vendor/symfony/var-dumper/Caster/VirtualStub.php +21 -0
- package/support/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php +25 -10
- package/support/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php +7 -5
- package/support/vendor/symfony/var-dumper/Cloner/AbstractCloner.php +103 -72
- package/support/vendor/symfony/var-dumper/Cloner/ClonerInterface.php +1 -5
- package/support/vendor/symfony/var-dumper/Cloner/Cursor.php +21 -21
- package/support/vendor/symfony/var-dumper/Cloner/Data.php +51 -77
- package/support/vendor/symfony/var-dumper/Cloner/DumperInterface.php +11 -14
- package/support/vendor/symfony/var-dumper/Cloner/Stub.php +40 -31
- package/support/vendor/symfony/var-dumper/Cloner/VarCloner.php +21 -104
- package/support/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php +9 -19
- package/support/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php +10 -11
- package/support/vendor/symfony/var-dumper/Command/ServerDumpCommand.php +27 -15
- package/support/vendor/symfony/var-dumper/Dumper/AbstractDumper.php +68 -48
- package/support/vendor/symfony/var-dumper/Dumper/CliDumper.php +126 -113
- package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php +1 -1
- package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php +0 -3
- package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php +5 -6
- package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php +10 -15
- package/support/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php +8 -11
- package/support/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php +3 -0
- package/support/vendor/symfony/var-dumper/Dumper/HtmlDumper.php +122 -146
- package/support/vendor/symfony/var-dumper/Dumper/ServerDumper.php +10 -10
- package/support/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php +1 -1
- package/support/vendor/symfony/var-dumper/LICENSE +1 -1
- package/support/vendor/symfony/var-dumper/README.md +6 -6
- package/support/vendor/symfony/var-dumper/Resources/bin/var-dump-server +4 -0
- package/support/vendor/symfony/var-dumper/Resources/functions/dump.php +35 -10
- package/support/vendor/symfony/var-dumper/Server/Connection.php +16 -14
- package/support/vendor/symfony/var-dumper/Server/DumpServer.php +16 -14
- package/support/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php +9 -9
- package/support/vendor/symfony/var-dumper/VarDumper.php +69 -17
- package/support/vendor/symfony/var-dumper/composer.json +10 -16
- package/support/vendor/symfony/polyfill-php72/Php72.php +0 -217
- package/support/vendor/symfony/polyfill-php72/README.md +0 -28
- package/support/vendor/symfony/polyfill-php72/bootstrap.php +0 -57
- package/support/vendor/symfony/polyfill-php80/LICENSE +0 -19
- package/support/vendor/symfony/polyfill-php80/Php80.php +0 -105
- package/support/vendor/symfony/polyfill-php80/README.md +0 -24
- package/support/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +0 -22
- package/support/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +0 -11
- package/support/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +0 -5
- package/support/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +0 -5
- package/support/vendor/symfony/polyfill-php80/bootstrap.php +0 -42
- package/support/vendor/symfony/polyfill-php80/composer.json +0 -40
|
@@ -21,6 +21,7 @@ use Symfony\Component\VarDumper\Cloner\Data;
|
|
|
21
21
|
*/
|
|
22
22
|
class HtmlDumper extends CliDumper
|
|
23
23
|
{
|
|
24
|
+
/** @var callable|resource|string|null */
|
|
24
25
|
public static $defaultOutput = 'php://output';
|
|
25
26
|
|
|
26
27
|
protected static $themes = [
|
|
@@ -28,6 +29,7 @@ class HtmlDumper extends CliDumper
|
|
|
28
29
|
'default' => 'background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
|
|
29
30
|
'num' => 'font-weight:bold; color:#1299DA',
|
|
30
31
|
'const' => 'font-weight:bold',
|
|
32
|
+
'virtual' => 'font-style:italic',
|
|
31
33
|
'str' => 'font-weight:bold; color:#56DB3A',
|
|
32
34
|
'note' => 'color:#1299DA',
|
|
33
35
|
'ref' => 'color:#A0A0A0',
|
|
@@ -44,6 +46,7 @@ class HtmlDumper extends CliDumper
|
|
|
44
46
|
'default' => 'background:none; color:#CC7832; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
|
|
45
47
|
'num' => 'font-weight:bold; color:#1299DA',
|
|
46
48
|
'const' => 'font-weight:bold',
|
|
49
|
+
'virtual' => 'font-style:italic',
|
|
47
50
|
'str' => 'font-weight:bold; color:#629755;',
|
|
48
51
|
'note' => 'color:#6897BB',
|
|
49
52
|
'ref' => 'color:#6E6E6E',
|
|
@@ -58,46 +61,39 @@ class HtmlDumper extends CliDumper
|
|
|
58
61
|
],
|
|
59
62
|
];
|
|
60
63
|
|
|
61
|
-
protected $dumpHeader;
|
|
62
|
-
protected $dumpPrefix = '<pre class=sf-dump id=%s data-indent-pad="%s">';
|
|
63
|
-
protected $dumpSuffix = '</pre><script>Sfdump(%s)</script>';
|
|
64
|
-
protected $dumpId
|
|
65
|
-
protected $colors = true;
|
|
64
|
+
protected ?string $dumpHeader = null;
|
|
65
|
+
protected string $dumpPrefix = '<pre class=sf-dump id=%s data-indent-pad="%s">';
|
|
66
|
+
protected string $dumpSuffix = '</pre><script>Sfdump(%s)</script>';
|
|
67
|
+
protected string $dumpId;
|
|
68
|
+
protected bool $colors = true;
|
|
66
69
|
protected $headerIsDumped = false;
|
|
67
|
-
protected $lastDepth = -1;
|
|
68
|
-
protected $styles;
|
|
70
|
+
protected int $lastDepth = -1;
|
|
69
71
|
|
|
70
|
-
private $displayOptions = [
|
|
72
|
+
private array $displayOptions = [
|
|
71
73
|
'maxDepth' => 1,
|
|
72
74
|
'maxStringLength' => 160,
|
|
73
75
|
'fileLinkFormat' => null,
|
|
74
76
|
];
|
|
75
|
-
private $extraDisplayOptions = [];
|
|
77
|
+
private array $extraDisplayOptions = [];
|
|
76
78
|
|
|
77
|
-
|
|
78
|
-
* {@inheritdoc}
|
|
79
|
-
*/
|
|
80
|
-
public function __construct($output = null, string $charset = null, int $flags = 0)
|
|
79
|
+
public function __construct($output = null, ?string $charset = null, int $flags = 0)
|
|
81
80
|
{
|
|
82
81
|
AbstractDumper::__construct($output, $charset, $flags);
|
|
83
82
|
$this->dumpId = 'sf-dump-'.mt_rand();
|
|
84
|
-
$this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
|
|
83
|
+
$this->displayOptions['fileLinkFormat'] = \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
|
|
85
84
|
$this->styles = static::$themes['dark'] ?? self::$themes['dark'];
|
|
86
85
|
}
|
|
87
86
|
|
|
88
|
-
|
|
89
|
-
* {@inheritdoc}
|
|
90
|
-
*/
|
|
91
|
-
public function setStyles(array $styles)
|
|
87
|
+
public function setStyles(array $styles): void
|
|
92
88
|
{
|
|
93
89
|
$this->headerIsDumped = false;
|
|
94
90
|
$this->styles = $styles + $this->styles;
|
|
95
91
|
}
|
|
96
92
|
|
|
97
|
-
public function setTheme(string $themeName)
|
|
93
|
+
public function setTheme(string $themeName): void
|
|
98
94
|
{
|
|
99
95
|
if (!isset(static::$themes[$themeName])) {
|
|
100
|
-
throw new \InvalidArgumentException(sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
|
|
96
|
+
throw new \InvalidArgumentException(\sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
|
|
101
97
|
}
|
|
102
98
|
|
|
103
99
|
$this->setStyles(static::$themes[$themeName]);
|
|
@@ -108,7 +104,7 @@ class HtmlDumper extends CliDumper
|
|
|
108
104
|
*
|
|
109
105
|
* @param array $displayOptions A map of display options to customize the behavior
|
|
110
106
|
*/
|
|
111
|
-
public function setDisplayOptions(array $displayOptions)
|
|
107
|
+
public function setDisplayOptions(array $displayOptions): void
|
|
112
108
|
{
|
|
113
109
|
$this->headerIsDumped = false;
|
|
114
110
|
$this->displayOptions = $displayOptions + $this->displayOptions;
|
|
@@ -116,30 +112,22 @@ class HtmlDumper extends CliDumper
|
|
|
116
112
|
|
|
117
113
|
/**
|
|
118
114
|
* Sets an HTML header that will be dumped once in the output stream.
|
|
119
|
-
*
|
|
120
|
-
* @param string $header An HTML string
|
|
121
115
|
*/
|
|
122
|
-
public function setDumpHeader($header)
|
|
116
|
+
public function setDumpHeader(?string $header): void
|
|
123
117
|
{
|
|
124
118
|
$this->dumpHeader = $header;
|
|
125
119
|
}
|
|
126
120
|
|
|
127
121
|
/**
|
|
128
122
|
* Sets an HTML prefix and suffix that will encapse every single dump.
|
|
129
|
-
*
|
|
130
|
-
* @param string $prefix The prepended HTML string
|
|
131
|
-
* @param string $suffix The appended HTML string
|
|
132
123
|
*/
|
|
133
|
-
public function setDumpBoundaries($prefix, $suffix)
|
|
124
|
+
public function setDumpBoundaries(string $prefix, string $suffix): void
|
|
134
125
|
{
|
|
135
126
|
$this->dumpPrefix = $prefix;
|
|
136
127
|
$this->dumpSuffix = $suffix;
|
|
137
128
|
}
|
|
138
129
|
|
|
139
|
-
|
|
140
|
-
* {@inheritdoc}
|
|
141
|
-
*/
|
|
142
|
-
public function dump(Data $data, $output = null, array $extraDisplayOptions = [])
|
|
130
|
+
public function dump(Data $data, $output = null, array $extraDisplayOptions = []): ?string
|
|
143
131
|
{
|
|
144
132
|
$this->extraDisplayOptions = $extraDisplayOptions;
|
|
145
133
|
$result = parent::dump($data, $output);
|
|
@@ -151,9 +139,9 @@ class HtmlDumper extends CliDumper
|
|
|
151
139
|
/**
|
|
152
140
|
* Dumps the HTML header.
|
|
153
141
|
*/
|
|
154
|
-
protected function getDumpHeader()
|
|
142
|
+
protected function getDumpHeader(): string
|
|
155
143
|
{
|
|
156
|
-
$this->headerIsDumped =
|
|
144
|
+
$this->headerIsDumped = $this->outputStream ?? $this->lineDumper;
|
|
157
145
|
|
|
158
146
|
if (null !== $this->dumpHeader) {
|
|
159
147
|
return $this->dumpHeader;
|
|
@@ -162,17 +150,15 @@ class HtmlDumper extends CliDumper
|
|
|
162
150
|
$line = str_replace('{$options}', json_encode($this->displayOptions, \JSON_FORCE_OBJECT), <<<'EOHTML'
|
|
163
151
|
<script>
|
|
164
152
|
Sfdump = window.Sfdump || (function (doc) {
|
|
153
|
+
doc.documentElement.classList.add('sf-js-enabled');
|
|
165
154
|
|
|
166
|
-
var
|
|
167
|
-
rxEsc = /([.*+?^${}()|\[\]\/\\])/g,
|
|
155
|
+
var rxEsc = /([.*+?^${}()|\[\]\/\\])/g,
|
|
168
156
|
idRx = /\bsf-dump-\d+-ref[012]\w+\b/,
|
|
169
157
|
keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl',
|
|
170
158
|
addEventListener = function (e, n, cb) {
|
|
171
159
|
e.addEventListener(n, cb, false);
|
|
172
160
|
};
|
|
173
161
|
|
|
174
|
-
(doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle);
|
|
175
|
-
|
|
176
162
|
if (!doc.addEventListener) {
|
|
177
163
|
addEventListener = function (element, eventName, callback) {
|
|
178
164
|
element.attachEvent('on' + eventName, function (e) {
|
|
@@ -352,26 +338,16 @@ return function (root, x) {
|
|
|
352
338
|
function xpathHasClass(className) {
|
|
353
339
|
return "contains(concat(' ', normalize-space(@class), ' '), ' " + className +" ')";
|
|
354
340
|
}
|
|
355
|
-
addEventListener(root, 'mouseover', function (e) {
|
|
356
|
-
if ('' != refStyle.innerHTML) {
|
|
357
|
-
refStyle.innerHTML = '';
|
|
358
|
-
}
|
|
359
|
-
});
|
|
360
341
|
a('mouseover', function (a, e, c) {
|
|
361
342
|
if (c) {
|
|
362
343
|
e.target.style.cursor = "pointer";
|
|
363
|
-
} else if (a = idRx.exec(a.className)) {
|
|
364
|
-
try {
|
|
365
|
-
refStyle.innerHTML = 'pre.sf-dump .'+a[0]+'{background-color: #B729D9; color: #FFF !important; border-radius: 2px}';
|
|
366
|
-
} catch (e) {
|
|
367
|
-
}
|
|
368
344
|
}
|
|
369
345
|
});
|
|
370
346
|
a('click', function (a, e, c) {
|
|
371
347
|
if (/\bsf-dump-toggle\b/.test(a.className)) {
|
|
372
348
|
e.preventDefault();
|
|
373
349
|
if (!toggle(a, isCtrlKey(e))) {
|
|
374
|
-
var r = doc.getElementById(a.getAttribute('href').
|
|
350
|
+
var r = doc.getElementById(a.getAttribute('href').slice(1)),
|
|
375
351
|
s = r.previousSibling,
|
|
376
352
|
f = r.parentNode,
|
|
377
353
|
t = a.parentNode;
|
|
@@ -424,21 +400,16 @@ return function (root, x) {
|
|
|
424
400
|
a.innerHTML += ' ';
|
|
425
401
|
}
|
|
426
402
|
a.title = (a.title ? a.title+'\n[' : '[')+keyHint+'+click] Expand all children';
|
|
427
|
-
a.innerHTML += '<span>▼</span>';
|
|
403
|
+
a.innerHTML += elt.className == 'sf-dump-compact' ? '<span>▶</span>' : '<span>▼</span>';
|
|
428
404
|
a.className += ' sf-dump-toggle';
|
|
429
405
|
|
|
430
406
|
x = 1;
|
|
431
407
|
if ('sf-dump' != elt.parentNode.className) {
|
|
432
408
|
x += elt.parentNode.getAttribute('data-depth')/1;
|
|
433
409
|
}
|
|
434
|
-
elt.setAttribute('data-depth', x);
|
|
435
|
-
var className = elt.className;
|
|
436
|
-
elt.className = 'sf-dump-expanded';
|
|
437
|
-
if (className ? 'sf-dump-expanded' !== className : (x > options.maxDepth)) {
|
|
438
|
-
toggle(a);
|
|
439
|
-
}
|
|
440
410
|
} else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) {
|
|
441
|
-
a = a.
|
|
411
|
+
a = a.slice(1);
|
|
412
|
+
elt.className += ' sf-dump-hover';
|
|
442
413
|
elt.className += ' '+a;
|
|
443
414
|
|
|
444
415
|
if (/[\[{]$/.test(elt.previousSibling.nodeValue)) {
|
|
@@ -655,6 +626,16 @@ return function (root, x) {
|
|
|
655
626
|
|
|
656
627
|
})(document);
|
|
657
628
|
</script><style>
|
|
629
|
+
.sf-js-enabled pre.sf-dump .sf-dump-compact,
|
|
630
|
+
.sf-js-enabled .sf-dump-str-collapse .sf-dump-str-collapse,
|
|
631
|
+
.sf-js-enabled .sf-dump-str-expand .sf-dump-str-expand {
|
|
632
|
+
display: none;
|
|
633
|
+
}
|
|
634
|
+
.sf-dump-hover:hover {
|
|
635
|
+
background-color: #B729D9;
|
|
636
|
+
color: #FFF !important;
|
|
637
|
+
border-radius: 2px;
|
|
638
|
+
}
|
|
658
639
|
pre.sf-dump {
|
|
659
640
|
display: block;
|
|
660
641
|
white-space: pre;
|
|
@@ -668,11 +649,8 @@ pre.sf-dump:after {
|
|
|
668
649
|
height: 0;
|
|
669
650
|
clear: both;
|
|
670
651
|
}
|
|
671
|
-
pre.sf-dump
|
|
672
|
-
display: inline;
|
|
673
|
-
}
|
|
674
|
-
pre.sf-dump .sf-dump-compact {
|
|
675
|
-
display: none;
|
|
652
|
+
pre.sf-dump .sf-dump-ellipsization {
|
|
653
|
+
display: inline-flex;
|
|
676
654
|
}
|
|
677
655
|
pre.sf-dump a {
|
|
678
656
|
text-decoration: none;
|
|
@@ -689,28 +667,18 @@ pre.sf-dump img {
|
|
|
689
667
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3;
|
|
690
668
|
}
|
|
691
669
|
pre.sf-dump .sf-dump-ellipsis {
|
|
692
|
-
display: inline-block;
|
|
693
|
-
overflow: visible;
|
|
694
670
|
text-overflow: ellipsis;
|
|
695
|
-
max-width: 5em;
|
|
696
671
|
white-space: nowrap;
|
|
697
672
|
overflow: hidden;
|
|
698
|
-
vertical-align: top;
|
|
699
673
|
}
|
|
700
|
-
pre.sf-dump .sf-dump-ellipsis
|
|
701
|
-
|
|
674
|
+
pre.sf-dump .sf-dump-ellipsis-tail {
|
|
675
|
+
flex-shrink: 0;
|
|
702
676
|
}
|
|
703
677
|
pre.sf-dump code {
|
|
704
678
|
display:inline;
|
|
705
679
|
padding:0;
|
|
706
680
|
background:none;
|
|
707
681
|
}
|
|
708
|
-
.sf-dump-str-collapse .sf-dump-str-collapse {
|
|
709
|
-
display: none;
|
|
710
|
-
}
|
|
711
|
-
.sf-dump-str-expand .sf-dump-str-expand {
|
|
712
|
-
display: none;
|
|
713
|
-
}
|
|
714
682
|
.sf-dump-public.sf-dump-highlight,
|
|
715
683
|
.sf-dump-protected.sf-dump-highlight,
|
|
716
684
|
.sf-dump-private.sf-dump-highlight,
|
|
@@ -799,60 +767,50 @@ EOHTML
|
|
|
799
767
|
return $this->dumpHeader = preg_replace('/\s+/', ' ', $line).'</style>'.$this->dumpHeader;
|
|
800
768
|
}
|
|
801
769
|
|
|
802
|
-
|
|
803
|
-
* {@inheritdoc}
|
|
804
|
-
*/
|
|
805
|
-
public function dumpString(Cursor $cursor, $str, $bin, $cut)
|
|
770
|
+
public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut): void
|
|
806
771
|
{
|
|
807
772
|
if ('' === $str && isset($cursor->attr['img-data'], $cursor->attr['content-type'])) {
|
|
808
773
|
$this->dumpKey($cursor);
|
|
809
|
-
$this->line .= $this->style('default', $cursor->attr['img-size'] ?? '', [])
|
|
774
|
+
$this->line .= $this->style('default', $cursor->attr['img-size'] ?? '', []);
|
|
775
|
+
$this->line .= $cursor->depth >= $this->displayOptions['maxDepth'] ? ' <samp class=sf-dump-compact>' : ' <samp class=sf-dump-expanded>';
|
|
810
776
|
$this->endValue($cursor);
|
|
811
777
|
$this->line .= $this->indentPad;
|
|
812
|
-
$this->line .= sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
|
|
778
|
+
$this->line .= \sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
|
|
813
779
|
$this->endValue($cursor);
|
|
814
780
|
} else {
|
|
815
781
|
parent::dumpString($cursor, $str, $bin, $cut);
|
|
816
782
|
}
|
|
817
783
|
}
|
|
818
784
|
|
|
819
|
-
|
|
820
|
-
* {@inheritdoc}
|
|
821
|
-
*/
|
|
822
|
-
public function enterHash(Cursor $cursor, $type, $class, $hasChild)
|
|
785
|
+
public function enterHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild): void
|
|
823
786
|
{
|
|
824
787
|
if (Cursor::HASH_OBJECT === $type) {
|
|
825
788
|
$cursor->attr['depth'] = $cursor->depth;
|
|
826
789
|
}
|
|
827
790
|
parent::enterHash($cursor, $type, $class, false);
|
|
828
791
|
|
|
829
|
-
if ($cursor->skipChildren) {
|
|
792
|
+
if ($cursor->skipChildren || $cursor->depth >= $this->displayOptions['maxDepth']) {
|
|
830
793
|
$cursor->skipChildren = false;
|
|
831
794
|
$eol = ' class=sf-dump-compact>';
|
|
832
|
-
}
|
|
795
|
+
} else {
|
|
833
796
|
$this->expandNextHash = false;
|
|
834
797
|
$eol = ' class=sf-dump-expanded>';
|
|
835
|
-
} else {
|
|
836
|
-
$eol = '>';
|
|
837
798
|
}
|
|
838
799
|
|
|
839
800
|
if ($hasChild) {
|
|
840
|
-
$this->line .= '<samp';
|
|
801
|
+
$this->line .= '<samp data-depth='.($cursor->depth + 1);
|
|
841
802
|
if ($cursor->refIndex) {
|
|
842
803
|
$r = Cursor::HASH_OBJECT !== $type ? 1 - (Cursor::HASH_RESOURCE !== $type) : 2;
|
|
843
804
|
$r .= $r && 0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->refIndex;
|
|
844
805
|
|
|
845
|
-
$this->line .= sprintf(' id=%s-ref%s', $this->dumpId, $r);
|
|
806
|
+
$this->line .= \sprintf(' id=%s-ref%s', $this->dumpId, $r);
|
|
846
807
|
}
|
|
847
808
|
$this->line .= $eol;
|
|
848
809
|
$this->dumpLine($cursor->depth);
|
|
849
810
|
}
|
|
850
811
|
}
|
|
851
812
|
|
|
852
|
-
|
|
853
|
-
* {@inheritdoc}
|
|
854
|
-
*/
|
|
855
|
-
public function leaveHash(Cursor $cursor, $type, $class, $hasChild, $cut)
|
|
813
|
+
public function leaveHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild, int $cut): void
|
|
856
814
|
{
|
|
857
815
|
$this->dumpEllipsis($cursor, $hasChild, $cut);
|
|
858
816
|
if ($hasChild) {
|
|
@@ -861,12 +819,9 @@ EOHTML
|
|
|
861
819
|
parent::leaveHash($cursor, $type, $class, $hasChild, 0);
|
|
862
820
|
}
|
|
863
821
|
|
|
864
|
-
|
|
865
|
-
* {@inheritdoc}
|
|
866
|
-
*/
|
|
867
|
-
protected function style($style, $value, $attr = [])
|
|
822
|
+
protected function style(string $style, string $value, array $attr = []): string
|
|
868
823
|
{
|
|
869
|
-
if ('' === $value) {
|
|
824
|
+
if ('' === $value && ('label' !== $style || !isset($attr['file']) && !isset($attr['href']))) {
|
|
870
825
|
return '';
|
|
871
826
|
}
|
|
872
827
|
|
|
@@ -874,97 +829,118 @@ EOHTML
|
|
|
874
829
|
|
|
875
830
|
if ('ref' === $style) {
|
|
876
831
|
if (empty($attr['count'])) {
|
|
877
|
-
return sprintf('<a class=sf-dump-ref>%s</a>', $v);
|
|
832
|
+
return \sprintf('<a class=sf-dump-ref>%s</a>', $v);
|
|
878
833
|
}
|
|
879
834
|
$r = ('#' !== $v[0] ? 1 - ('@' !== $v[0]) : 2).substr($value, 1);
|
|
880
835
|
|
|
881
|
-
return sprintf('<a class=sf-dump-ref href=#%s-ref%s title="%d occurrences">%s</a>', $this->dumpId, $r, 1 + $attr['count'], $v);
|
|
836
|
+
return \sprintf('<a class=sf-dump-ref href=#%s-ref%s title="%d occurrences">%s</a>', $this->dumpId, $r, 1 + $attr['count'], $v);
|
|
882
837
|
}
|
|
883
838
|
|
|
839
|
+
$dumpClasses = ['sf-dump-'.$style];
|
|
840
|
+
$dumpTitle = '';
|
|
841
|
+
|
|
884
842
|
if ('const' === $style && isset($attr['value'])) {
|
|
885
|
-
$
|
|
843
|
+
$dumpTitle = esc(\is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value']));
|
|
886
844
|
} elseif ('public' === $style) {
|
|
887
|
-
$
|
|
845
|
+
$dumpTitle = empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property';
|
|
888
846
|
} elseif ('str' === $style && 1 < $attr['length']) {
|
|
889
|
-
$
|
|
847
|
+
$dumpTitle = \sprintf('%d%s characters', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : '');
|
|
890
848
|
} elseif ('note' === $style && 0 < ($attr['depth'] ?? 0) && false !== $c = strrpos($value, '\\')) {
|
|
891
|
-
$style .= ' title=""';
|
|
892
849
|
$attr += [
|
|
893
850
|
'ellipsis' => \strlen($value) - $c,
|
|
894
851
|
'ellipsis-type' => 'note',
|
|
895
852
|
'ellipsis-tail' => 1,
|
|
896
853
|
];
|
|
897
854
|
} elseif ('protected' === $style) {
|
|
898
|
-
$
|
|
855
|
+
$dumpTitle = 'Protected property';
|
|
899
856
|
} elseif ('meta' === $style && isset($attr['title'])) {
|
|
900
|
-
$
|
|
857
|
+
$dumpTitle = esc($this->utf8Encode($attr['title']));
|
|
901
858
|
} elseif ('private' === $style) {
|
|
902
|
-
$
|
|
859
|
+
$dumpTitle = \sprintf('Private property defined in class: `%s`', esc($this->utf8Encode($attr['class'])));
|
|
903
860
|
}
|
|
904
|
-
$map = static::$controlCharsMap;
|
|
905
861
|
|
|
906
862
|
if (isset($attr['ellipsis'])) {
|
|
907
|
-
$
|
|
863
|
+
$dumpClasses[] = 'sf-dump-ellipsization';
|
|
864
|
+
$ellipsisClass = 'sf-dump-ellipsis';
|
|
908
865
|
if (isset($attr['ellipsis-type'])) {
|
|
909
|
-
$
|
|
866
|
+
$ellipsisClass .= ' sf-dump-ellipsis-'.$attr['ellipsis-type'];
|
|
910
867
|
}
|
|
911
868
|
$label = esc(substr($value, -$attr['ellipsis']));
|
|
912
|
-
$
|
|
913
|
-
$v = sprintf('<span class
|
|
869
|
+
$dumpTitle = $v."\n".$dumpTitle;
|
|
870
|
+
$v = \sprintf('<span class="%s">%s</span>', $ellipsisClass, substr($v, 0, -\strlen($label)));
|
|
914
871
|
|
|
915
872
|
if (!empty($attr['ellipsis-tail'])) {
|
|
916
873
|
$tail = \strlen(esc(substr($value, -$attr['ellipsis'], $attr['ellipsis-tail'])));
|
|
917
|
-
$v .= sprintf('<span class
|
|
874
|
+
$v .= \sprintf('<span class="%s">%s</span><span class="sf-dump-ellipsis-tail">%s</span>', $ellipsisClass, substr($label, 0, $tail), substr($label, $tail));
|
|
918
875
|
} else {
|
|
919
|
-
$v .= $label;
|
|
876
|
+
$v .= \sprintf('<span class="sf-dump-ellipsis-tail">%s</span>', $label);
|
|
920
877
|
}
|
|
921
878
|
}
|
|
922
879
|
|
|
923
|
-
$
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
$
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
$s .= ' sf-dump-ns';
|
|
935
|
-
}
|
|
936
|
-
$s .= '">';
|
|
880
|
+
$map = static::$controlCharsMap;
|
|
881
|
+
$v = \sprintf(
|
|
882
|
+
'<span class=%s%s%1$s%s>%s</span>',
|
|
883
|
+
1 === \count($dumpClasses) ? '' : '"',
|
|
884
|
+
implode(' ', $dumpClasses),
|
|
885
|
+
$dumpTitle ? ' title="'.$dumpTitle.'"' : '',
|
|
886
|
+
preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
|
|
887
|
+
$s = $b = '<span class="sf-dump-default';
|
|
888
|
+
$c = $c[$i = 0];
|
|
889
|
+
if ($ns = "\r" === $c[$i] || "\n" === $c[$i]) {
|
|
890
|
+
$s .= ' sf-dump-ns';
|
|
937
891
|
}
|
|
892
|
+
$s .= '">';
|
|
893
|
+
do {
|
|
894
|
+
if (("\r" === $c[$i] || "\n" === $c[$i]) !== $ns) {
|
|
895
|
+
$s .= '</span>'.$b;
|
|
896
|
+
if ($ns = !$ns) {
|
|
897
|
+
$s .= ' sf-dump-ns';
|
|
898
|
+
}
|
|
899
|
+
$s .= '">';
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
$s .= $map[$c[$i]] ?? \sprintf('\x%02X', \ord($c[$i]));
|
|
903
|
+
} while (isset($c[++$i]));
|
|
938
904
|
|
|
939
|
-
$s
|
|
940
|
-
}
|
|
905
|
+
return $s.'</span>';
|
|
906
|
+
}, $v)
|
|
907
|
+
);
|
|
941
908
|
|
|
942
|
-
|
|
943
|
-
|
|
909
|
+
if (!($attr['binary'] ?? false)) {
|
|
910
|
+
$v = preg_replace_callback(static::$unicodeCharsRx, function ($c) {
|
|
911
|
+
return '<span class=sf-dump-default>\u{'.strtoupper(dechex(mb_ord($c[0]))).'}</span>';
|
|
912
|
+
}, $v);
|
|
913
|
+
}
|
|
944
914
|
|
|
945
|
-
if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'],
|
|
915
|
+
if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], $attr['line'] ?? 0)) {
|
|
946
916
|
$attr['href'] = $href;
|
|
947
917
|
}
|
|
948
918
|
if (isset($attr['href'])) {
|
|
919
|
+
if ('label' === $style) {
|
|
920
|
+
$v .= '^';
|
|
921
|
+
}
|
|
949
922
|
$target = isset($attr['file']) ? '' : ' target="_blank"';
|
|
950
|
-
$v = sprintf('<a href="%s"%s rel="noopener noreferrer">%s</a>', esc($this->utf8Encode($attr['href'])), $target, $v);
|
|
923
|
+
$v = \sprintf('<a href="%s"%s rel="noopener noreferrer">%s</a>', esc($this->utf8Encode($attr['href'])), $target, $v);
|
|
951
924
|
}
|
|
952
925
|
if (isset($attr['lang'])) {
|
|
953
|
-
$v = sprintf('<code class="%s">%s</code>', esc($attr['lang']), $v);
|
|
926
|
+
$v = \sprintf('<code class="%s">%s</code>', esc($attr['lang']), $v);
|
|
927
|
+
}
|
|
928
|
+
if ('label' === $style) {
|
|
929
|
+
$v .= ' ';
|
|
930
|
+
}
|
|
931
|
+
if ($attr['virtual'] ?? false) {
|
|
932
|
+
$v = '<span class=sf-dump-virtual>'.$v.'</span>';
|
|
954
933
|
}
|
|
955
934
|
|
|
956
935
|
return $v;
|
|
957
936
|
}
|
|
958
937
|
|
|
959
|
-
|
|
960
|
-
* {@inheritdoc}
|
|
961
|
-
*/
|
|
962
|
-
protected function dumpLine($depth, $endOfValue = false)
|
|
938
|
+
protected function dumpLine(int $depth, bool $endOfValue = false): void
|
|
963
939
|
{
|
|
964
940
|
if (-1 === $this->lastDepth) {
|
|
965
|
-
$this->line = sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
|
|
941
|
+
$this->line = \sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
|
|
966
942
|
}
|
|
967
|
-
if ($this->headerIsDumped !== (
|
|
943
|
+
if ($this->headerIsDumped !== ($this->outputStream ?? $this->lineDumper)) {
|
|
968
944
|
$this->line = $this->getDumpHeader().$this->line;
|
|
969
945
|
}
|
|
970
946
|
|
|
@@ -974,11 +950,11 @@ EOHTML
|
|
|
974
950
|
$args[] = json_encode($this->extraDisplayOptions, \JSON_FORCE_OBJECT);
|
|
975
951
|
}
|
|
976
952
|
// Replace is for BC
|
|
977
|
-
$this->line .= sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args));
|
|
953
|
+
$this->line .= \sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args));
|
|
978
954
|
}
|
|
979
955
|
$this->lastDepth = $depth;
|
|
980
956
|
|
|
981
|
-
$this->line =
|
|
957
|
+
$this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');
|
|
982
958
|
|
|
983
959
|
if (-1 === $depth) {
|
|
984
960
|
AbstractDumper::dumpLine(0);
|
|
@@ -986,7 +962,7 @@ EOHTML
|
|
|
986
962
|
AbstractDumper::dumpLine($depth);
|
|
987
963
|
}
|
|
988
964
|
|
|
989
|
-
private function getSourceLink(string $file, int $line)
|
|
965
|
+
private function getSourceLink(string $file, int $line): string|false
|
|
990
966
|
{
|
|
991
967
|
$options = $this->extraDisplayOptions + $this->displayOptions;
|
|
992
968
|
|
|
@@ -998,7 +974,7 @@ EOHTML
|
|
|
998
974
|
}
|
|
999
975
|
}
|
|
1000
976
|
|
|
1001
|
-
function esc($str)
|
|
977
|
+
function esc(string $str): string
|
|
1002
978
|
{
|
|
1003
979
|
return htmlspecialchars($str, \ENT_QUOTES, 'UTF-8');
|
|
1004
980
|
}
|
|
@@ -22,18 +22,19 @@ use Symfony\Component\VarDumper\Server\Connection;
|
|
|
22
22
|
*/
|
|
23
23
|
class ServerDumper implements DataDumperInterface
|
|
24
24
|
{
|
|
25
|
-
private $connection;
|
|
26
|
-
private $wrappedDumper;
|
|
25
|
+
private Connection $connection;
|
|
27
26
|
|
|
28
27
|
/**
|
|
29
28
|
* @param string $host The server host
|
|
30
29
|
* @param DataDumperInterface|null $wrappedDumper A wrapped instance used whenever we failed contacting the server
|
|
31
30
|
* @param ContextProviderInterface[] $contextProviders Context providers indexed by context name
|
|
32
31
|
*/
|
|
33
|
-
public function __construct(
|
|
34
|
-
|
|
32
|
+
public function __construct(
|
|
33
|
+
string $host,
|
|
34
|
+
private ?DataDumperInterface $wrappedDumper = null,
|
|
35
|
+
array $contextProviders = [],
|
|
36
|
+
) {
|
|
35
37
|
$this->connection = new Connection($host, $contextProviders);
|
|
36
|
-
$this->wrappedDumper = $wrappedDumper;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
public function getContextProviders(): array
|
|
@@ -41,13 +42,12 @@ class ServerDumper implements DataDumperInterface
|
|
|
41
42
|
return $this->connection->getContextProviders();
|
|
42
43
|
}
|
|
43
44
|
|
|
44
|
-
|
|
45
|
-
* {@inheritdoc}
|
|
46
|
-
*/
|
|
47
|
-
public function dump(Data $data)
|
|
45
|
+
public function dump(Data $data): ?string
|
|
48
46
|
{
|
|
49
47
|
if (!$this->connection->write($data) && $this->wrappedDumper) {
|
|
50
|
-
$this->wrappedDumper->dump($data);
|
|
48
|
+
return $this->wrappedDumper->dump($data);
|
|
51
49
|
}
|
|
50
|
+
|
|
51
|
+
return null;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -21,6 +21,6 @@ class ThrowingCasterException extends \Exception
|
|
|
21
21
|
*/
|
|
22
22
|
public function __construct(\Throwable $prev)
|
|
23
23
|
{
|
|
24
|
-
parent::__construct('Unexpected '
|
|
24
|
+
parent::__construct('Unexpected '.$prev::class.' thrown from a caster: '.$prev->getMessage(), 0, $prev);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -3,13 +3,13 @@ VarDumper Component
|
|
|
3
3
|
|
|
4
4
|
The VarDumper component provides mechanisms for walking through any arbitrary
|
|
5
5
|
PHP variable. It provides a better `dump()` function that you can use instead
|
|
6
|
-
of `var_dump`.
|
|
6
|
+
of `var_dump()`.
|
|
7
7
|
|
|
8
8
|
Resources
|
|
9
9
|
---------
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
* [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
|
|
12
|
+
* [Contributing](https://symfony.com/doc/current/contributing/index.html)
|
|
13
|
+
* [Report issues](https://github.com/symfony/symfony/issues) and
|
|
14
|
+
[send Pull Requests](https://github.com/symfony/symfony/pulls)
|
|
15
|
+
in the [main Symfony repository](https://github.com/symfony/symfony)
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
* file that was distributed with this source code.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
if ('cli' !== PHP_SAPI) {
|
|
14
|
+
throw new Exception('This script must be run from the command line.');
|
|
15
|
+
}
|
|
16
|
+
|
|
13
17
|
/**
|
|
14
18
|
* Starts a dump server to collect and output dumps on a single place with multiple formats support.
|
|
15
19
|
*
|