gulp-phug 1.3.4 → 2.0.0

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.
Files changed (304) hide show
  1. package/README.md +26 -0
  2. package/index.js +38 -10
  3. package/package.json +4 -4
  4. package/support/bootstrap.php +6 -0
  5. package/support/composer.json +1 -1
  6. package/support/composer.lock +94 -179
  7. package/support/vendor/autoload.php +15 -0
  8. package/support/vendor/bin/phug +119 -0
  9. package/support/vendor/bin/var-dump-server +119 -0
  10. package/support/vendor/composer/ClassLoader.php +166 -32
  11. package/support/vendor/composer/InstalledVersions.php +387 -329
  12. package/support/vendor/composer/autoload_classmap.php +1 -5
  13. package/support/vendor/composer/autoload_files.php +2 -3
  14. package/support/vendor/composer/autoload_namespaces.php +1 -1
  15. package/support/vendor/composer/autoload_psr4.php +3 -4
  16. package/support/vendor/composer/autoload_real.php +12 -37
  17. package/support/vendor/composer/autoload_static.php +6 -17
  18. package/support/vendor/composer/installed.json +99 -186
  19. package/support/vendor/composer/installed.php +129 -151
  20. package/support/vendor/composer/platform_check.php +15 -4
  21. package/support/vendor/phug/phug/.github/workflows/coverage.yml +61 -0
  22. package/support/vendor/phug/phug/.github/workflows/multi-tester.yml +48 -0
  23. package/support/vendor/phug/phug/.github/workflows/split.yml +41 -0
  24. package/support/vendor/phug/phug/.github/workflows/style.yml +48 -0
  25. package/support/vendor/phug/phug/.github/workflows/tests.yml +48 -0
  26. package/support/vendor/phug/phug/.multi-tester.yml +47 -17
  27. package/support/vendor/phug/phug/composer.json +27 -18
  28. package/support/vendor/phug/phug/phpcs.xml +4 -0
  29. package/support/vendor/phug/phug/phpunit.xml +2 -0
  30. package/support/vendor/phug/phug/phug +1 -1
  31. package/support/vendor/phug/phug/release.php +8 -0
  32. package/support/vendor/phug/phug/src/Phug/Ast/Ast/Node.php +9 -3
  33. package/support/vendor/phug/phug/src/Phug/Ast/composer.json +2 -3
  34. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/AbstractNodeCompiler.php +4 -4
  35. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/Element/BlockElement.php +4 -4
  36. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentListNodeCompiler.php +1 -1
  37. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentNodeCompiler.php +10 -2
  38. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeListNodeCompiler.php +1 -1
  39. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeNodeCompiler.php +2 -1
  40. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/BlockNodeCompiler.php +3 -3
  41. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CaseNodeCompiler.php +1 -1
  42. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CodeNodeCompiler.php +2 -2
  43. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CommentNodeCompiler.php +1 -1
  44. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ConditionalNodeCompiler.php +1 -1
  45. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DoNodeCompiler.php +1 -1
  46. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DoctypeNodeCompiler.php +1 -1
  47. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DocumentNodeCompiler.php +1 -1
  48. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/EachNodeCompiler.php +1 -1
  49. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ElementNodeCompiler.php +7 -1
  50. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ExpressionNodeCompiler.php +1 -1
  51. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/FilterNodeCompiler.php +1 -1
  52. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ForNodeCompiler.php +1 -1
  53. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ImportNodeCompiler.php +5 -5
  54. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/KeywordNodeCompiler.php +1 -1
  55. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/MixinCallNodeCompiler.php +1 -1
  56. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/MixinNodeCompiler.php +1 -1
  57. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/TextNodeCompiler.php +1 -1
  58. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/VariableNodeCompiler.php +1 -1
  59. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/WhenNodeCompiler.php +1 -1
  60. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/WhileNodeCompiler.php +1 -1
  61. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/YieldNodeCompiler.php +1 -1
  62. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompilerInterface.php +5 -5
  63. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler.php +2 -2
  64. package/support/vendor/phug/phug/src/Phug/Compiler/CompilerInterface.php +2 -2
  65. package/support/vendor/phug/phug/src/Phug/Compiler/composer.json +10 -7
  66. package/support/vendor/phug/phug/src/Phug/DependencyInjection/DependencyInjection.php +1 -1
  67. package/support/vendor/phug/phug/src/Phug/DependencyInjection/composer.json +3 -4
  68. package/support/vendor/phug/phug/src/Phug/Event/Event/ListenerQueue.php +3 -0
  69. package/support/vendor/phug/phug/src/Phug/Event/EventManagerTrait.php +1 -1
  70. package/support/vendor/phug/phug/src/Phug/Event/composer.json +2 -3
  71. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractElement.php +1 -1
  72. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractFormat.php +17 -14
  73. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AssignmentContainerInterface.php +2 -1
  74. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractAssignmentContainerElement.php +11 -1
  75. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractMarkupElement.php +1 -1
  76. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractValueElement.php +3 -3
  77. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AnonymousBlockElement.php +1 -1
  78. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AssignmentElement.php +13 -8
  79. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AttributeElement.php +7 -4
  80. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/CodeElement.php +5 -5
  81. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/KeywordElement.php +3 -3
  82. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MarkupElement.php +13 -11
  83. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinCallElement.php +2 -1
  84. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinElement.php +2 -1
  85. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/VariableElement.php +5 -5
  86. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Event/FormatEvent.php +1 -1
  87. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/HtmlFormat.php +1 -1
  88. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XhtmlFormat.php +1 -1
  89. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XmlFormat.php +214 -21
  90. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/FormatInterface.php +1 -1
  91. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/AssignmentHelpersTrait.php +7 -4
  92. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/HandleVariable.php +4 -4
  93. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/MagicAccessorTrait.php +1 -7
  94. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/PatternTrait.php +1 -1
  95. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter.php +1 -1
  96. package/support/vendor/phug/phug/src/Phug/Formatter/composer.json +5 -6
  97. package/support/vendor/phug/phug/src/Phug/Invoker/Invoker.php +1 -1
  98. package/support/vendor/phug/phug/src/Phug/Invoker/composer.json +9 -6
  99. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/AbstractToken.php +1 -1
  100. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Partial/IndentStyleTrait.php +5 -5
  101. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AssignmentScanner.php +8 -2
  102. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AttributeScanner.php +24 -12
  103. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/ConditionalScanner.php +1 -1
  104. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/FilterScanner.php +6 -10
  105. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/IndentationScanner.php +2 -2
  106. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/KeywordScanner.php +1 -1
  107. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/MultilineScanner.php +6 -12
  108. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/Partial/TrailingOutdentHandlerTrait.php +26 -0
  109. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/TextScanner.php +3 -3
  110. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/State.php +9 -9
  111. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/TokenInterface.php +1 -1
  112. package/support/vendor/phug/phug/src/Phug/Lexer/composer.json +4 -5
  113. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Event/NodeEvent.php +3 -2
  114. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AssignmentNode.php +5 -1
  115. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AttributeNode.php +4 -1
  116. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/ElementNode.php +5 -1
  117. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/FilterNode.php +2 -1
  118. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinCallNode.php +5 -1
  119. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinNode.php +5 -1
  120. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node.php +5 -5
  121. package/support/vendor/phug/phug/src/Phug/Parser/Parser/State.php +4 -4
  122. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AbstractTokenHandler.php +87 -0
  123. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AssignmentTokenHandler.php +6 -21
  124. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeEndTokenHandler.php +5 -10
  125. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeStartTokenHandler.php +7 -23
  126. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeTokenHandler.php +21 -19
  127. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AutoCloseTokenHandler.php +5 -17
  128. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/BlockTokenHandler.php +4 -10
  129. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CaseTokenHandler.php +4 -10
  130. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ClassTokenHandler.php +7 -34
  131. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CodeTokenHandler.php +4 -10
  132. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CommentTokenHandler.php +4 -10
  133. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ConditionalTokenHandler.php +4 -10
  134. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoTokenHandler.php +4 -10
  135. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoctypeTokenHandler.php +4 -10
  136. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/EachTokenHandler.php +4 -10
  137. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpansionTokenHandler.php +5 -11
  138. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpressionTokenHandler.php +4 -10
  139. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/FilterTokenHandler.php +4 -10
  140. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ForTokenHandler.php +4 -10
  141. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IdTokenHandler.php +7 -33
  142. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ImportTokenHandler.php +14 -20
  143. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IndentTokenHandler.php +4 -10
  144. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationEndTokenHandler.php +4 -10
  145. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationStartTokenHandler.php +29 -30
  146. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/KeywordTokenHandler.php +4 -10
  147. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinCallTokenHandler.php +4 -10
  148. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinTokenHandler.php +4 -10
  149. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/NewLineTokenHandler.php +4 -10
  150. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/OutdentTokenHandler.php +4 -10
  151. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/Partial/StaticAttributeTrait.php +36 -0
  152. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationEndTokenHandler.php +4 -10
  153. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationStartTokenHandler.php +7 -10
  154. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagTokenHandler.php +6 -21
  155. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TextTokenHandler.php +4 -10
  156. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/VariableTokenHandler.php +4 -10
  157. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhenTokenHandler.php +4 -10
  158. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhileTokenHandler.php +4 -10
  159. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/YieldTokenHandler.php +4 -10
  160. package/support/vendor/phug/phug/src/Phug/Parser/Parser.php +1 -1
  161. package/support/vendor/phug/phug/src/Phug/Parser/ParserException.php +1 -1
  162. package/support/vendor/phug/phug/src/Phug/Parser/composer.json +5 -6
  163. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Cli.php +5 -5
  164. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/ExtensionsTrait.php +1 -1
  165. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/FacadeOptionsTrait.php +1 -1
  166. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/PluginEnablerTrait.php +1 -1
  167. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Phug.php +14 -5
  168. package/support/vendor/phug/phug/src/Phug/Phug/composer.json +9 -6
  169. package/support/vendor/phug/phug/src/Phug/Reader/Reader.php +13 -13
  170. package/support/vendor/phug/phug/src/Phug/Reader/composer.json +6 -2
  171. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/FileAdapter.php +21 -4
  172. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/Stream/Template.php +5 -0
  173. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/StreamAdapter.php +1 -1
  174. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/CacheInterface.php +1 -1
  175. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/AdapterTrait.php +1 -1
  176. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/Debug/DebuggerTrait.php +56 -10
  177. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/RendererOptionsTrait.php +1 -1
  178. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/Dump.php +1 -1
  179. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/LinkDump.php +2 -2
  180. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/ProfilerModule.php +1 -1
  181. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Task/TasksGroup.php +1 -1
  182. package/support/vendor/phug/phug/src/Phug/Renderer/composer.json +10 -6
  183. package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseTyped.php +67 -0
  184. package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseUntyped.php +67 -0
  185. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesInterface.php +16 -0
  186. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesOrderInterface.php +17 -0
  187. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesStorage.php +44 -0
  188. package/support/vendor/phug/phug/src/Phug/Util/Util/Collection.php +2 -0
  189. package/support/vendor/phug/phug/src/Phug/Util/Util/OrderableInterface.php +22 -0
  190. package/support/vendor/phug/phug/src/Phug/Util/Util/OrderedValue.php +25 -0
  191. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributeTrait.php +2 -1
  192. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributesOrderTrait.php +19 -0
  193. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ModuleContainerTrait.php +3 -3
  194. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OptionTrait.php +1 -1
  195. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OrderTrait.php +27 -0
  196. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/StaticMemberTrait.php +1 -1
  197. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ValueTrait.php +5 -3
  198. package/support/vendor/phug/phug/src/Phug/Util/Util/SandBox.php +2 -1
  199. package/support/vendor/phug/phug/src/Phug/Util/Util/TestCase.php +47 -4
  200. package/support/vendor/phug/phug/src/Phug/Util/composer.json +7 -8
  201. package/support/vendor/symfony/deprecation-contracts/CHANGELOG.md +5 -0
  202. package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/LICENSE +1 -1
  203. package/support/vendor/symfony/deprecation-contracts/README.md +26 -0
  204. package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/composer.json +9 -9
  205. package/support/vendor/symfony/deprecation-contracts/function.php +27 -0
  206. package/support/vendor/symfony/polyfill-mbstring/LICENSE +1 -1
  207. package/support/vendor/symfony/polyfill-mbstring/Mbstring.php +256 -57
  208. package/support/vendor/symfony/polyfill-mbstring/README.md +1 -1
  209. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
  210. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1 -1
  211. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +102 -27
  212. package/support/vendor/symfony/polyfill-mbstring/bootstrap.php +33 -8
  213. package/support/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -0
  214. package/support/vendor/symfony/polyfill-mbstring/composer.json +5 -4
  215. package/support/vendor/symfony/var-dumper/CHANGELOG.md +63 -0
  216. package/support/vendor/symfony/var-dumper/Caster/AddressInfoCaster.php +82 -0
  217. package/support/vendor/symfony/var-dumper/Caster/AmqpCaster.php +12 -10
  218. package/support/vendor/symfony/var-dumper/Caster/ArgsStub.php +6 -7
  219. package/support/vendor/symfony/var-dumper/Caster/Caster.php +59 -31
  220. package/support/vendor/symfony/var-dumper/Caster/ClassStub.php +7 -9
  221. package/support/vendor/symfony/var-dumper/Caster/ConstStub.php +20 -4
  222. package/support/vendor/symfony/var-dumper/Caster/CurlCaster.php +31 -0
  223. package/support/vendor/symfony/var-dumper/Caster/CutArrayStub.php +1 -1
  224. package/support/vendor/symfony/var-dumper/Caster/CutStub.php +2 -2
  225. package/support/vendor/symfony/var-dumper/Caster/DOMCaster.php +61 -156
  226. package/support/vendor/symfony/var-dumper/Caster/DateCaster.php +27 -26
  227. package/support/vendor/symfony/var-dumper/Caster/DoctrineCaster.php +6 -4
  228. package/support/vendor/symfony/var-dumper/Caster/DsCaster.php +1 -1
  229. package/support/vendor/symfony/var-dumper/Caster/DsPairStub.php +1 -1
  230. package/support/vendor/symfony/var-dumper/Caster/EnumStub.php +4 -5
  231. package/support/vendor/symfony/var-dumper/Caster/ExceptionCaster.php +64 -49
  232. package/support/vendor/symfony/var-dumper/Caster/FFICaster.php +171 -0
  233. package/support/vendor/symfony/var-dumper/Caster/FiberCaster.php +43 -0
  234. package/support/vendor/symfony/var-dumper/Caster/FrameStub.php +6 -8
  235. package/support/vendor/symfony/var-dumper/Caster/GdCaster.php +30 -0
  236. package/support/vendor/symfony/var-dumper/Caster/GmpCaster.php +4 -2
  237. package/support/vendor/symfony/var-dumper/Caster/ImagineCaster.php +2 -0
  238. package/support/vendor/symfony/var-dumper/Caster/ImgStub.php +1 -1
  239. package/support/vendor/symfony/var-dumper/Caster/IntlCaster.php +10 -8
  240. package/support/vendor/symfony/var-dumper/Caster/LinkStub.php +14 -17
  241. package/support/vendor/symfony/var-dumper/Caster/MemcachedCaster.php +10 -8
  242. package/support/vendor/symfony/var-dumper/Caster/MysqliCaster.php +33 -0
  243. package/support/vendor/symfony/var-dumper/Caster/OpenSSLCaster.php +69 -0
  244. package/support/vendor/symfony/var-dumper/Caster/PdoCaster.php +8 -6
  245. package/support/vendor/symfony/var-dumper/Caster/PgSqlCaster.php +21 -19
  246. package/support/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php +4 -2
  247. package/support/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php +188 -0
  248. package/support/vendor/symfony/var-dumper/Caster/RedisCaster.php +31 -31
  249. package/support/vendor/symfony/var-dumper/Caster/ReflectionCaster.php +100 -44
  250. package/support/vendor/symfony/var-dumper/Caster/ResourceCaster.php +33 -46
  251. package/support/vendor/symfony/var-dumper/Caster/ScalarStub.php +27 -0
  252. package/support/vendor/symfony/var-dumper/Caster/SocketCaster.php +64 -0
  253. package/support/vendor/symfony/var-dumper/Caster/SplCaster.php +57 -44
  254. package/support/vendor/symfony/var-dumper/Caster/SqliteCaster.php +32 -0
  255. package/support/vendor/symfony/var-dumper/Caster/StubCaster.php +15 -5
  256. package/support/vendor/symfony/var-dumper/Caster/SymfonyCaster.php +66 -10
  257. package/support/vendor/symfony/var-dumper/Caster/TraceStub.php +7 -11
  258. package/support/vendor/symfony/var-dumper/Caster/UninitializedStub.php +25 -0
  259. package/support/vendor/symfony/var-dumper/Caster/UuidCaster.php +2 -0
  260. package/support/vendor/symfony/var-dumper/Caster/VirtualStub.php +21 -0
  261. package/support/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php +25 -10
  262. package/support/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php +7 -5
  263. package/support/vendor/symfony/var-dumper/Cloner/AbstractCloner.php +103 -72
  264. package/support/vendor/symfony/var-dumper/Cloner/ClonerInterface.php +1 -5
  265. package/support/vendor/symfony/var-dumper/Cloner/Cursor.php +21 -21
  266. package/support/vendor/symfony/var-dumper/Cloner/Data.php +51 -77
  267. package/support/vendor/symfony/var-dumper/Cloner/DumperInterface.php +11 -14
  268. package/support/vendor/symfony/var-dumper/Cloner/Stub.php +40 -31
  269. package/support/vendor/symfony/var-dumper/Cloner/VarCloner.php +21 -104
  270. package/support/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php +9 -19
  271. package/support/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php +10 -11
  272. package/support/vendor/symfony/var-dumper/Command/ServerDumpCommand.php +27 -15
  273. package/support/vendor/symfony/var-dumper/Dumper/AbstractDumper.php +68 -48
  274. package/support/vendor/symfony/var-dumper/Dumper/CliDumper.php +126 -113
  275. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php +1 -1
  276. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php +0 -3
  277. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php +5 -6
  278. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php +10 -15
  279. package/support/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php +8 -11
  280. package/support/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php +3 -0
  281. package/support/vendor/symfony/var-dumper/Dumper/HtmlDumper.php +122 -146
  282. package/support/vendor/symfony/var-dumper/Dumper/ServerDumper.php +10 -10
  283. package/support/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php +1 -1
  284. package/support/vendor/symfony/var-dumper/LICENSE +1 -1
  285. package/support/vendor/symfony/var-dumper/README.md +6 -6
  286. package/support/vendor/symfony/var-dumper/Resources/bin/var-dump-server +4 -0
  287. package/support/vendor/symfony/var-dumper/Resources/functions/dump.php +35 -10
  288. package/support/vendor/symfony/var-dumper/Server/Connection.php +16 -14
  289. package/support/vendor/symfony/var-dumper/Server/DumpServer.php +16 -14
  290. package/support/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php +9 -9
  291. package/support/vendor/symfony/var-dumper/VarDumper.php +69 -17
  292. package/support/vendor/symfony/var-dumper/composer.json +10 -16
  293. package/support/vendor/symfony/polyfill-php72/Php72.php +0 -217
  294. package/support/vendor/symfony/polyfill-php72/README.md +0 -28
  295. package/support/vendor/symfony/polyfill-php72/bootstrap.php +0 -57
  296. package/support/vendor/symfony/polyfill-php80/LICENSE +0 -19
  297. package/support/vendor/symfony/polyfill-php80/Php80.php +0 -105
  298. package/support/vendor/symfony/polyfill-php80/README.md +0 -24
  299. package/support/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +0 -22
  300. package/support/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +0 -11
  301. package/support/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +0 -5
  302. package/support/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +0 -5
  303. package/support/vendor/symfony/polyfill-php80/bootstrap.php +0 -42
  304. package/support/vendor/symfony/polyfill-php80/composer.json +0 -40
@@ -11,6 +11,7 @@
11
11
 
12
12
  namespace Symfony\Component\VarDumper\Caster;
13
13
 
14
+ use Relay\Relay;
14
15
  use Symfony\Component\VarDumper\Cloner\Stub;
15
16
 
16
17
  /**
@@ -18,35 +19,37 @@ use Symfony\Component\VarDumper\Cloner\Stub;
18
19
  *
19
20
  * @author Nicolas Grekas <p@tchwork.com>
20
21
  *
21
- * @final since Symfony 4.4
22
+ * @final
23
+ *
24
+ * @internal since Symfony 7.3
22
25
  */
23
26
  class RedisCaster
24
27
  {
25
- private static $serializer = [
26
- \Redis::SERIALIZER_NONE => 'NONE',
27
- \Redis::SERIALIZER_PHP => 'PHP',
28
+ private const SERIALIZERS = [
29
+ 0 => 'NONE', // Redis::SERIALIZER_NONE
30
+ 1 => 'PHP', // Redis::SERIALIZER_PHP
28
31
  2 => 'IGBINARY', // Optional Redis::SERIALIZER_IGBINARY
29
32
  ];
30
33
 
31
- private static $mode = [
32
- \Redis::ATOMIC => 'ATOMIC',
33
- \Redis::MULTI => 'MULTI',
34
- \Redis::PIPELINE => 'PIPELINE',
34
+ private const MODES = [
35
+ 0 => 'ATOMIC', // Redis::ATOMIC
36
+ 1 => 'MULTI', // Redis::MULTI
37
+ 2 => 'PIPELINE', // Redis::PIPELINE
35
38
  ];
36
39
 
37
- private static $compression = [
40
+ private const COMPRESSION_MODES = [
38
41
  0 => 'NONE', // Redis::COMPRESSION_NONE
39
42
  1 => 'LZF', // Redis::COMPRESSION_LZF
40
43
  ];
41
44
 
42
- private static $failover = [
45
+ private const FAILOVER_OPTIONS = [
43
46
  \RedisCluster::FAILOVER_NONE => 'NONE',
44
47
  \RedisCluster::FAILOVER_ERROR => 'ERROR',
45
48
  \RedisCluster::FAILOVER_DISTRIBUTE => 'DISTRIBUTE',
46
49
  \RedisCluster::FAILOVER_DISTRIBUTE_SLAVES => 'DISTRIBUTE_SLAVES',
47
50
  ];
48
51
 
49
- public static function castRedis(\Redis $c, array $a, Stub $stub, $isNested)
52
+ public static function castRedis(\Redis|Relay $c, array $a, Stub $stub, bool $isNested): array
50
53
  {
51
54
  $prefix = Caster::PREFIX_VIRTUAL;
52
55
 
@@ -63,7 +66,7 @@ class RedisCaster
63
66
  $prefix.'host' => $c->getHost(),
64
67
  $prefix.'port' => $c->getPort(),
65
68
  $prefix.'auth' => $c->getAuth(),
66
- $prefix.'mode' => isset(self::$mode[$mode]) ? new ConstStub(self::$mode[$mode], $mode) : $mode,
69
+ $prefix.'mode' => isset(self::MODES[$mode]) ? new ConstStub(self::MODES[$mode], $mode) : $mode,
67
70
  $prefix.'dbNum' => $c->getDbNum(),
68
71
  $prefix.'timeout' => $c->getTimeout(),
69
72
  $prefix.'lastError' => $c->getLastError(),
@@ -72,7 +75,7 @@ class RedisCaster
72
75
  ];
73
76
  }
74
77
 
75
- public static function castRedisArray(\RedisArray $c, array $a, Stub $stub, $isNested)
78
+ public static function castRedisArray(\RedisArray $c, array $a, Stub $stub, bool $isNested): array
76
79
  {
77
80
  $prefix = Caster::PREFIX_VIRTUAL;
78
81
 
@@ -84,7 +87,7 @@ class RedisCaster
84
87
  ];
85
88
  }
86
89
 
87
- public static function castRedisCluster(\RedisCluster $c, array $a, Stub $stub, $isNested)
90
+ public static function castRedisCluster(\RedisCluster $c, array $a, Stub $stub, bool $isNested): array
88
91
  {
89
92
  $prefix = Caster::PREFIX_VIRTUAL;
90
93
  $failover = $c->getOption(\RedisCluster::OPT_SLAVE_FAILOVER);
@@ -95,38 +98,35 @@ class RedisCaster
95
98
  $prefix.'mode' => new ConstStub($c->getMode() ? 'MULTI' : 'ATOMIC', $c->getMode()),
96
99
  $prefix.'lastError' => $c->getLastError(),
97
100
  $prefix.'options' => self::getRedisOptions($c, [
98
- 'SLAVE_FAILOVER' => isset(self::$failover[$failover]) ? new ConstStub(self::$failover[$failover], $failover) : $failover,
101
+ 'SLAVE_FAILOVER' => isset(self::FAILOVER_OPTIONS[$failover]) ? new ConstStub(self::FAILOVER_OPTIONS[$failover], $failover) : $failover,
99
102
  ]),
100
103
  ];
101
104
 
102
105
  return $a;
103
106
  }
104
107
 
105
- /**
106
- * @param \Redis|\RedisArray|\RedisCluster $redis
107
- */
108
- private static function getRedisOptions($redis, array $options = []): EnumStub
108
+ private static function getRedisOptions(\Redis|Relay|\RedisArray|\RedisCluster $redis, array $options = []): EnumStub
109
109
  {
110
- $serializer = $redis->getOption(\Redis::OPT_SERIALIZER);
110
+ $serializer = $redis->getOption(\defined('Redis::OPT_SERIALIZER') ? \Redis::OPT_SERIALIZER : 1);
111
111
  if (\is_array($serializer)) {
112
112
  foreach ($serializer as &$v) {
113
- if (isset(self::$serializer[$v])) {
114
- $v = new ConstStub(self::$serializer[$v], $v);
113
+ if (isset(self::SERIALIZERS[$v])) {
114
+ $v = new ConstStub(self::SERIALIZERS[$v], $v);
115
115
  }
116
116
  }
117
- } elseif (isset(self::$serializer[$serializer])) {
118
- $serializer = new ConstStub(self::$serializer[$serializer], $serializer);
117
+ } elseif (isset(self::SERIALIZERS[$serializer])) {
118
+ $serializer = new ConstStub(self::SERIALIZERS[$serializer], $serializer);
119
119
  }
120
120
 
121
121
  $compression = \defined('Redis::OPT_COMPRESSION') ? $redis->getOption(\Redis::OPT_COMPRESSION) : 0;
122
122
  if (\is_array($compression)) {
123
123
  foreach ($compression as &$v) {
124
- if (isset(self::$compression[$v])) {
125
- $v = new ConstStub(self::$compression[$v], $v);
124
+ if (isset(self::COMPRESSION_MODES[$v])) {
125
+ $v = new ConstStub(self::COMPRESSION_MODES[$v], $v);
126
126
  }
127
127
  }
128
- } elseif (isset(self::$compression[$compression])) {
129
- $compression = new ConstStub(self::$compression[$compression], $compression);
128
+ } elseif (isset(self::COMPRESSION_MODES[$compression])) {
129
+ $compression = new ConstStub(self::COMPRESSION_MODES[$compression], $compression);
130
130
  }
131
131
 
132
132
  $retry = \defined('Redis::OPT_SCAN') ? $redis->getOption(\Redis::OPT_SCAN) : 0;
@@ -139,11 +139,11 @@ class RedisCaster
139
139
  }
140
140
 
141
141
  $options += [
142
- 'TCP_KEEPALIVE' => \defined('Redis::OPT_TCP_KEEPALIVE') ? $redis->getOption(\Redis::OPT_TCP_KEEPALIVE) : 0,
143
- 'READ_TIMEOUT' => $redis->getOption(\Redis::OPT_READ_TIMEOUT),
142
+ 'TCP_KEEPALIVE' => \defined('Redis::OPT_TCP_KEEPALIVE') ? $redis->getOption(\Redis::OPT_TCP_KEEPALIVE) : Relay::OPT_TCP_KEEPALIVE,
143
+ 'READ_TIMEOUT' => $redis->getOption(\defined('Redis::OPT_READ_TIMEOUT') ? \Redis::OPT_READ_TIMEOUT : Relay::OPT_READ_TIMEOUT),
144
144
  'COMPRESSION' => $compression,
145
145
  'SERIALIZER' => $serializer,
146
- 'PREFIX' => $redis->getOption(\Redis::OPT_PREFIX),
146
+ 'PREFIX' => $redis->getOption(\defined('Redis::OPT_PREFIX') ? \Redis::OPT_PREFIX : Relay::OPT_PREFIX),
147
147
  'SCAN' => $retry,
148
148
  ];
149
149
 
@@ -18,13 +18,15 @@ use Symfony\Component\VarDumper\Cloner\Stub;
18
18
  *
19
19
  * @author Nicolas Grekas <p@tchwork.com>
20
20
  *
21
- * @final since Symfony 4.4
21
+ * @final
22
+ *
23
+ * @internal since Symfony 7.3
22
24
  */
23
25
  class ReflectionCaster
24
26
  {
25
- const UNSET_CLOSURE_FILE_INFO = ['Closure' => __CLASS__.'::unsetClosureFileInfo'];
27
+ public const UNSET_CLOSURE_FILE_INFO = ['Closure' => __CLASS__.'::unsetClosureFileInfo'];
26
28
 
27
- private static $extraMap = [
29
+ private const EXTRA_MAP = [
28
30
  'docComment' => 'getDocComment',
29
31
  'extension' => 'getExtensionName',
30
32
  'isDisabled' => 'isDisabled',
@@ -35,14 +37,14 @@ class ReflectionCaster
35
37
  'isVariadic' => 'isVariadic',
36
38
  ];
37
39
 
38
- public static function castClosure(\Closure $c, array $a, Stub $stub, $isNested, $filter = 0)
40
+ public static function castClosure(\Closure $c, array $a, Stub $stub, bool $isNested, int $filter = 0): array
39
41
  {
40
42
  $prefix = Caster::PREFIX_VIRTUAL;
41
43
  $c = new \ReflectionFunction($c);
42
44
 
43
45
  $a = static::castFunctionAbstract($c, $a, $stub, $isNested, $filter);
44
46
 
45
- if (false === strpos($c->name, '{closure}')) {
47
+ if (!$c->isAnonymous()) {
46
48
  $stub->class = isset($a[$prefix.'class']) ? $a[$prefix.'class']->value.'::'.$c->name : $c->name;
47
49
  unset($a[$prefix.'class']);
48
50
  }
@@ -71,41 +73,66 @@ class ReflectionCaster
71
73
  return $a;
72
74
  }
73
75
 
74
- public static function unsetClosureFileInfo(\Closure $c, array $a)
76
+ public static function unsetClosureFileInfo(\Closure $c, array $a): array
75
77
  {
76
78
  unset($a[Caster::PREFIX_VIRTUAL.'file'], $a[Caster::PREFIX_VIRTUAL.'line']);
77
79
 
78
80
  return $a;
79
81
  }
80
82
 
81
- public static function castGenerator(\Generator $c, array $a, Stub $stub, $isNested)
83
+ public static function castGenerator(\Generator $c, array $a, Stub $stub, bool $isNested): array
82
84
  {
83
85
  // Cannot create ReflectionGenerator based on a terminated Generator
84
86
  try {
85
87
  $reflectionGenerator = new \ReflectionGenerator($c);
86
- } catch (\Exception $e) {
88
+
89
+ return self::castReflectionGenerator($reflectionGenerator, $a, $stub, $isNested);
90
+ } catch (\Exception) {
87
91
  $a[Caster::PREFIX_VIRTUAL.'closed'] = true;
88
92
 
89
93
  return $a;
90
94
  }
91
-
92
- return self::castReflectionGenerator($reflectionGenerator, $a, $stub, $isNested);
93
95
  }
94
96
 
95
- public static function castType(\ReflectionType $c, array $a, Stub $stub, $isNested)
97
+ public static function castType(\ReflectionType $c, array $a, Stub $stub, bool $isNested): array
96
98
  {
97
99
  $prefix = Caster::PREFIX_VIRTUAL;
98
100
 
99
- $a += [
100
- $prefix.'name' => $c instanceof \ReflectionNamedType ? $c->getName() : (string) $c,
101
- $prefix.'allowsNull' => $c->allowsNull(),
102
- $prefix.'isBuiltin' => $c->isBuiltin(),
101
+ if ($c instanceof \ReflectionNamedType) {
102
+ $a += [
103
+ $prefix.'name' => $c->getName(),
104
+ $prefix.'allowsNull' => $c->allowsNull(),
105
+ $prefix.'isBuiltin' => $c->isBuiltin(),
106
+ ];
107
+ } elseif ($c instanceof \ReflectionUnionType || $c instanceof \ReflectionIntersectionType) {
108
+ $a[$prefix.'allowsNull'] = $c->allowsNull();
109
+ self::addMap($a, $c, [
110
+ 'types' => 'getTypes',
111
+ ]);
112
+ } else {
113
+ $a[$prefix.'allowsNull'] = $c->allowsNull();
114
+ }
115
+
116
+ return $a;
117
+ }
118
+
119
+ public static function castAttribute(\ReflectionAttribute $c, array $a, Stub $stub, bool $isNested): array
120
+ {
121
+ $map = [
122
+ 'name' => 'getName',
123
+ 'arguments' => 'getArguments',
103
124
  ];
104
125
 
126
+ if (\PHP_VERSION_ID >= 80400) {
127
+ unset($map['name']);
128
+ }
129
+
130
+ self::addMap($a, $c, $map);
131
+
105
132
  return $a;
106
133
  }
107
134
 
108
- public static function castReflectionGenerator(\ReflectionGenerator $c, array $a, Stub $stub, $isNested)
135
+ public static function castReflectionGenerator(\ReflectionGenerator $c, array $a, Stub $stub, bool $isNested): array
109
136
  {
110
137
  $prefix = Caster::PREFIX_VIRTUAL;
111
138
 
@@ -114,7 +141,7 @@ class ReflectionCaster
114
141
  }
115
142
  $function = $c->getFunction();
116
143
  $frame = [
117
- 'class' => isset($function->class) ? $function->class : null,
144
+ 'class' => $function->class ?? null,
118
145
  'type' => isset($function->class) ? ($function->isStatic() ? '::' : '->') : null,
119
146
  'function' => $function->name,
120
147
  'file' => $c->getExecutingFile(),
@@ -125,7 +152,7 @@ class ReflectionCaster
125
152
  array_unshift($trace, [
126
153
  'function' => 'yield',
127
154
  'file' => $function->getExecutingFile(),
128
- 'line' => $function->getExecutingLine() - 1,
155
+ 'line' => $function->getExecutingLine(),
129
156
  ]);
130
157
  $trace[] = $frame;
131
158
  $a[$prefix.'trace'] = new TraceStub($trace, false, 0, -1, -1);
@@ -140,7 +167,7 @@ class ReflectionCaster
140
167
  return $a;
141
168
  }
142
169
 
143
- public static function castClass(\ReflectionClass $c, array $a, Stub $stub, $isNested, $filter = 0)
170
+ public static function castClass(\ReflectionClass $c, array $a, Stub $stub, bool $isNested, int $filter = 0): array
144
171
  {
145
172
  $prefix = Caster::PREFIX_VIRTUAL;
146
173
 
@@ -151,7 +178,7 @@ class ReflectionCaster
151
178
  self::addMap($a, $c, [
152
179
  'extends' => 'getParentClass',
153
180
  'implements' => 'getInterfaceNames',
154
- 'constants' => 'getConstants',
181
+ 'constants' => 'getReflectionConstants',
155
182
  ]);
156
183
 
157
184
  foreach ($c->getProperties() as $n) {
@@ -162,6 +189,8 @@ class ReflectionCaster
162
189
  $a[$prefix.'methods'][$n->name] = $n;
163
190
  }
164
191
 
192
+ self::addAttributes($a, $c, $prefix);
193
+
165
194
  if (!($filter & Caster::EXCLUDE_VERBOSE) && !$isNested) {
166
195
  self::addExtra($a, $c);
167
196
  }
@@ -169,21 +198,21 @@ class ReflectionCaster
169
198
  return $a;
170
199
  }
171
200
 
172
- public static function castFunctionAbstract(\ReflectionFunctionAbstract $c, array $a, Stub $stub, $isNested, $filter = 0)
201
+ public static function castFunctionAbstract(\ReflectionFunctionAbstract $c, array $a, Stub $stub, bool $isNested, int $filter = 0): array
173
202
  {
174
203
  $prefix = Caster::PREFIX_VIRTUAL;
175
204
 
176
205
  self::addMap($a, $c, [
177
206
  'returnsReference' => 'returnsReference',
178
207
  'returnType' => 'getReturnType',
179
- 'class' => 'getClosureScopeClass',
208
+ 'class' => 'getClosureCalledClass',
180
209
  'this' => 'getClosureThis',
181
210
  ]);
182
211
 
183
212
  if (isset($a[$prefix.'returnType'])) {
184
213
  $v = $a[$prefix.'returnType'];
185
214
  $v = $v instanceof \ReflectionNamedType ? $v->getName() : (string) $v;
186
- $a[$prefix.'returnType'] = new ClassStub($a[$prefix.'returnType']->allowsNull() ? '?'.$v : $v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']);
215
+ $a[$prefix.'returnType'] = new ClassStub($a[$prefix.'returnType'] instanceof \ReflectionNamedType && $a[$prefix.'returnType']->allowsNull() && !\in_array($v, ['mixed', 'null'], true) ? '?'.$v : $v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']);
187
216
  }
188
217
  if (isset($a[$prefix.'class'])) {
189
218
  $a[$prefix.'class'] = new ClassStub($a[$prefix.'class']);
@@ -206,6 +235,8 @@ class ReflectionCaster
206
235
  $a[$prefix.'parameters'] = new EnumStub($a[$prefix.'parameters']);
207
236
  }
208
237
 
238
+ self::addAttributes($a, $c, $prefix);
239
+
209
240
  if (!($filter & Caster::EXCLUDE_VERBOSE) && $v = $c->getStaticVariables()) {
210
241
  foreach ($v as $k => &$v) {
211
242
  if (\is_object($v)) {
@@ -225,14 +256,24 @@ class ReflectionCaster
225
256
  return $a;
226
257
  }
227
258
 
228
- public static function castMethod(\ReflectionMethod $c, array $a, Stub $stub, $isNested)
259
+ public static function castClassConstant(\ReflectionClassConstant $c, array $a, Stub $stub, bool $isNested): array
229
260
  {
230
261
  $a[Caster::PREFIX_VIRTUAL.'modifiers'] = implode(' ', \Reflection::getModifierNames($c->getModifiers()));
262
+ $a[Caster::PREFIX_VIRTUAL.'value'] = $c->getValue();
263
+
264
+ self::addAttributes($a, $c);
231
265
 
232
266
  return $a;
233
267
  }
234
268
 
235
- public static function castParameter(\ReflectionParameter $c, array $a, Stub $stub, $isNested)
269
+ public static function castMethod(\ReflectionMethod $c, array $a, Stub $stub, bool $isNested): array
270
+ {
271
+ $a[Caster::PREFIX_VIRTUAL.'modifiers'] = implode(' ', \Reflection::getModifierNames($c->getModifiers()));
272
+
273
+ return $a;
274
+ }
275
+
276
+ public static function castParameter(\ReflectionParameter $c, array $a, Stub $stub, bool $isNested): array
236
277
  {
237
278
  $prefix = Caster::PREFIX_VIRTUAL;
238
279
 
@@ -243,6 +284,8 @@ class ReflectionCaster
243
284
  'allowsNull' => 'allowsNull',
244
285
  ]);
245
286
 
287
+ self::addAttributes($a, $c, $prefix);
288
+
246
289
  if ($v = $c->getType()) {
247
290
  $a[$prefix.'typeHint'] = $v instanceof \ReflectionNamedType ? $v->getName() : (string) $v;
248
291
  }
@@ -254,36 +297,40 @@ class ReflectionCaster
254
297
  unset($a[$prefix.'allowsNull']);
255
298
  }
256
299
 
257
- try {
258
- $a[$prefix.'default'] = $v = $c->getDefaultValue();
259
- if ($c->isDefaultValueConstant()) {
260
- $a[$prefix.'default'] = new ConstStub($c->getDefaultValueConstantName(), $v);
261
- }
262
- if (null === $v) {
263
- unset($a[$prefix.'allowsNull']);
300
+ if ($c->isOptional()) {
301
+ try {
302
+ $a[$prefix.'default'] = $v = $c->getDefaultValue();
303
+ if ($c->isDefaultValueConstant() && !\is_object($v)) {
304
+ $a[$prefix.'default'] = new ConstStub($c->getDefaultValueConstantName(), $v);
305
+ }
306
+ if (null === $v) {
307
+ unset($a[$prefix.'allowsNull']);
308
+ }
309
+ } catch (\ReflectionException) {
264
310
  }
265
- } catch (\ReflectionException $e) {
266
311
  }
267
312
 
268
313
  return $a;
269
314
  }
270
315
 
271
- public static function castProperty(\ReflectionProperty $c, array $a, Stub $stub, $isNested)
316
+ public static function castProperty(\ReflectionProperty $c, array $a, Stub $stub, bool $isNested): array
272
317
  {
273
318
  $a[Caster::PREFIX_VIRTUAL.'modifiers'] = implode(' ', \Reflection::getModifierNames($c->getModifiers()));
319
+
320
+ self::addAttributes($a, $c);
274
321
  self::addExtra($a, $c);
275
322
 
276
323
  return $a;
277
324
  }
278
325
 
279
- public static function castReference(\ReflectionReference $c, array $a, Stub $stub, $isNested)
326
+ public static function castReference(\ReflectionReference $c, array $a, Stub $stub, bool $isNested): array
280
327
  {
281
328
  $a[Caster::PREFIX_VIRTUAL.'id'] = $c->getId();
282
329
 
283
330
  return $a;
284
331
  }
285
332
 
286
- public static function castExtension(\ReflectionExtension $c, array $a, Stub $stub, $isNested)
333
+ public static function castExtension(\ReflectionExtension $c, array $a, Stub $stub, bool $isNested): array
287
334
  {
288
335
  self::addMap($a, $c, [
289
336
  'version' => 'getVersion',
@@ -299,7 +346,7 @@ class ReflectionCaster
299
346
  return $a;
300
347
  }
301
348
 
302
- public static function castZendExtension(\ReflectionZendExtension $c, array $a, Stub $stub, $isNested)
349
+ public static function castZendExtension(\ReflectionZendExtension $c, array $a, Stub $stub, bool $isNested): array
303
350
  {
304
351
  self::addMap($a, $c, [
305
352
  'version' => 'getVersion',
@@ -311,7 +358,7 @@ class ReflectionCaster
311
358
  return $a;
312
359
  }
313
360
 
314
- public static function getSignature(array $a)
361
+ public static function getSignature(array $a): string
315
362
  {
316
363
  $prefix = Caster::PREFIX_VIRTUAL;
317
364
  $signature = '';
@@ -323,7 +370,7 @@ class ReflectionCaster
323
370
  if (!$type instanceof \ReflectionNamedType) {
324
371
  $signature .= $type.' ';
325
372
  } else {
326
- if (!$param->isOptional() && $param->allowsNull()) {
373
+ if ($param->allowsNull() && !\in_array($type->getName(), ['mixed', 'null'], true)) {
327
374
  $signature .= '?';
328
375
  }
329
376
  $signature .= substr(strrchr('\\'.$type->getName(), '\\'), 1).' ';
@@ -344,9 +391,11 @@ class ReflectionCaster
344
391
  } elseif (\is_array($v)) {
345
392
  $signature .= $v ? '[…'.\count($v).']' : '[]';
346
393
  } elseif (\is_string($v)) {
347
- $signature .= 10 > \strlen($v) && false === strpos($v, '\\') ? "'{$v}'" : "'…".\strlen($v)."'";
394
+ $signature .= 10 > \strlen($v) && !str_contains($v, '\\') ? "'{$v}'" : "'…".\strlen($v)."'";
348
395
  } elseif (\is_bool($v)) {
349
396
  $signature .= $v ? 'true' : 'false';
397
+ } elseif (\is_object($v)) {
398
+ $signature .= 'new '.substr(strrchr('\\'.get_debug_type($v), '\\'), 1);
350
399
  } else {
351
400
  $signature .= $v;
352
401
  }
@@ -361,7 +410,7 @@ class ReflectionCaster
361
410
  return $signature;
362
411
  }
363
412
 
364
- private static function addExtra(array &$a, \Reflector $c)
413
+ private static function addExtra(array &$a, \Reflector $c): void
365
414
  {
366
415
  $x = isset($a[Caster::PREFIX_VIRTUAL.'extra']) ? $a[Caster::PREFIX_VIRTUAL.'extra']->value : [];
367
416
 
@@ -370,17 +419,17 @@ class ReflectionCaster
370
419
  $x['line'] = $c->getStartLine().' to '.$c->getEndLine();
371
420
  }
372
421
 
373
- self::addMap($x, $c, self::$extraMap, '');
422
+ self::addMap($x, $c, self::EXTRA_MAP, '');
374
423
 
375
424
  if ($x) {
376
425
  $a[Caster::PREFIX_VIRTUAL.'extra'] = new EnumStub($x);
377
426
  }
378
427
  }
379
428
 
380
- private static function addMap(array &$a, \Reflector $c, array $map, string $prefix = Caster::PREFIX_VIRTUAL)
429
+ private static function addMap(array &$a, object $c, array $map, string $prefix = Caster::PREFIX_VIRTUAL): void
381
430
  {
382
431
  foreach ($map as $k => $m) {
383
- if (\PHP_VERSION_ID >= 80000 && 'isDisabled' === $k) {
432
+ if ('isDisabled' === $k) {
384
433
  continue;
385
434
  }
386
435
 
@@ -389,4 +438,11 @@ class ReflectionCaster
389
438
  }
390
439
  }
391
440
  }
441
+
442
+ private static function addAttributes(array &$a, \Reflector $c, string $prefix = Caster::PREFIX_VIRTUAL): void
443
+ {
444
+ foreach ($c->getAttributes() as $n) {
445
+ $a[$prefix.'attributes'][] = $n;
446
+ }
447
+ }
392
448
  }
@@ -18,88 +18,75 @@ use Symfony\Component\VarDumper\Cloner\Stub;
18
18
  *
19
19
  * @author Nicolas Grekas <p@tchwork.com>
20
20
  *
21
- * @final since Symfony 4.4
21
+ * @final
22
+ *
23
+ * @internal since Symfony 7.3
22
24
  */
23
25
  class ResourceCaster
24
26
  {
25
27
  /**
26
- * @param \CurlHandle|resource $h
27
- *
28
- * @return array
28
+ * @deprecated since Symfony 7.3
29
29
  */
30
- public static function castCurl($h, array $a, Stub $stub, $isNested)
30
+ public static function castCurl(\CurlHandle $h, array $a, Stub $stub, bool $isNested): array
31
31
  {
32
- return curl_getinfo($h);
32
+ trigger_deprecation('symfony/var-dumper', '7.3', 'The "%s()" method is deprecated without replacement.', __METHOD__);
33
+
34
+ return CurlCaster::castCurl($h, $a, $stub, $isNested);
33
35
  }
34
36
 
35
- public static function castDba($dba, array $a, Stub $stub, $isNested)
37
+ /**
38
+ * @param resource|\Dba\Connection $dba
39
+ */
40
+ public static function castDba(mixed $dba, array $a, Stub $stub, bool $isNested): array
36
41
  {
42
+ if (\PHP_VERSION_ID < 80402 && !\is_resource($dba)) {
43
+ // @see https://github.com/php/php-src/issues/16990
44
+ return $a;
45
+ }
46
+
37
47
  $list = dba_list();
38
48
  $a['file'] = $list[(int) $dba];
39
49
 
40
50
  return $a;
41
51
  }
42
52
 
43
- public static function castProcess($process, array $a, Stub $stub, $isNested)
53
+ public static function castProcess($process, array $a, Stub $stub, bool $isNested): array
44
54
  {
45
55
  return proc_get_status($process);
46
56
  }
47
57
 
48
- public static function castStream($stream, array $a, Stub $stub, $isNested)
58
+ public static function castStream($stream, array $a, Stub $stub, bool $isNested): array
49
59
  {
50
60
  $a = stream_get_meta_data($stream) + static::castStreamContext($stream, $a, $stub, $isNested);
51
- if (isset($a['uri'])) {
61
+ if ($a['uri'] ?? false) {
52
62
  $a['uri'] = new LinkStub($a['uri']);
53
63
  }
54
64
 
55
65
  return $a;
56
66
  }
57
67
 
58
- public static function castStreamContext($stream, array $a, Stub $stub, $isNested)
68
+ public static function castStreamContext($stream, array $a, Stub $stub, bool $isNested): array
59
69
  {
60
70
  return @stream_context_get_params($stream) ?: $a;
61
71
  }
62
72
 
63
- public static function castGd($gd, array $a, Stub $stub, $isNested)
64
- {
65
- $a['size'] = imagesx($gd).'x'.imagesy($gd);
66
- $a['trueColor'] = imageistruecolor($gd);
67
-
68
- return $a;
69
- }
70
-
71
- public static function castMysqlLink($h, array $a, Stub $stub, $isNested)
73
+ /**
74
+ * @deprecated since Symfony 7.3
75
+ */
76
+ public static function castGd(\GdImage $gd, array $a, Stub $stub, bool $isNested): array
72
77
  {
73
- $a['host'] = mysql_get_host_info($h);
74
- $a['protocol'] = mysql_get_proto_info($h);
75
- $a['server'] = mysql_get_server_info($h);
78
+ trigger_deprecation('symfony/var-dumper', '7.3', 'The "%s()" method is deprecated without replacement.', __METHOD__);
76
79
 
77
- return $a;
80
+ return GdCaster::castGd($gd, $a, $stub, $isNested);
78
81
  }
79
82
 
80
- public static function castOpensslX509($h, array $a, Stub $stub, $isNested)
83
+ /**
84
+ * @deprecated since Symfony 7.3
85
+ */
86
+ public static function castOpensslX509(\OpenSSLCertificate $h, array $a, Stub $stub, bool $isNested): array
81
87
  {
82
- $stub->cut = -1;
83
- $info = openssl_x509_parse($h, false);
84
-
85
- $pin = openssl_pkey_get_public($h);
86
- $pin = openssl_pkey_get_details($pin)['key'];
87
- $pin = \array_slice(explode("\n", $pin), 1, -2);
88
- $pin = base64_decode(implode('', $pin));
89
- $pin = base64_encode(hash('sha256', $pin, true));
90
-
91
- $a += [
92
- 'subject' => new EnumStub(array_intersect_key($info['subject'], ['organizationName' => true, 'commonName' => true])),
93
- 'issuer' => new EnumStub(array_intersect_key($info['issuer'], ['organizationName' => true, 'commonName' => true])),
94
- 'expiry' => new ConstStub(date(\DateTime::ISO8601, $info['validTo_time_t']), $info['validTo_time_t']),
95
- 'fingerprint' => new EnumStub([
96
- 'md5' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'md5')), 2, ':', true)),
97
- 'sha1' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'sha1')), 2, ':', true)),
98
- 'sha256' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'sha256')), 2, ':', true)),
99
- 'pin-sha256' => new ConstStub($pin),
100
- ]),
101
- ];
88
+ trigger_deprecation('symfony/var-dumper', '7.3', 'The "%s()" method is deprecated without replacement.', __METHOD__);
102
89
 
103
- return $a;
90
+ return OpenSSLCaster::castOpensslX509($h, $a, $stub, $isNested);
104
91
  }
105
92
  }
@@ -0,0 +1,27 @@
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Symfony\Component\VarDumper\Caster;
13
+
14
+ use Symfony\Component\VarDumper\Cloner\Stub;
15
+
16
+ /**
17
+ * Represents any arbitrary value.
18
+ *
19
+ * @author Alexandre Daubois <alex.daubois@gmail.com>
20
+ */
21
+ class ScalarStub extends Stub
22
+ {
23
+ public function __construct(mixed $value)
24
+ {
25
+ $this->value = $value;
26
+ }
27
+ }