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.
- package/README.md +26 -0
- package/index.js +38 -10
- package/package.json +4 -4
- package/support/bootstrap.php +6 -0
- package/support/composer.json +1 -1
- package/support/composer.lock +94 -179
- 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 +99 -186
- package/support/vendor/composer/installed.php +129 -151
- package/support/vendor/composer/platform_check.php +15 -4
- package/support/vendor/phug/phug/.github/workflows/coverage.yml +61 -0
- package/support/vendor/phug/phug/.github/workflows/multi-tester.yml +48 -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 +48 -0
- package/support/vendor/phug/phug/.multi-tester.yml +47 -17
- package/support/vendor/phug/phug/composer.json +27 -18
- 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 +9 -3
- package/support/vendor/phug/phug/src/Phug/Ast/composer.json +2 -3
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/AbstractNodeCompiler.php +4 -4
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/Element/BlockElement.php +4 -4
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentListNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentNodeCompiler.php +10 -2
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeListNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeNodeCompiler.php +2 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/BlockNodeCompiler.php +3 -3
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CaseNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CodeNodeCompiler.php +2 -2
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CommentNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ConditionalNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DoNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DoctypeNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DocumentNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/EachNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ElementNodeCompiler.php +7 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ExpressionNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/FilterNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ForNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ImportNodeCompiler.php +5 -5
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/KeywordNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/MixinCallNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/MixinNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/TextNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/VariableNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/WhenNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/WhileNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/YieldNodeCompiler.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompilerInterface.php +5 -5
- package/support/vendor/phug/phug/src/Phug/Compiler/Compiler.php +2 -2
- package/support/vendor/phug/phug/src/Phug/Compiler/CompilerInterface.php +2 -2
- package/support/vendor/phug/phug/src/Phug/Compiler/composer.json +10 -7
- package/support/vendor/phug/phug/src/Phug/DependencyInjection/DependencyInjection.php +1 -1
- package/support/vendor/phug/phug/src/Phug/DependencyInjection/composer.json +3 -4
- 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 +2 -3
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractElement.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractFormat.php +17 -14
- 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/AbstractValueElement.php +3 -3
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AnonymousBlockElement.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AssignmentElement.php +13 -8
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AttributeElement.php +7 -4
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/CodeElement.php +5 -5
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/KeywordElement.php +3 -3
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MarkupElement.php +13 -11
- 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/Element/VariableElement.php +5 -5
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Event/FormatEvent.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/HtmlFormat.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XhtmlFormat.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XmlFormat.php +214 -21
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/FormatInterface.php +1 -1
- 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/Partial/PatternTrait.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/Formatter.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Formatter/composer.json +5 -6
- package/support/vendor/phug/phug/src/Phug/Invoker/Invoker.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Invoker/composer.json +9 -6
- package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/AbstractToken.php +1 -1
- 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 +24 -12
- 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 +2 -2
- 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/Lexer/TokenInterface.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Lexer/composer.json +4 -5
- 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/Node.php +5 -5
- package/support/vendor/phug/phug/src/Phug/Parser/Parser/State.php +4 -4
- 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/ParserException.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Parser/composer.json +5 -6
- 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/Partial/PluginEnablerTrait.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 +9 -6
- package/support/vendor/phug/phug/src/Phug/Reader/Reader.php +13 -13
- package/support/vendor/phug/phug/src/Phug/Reader/composer.json +6 -2
- 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/Renderer/Task/TasksGroup.php +1 -1
- package/support/vendor/phug/phug/src/Phug/Renderer/composer.json +10 -6
- 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 +2 -1
- package/support/vendor/phug/phug/src/Phug/Util/Util/TestCase.php +47 -4
- package/support/vendor/phug/phug/src/Phug/Util/composer.json +7 -8
- 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
|
@@ -48,6 +48,11 @@ namespace Symfony\Polyfill\Mbstring;
|
|
|
48
48
|
* - mb_strstr - Finds first occurrence of a string within another
|
|
49
49
|
* - mb_strwidth - Return width of string
|
|
50
50
|
* - mb_substr_count - Count the number of substring occurrences
|
|
51
|
+
* - mb_ucfirst - Make a string's first character uppercase
|
|
52
|
+
* - mb_lcfirst - Make a string's first character lowercase
|
|
53
|
+
* - mb_trim - Strip whitespace (or other characters) from the beginning and end of a string
|
|
54
|
+
* - mb_ltrim - Strip whitespace (or other characters) from the beginning of a string
|
|
55
|
+
* - mb_rtrim - Strip whitespace (or other characters) from the end of a string
|
|
51
56
|
*
|
|
52
57
|
* Not implemented:
|
|
53
58
|
* - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
|
|
@@ -67,19 +72,29 @@ namespace Symfony\Polyfill\Mbstring;
|
|
|
67
72
|
*/
|
|
68
73
|
final class Mbstring
|
|
69
74
|
{
|
|
70
|
-
const MB_CASE_FOLD = PHP_INT_MAX;
|
|
75
|
+
public const MB_CASE_FOLD = \PHP_INT_MAX;
|
|
71
76
|
|
|
72
|
-
private
|
|
77
|
+
private const SIMPLE_CASE_FOLD = [
|
|
78
|
+
['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"],
|
|
79
|
+
['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'],
|
|
80
|
+
];
|
|
81
|
+
|
|
82
|
+
private static $encodingList = ['ASCII', 'UTF-8'];
|
|
73
83
|
private static $language = 'neutral';
|
|
74
84
|
private static $internalEncoding = 'UTF-8';
|
|
75
|
-
private static $caseFold = array(
|
|
76
|
-
array('µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"),
|
|
77
|
-
array('μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'),
|
|
78
|
-
);
|
|
79
85
|
|
|
80
86
|
public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
|
|
81
87
|
{
|
|
82
|
-
if (\is_array($
|
|
88
|
+
if (\is_array($s)) {
|
|
89
|
+
$r = [];
|
|
90
|
+
foreach ($s as $str) {
|
|
91
|
+
$r[] = self::mb_convert_encoding($str, $toEncoding, $fromEncoding);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return $r;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) {
|
|
83
98
|
$fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
|
|
84
99
|
} else {
|
|
85
100
|
$fromEncoding = self::getEncoding($fromEncoding);
|
|
@@ -104,11 +119,11 @@ final class Mbstring
|
|
|
104
119
|
$s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);
|
|
105
120
|
}
|
|
106
121
|
|
|
107
|
-
return preg_replace_callback('/[\x80-\xFF]+/',
|
|
122
|
+
return preg_replace_callback('/[\x80-\xFF]+/', [__CLASS__, 'html_encoding_callback'], $s);
|
|
108
123
|
}
|
|
109
124
|
|
|
110
125
|
if ('HTML-ENTITIES' === $fromEncoding) {
|
|
111
|
-
$s = html_entity_decode($s, ENT_COMPAT, 'UTF-8');
|
|
126
|
+
$s = html_entity_decode($s, \ENT_COMPAT, 'UTF-8');
|
|
112
127
|
$fromEncoding = 'UTF-8';
|
|
113
128
|
}
|
|
114
129
|
|
|
@@ -119,7 +134,7 @@ final class Mbstring
|
|
|
119
134
|
{
|
|
120
135
|
$ok = true;
|
|
121
136
|
array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {
|
|
122
|
-
if (false === $v =
|
|
137
|
+
if (false === $v = self::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
|
|
123
138
|
$ok = false;
|
|
124
139
|
}
|
|
125
140
|
});
|
|
@@ -134,23 +149,23 @@ final class Mbstring
|
|
|
134
149
|
|
|
135
150
|
public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
|
|
136
151
|
{
|
|
137
|
-
trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING);
|
|
152
|
+
trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', \E_USER_WARNING);
|
|
138
153
|
}
|
|
139
154
|
|
|
140
155
|
public static function mb_decode_numericentity($s, $convmap, $encoding = null)
|
|
141
156
|
{
|
|
142
|
-
if (null !== $s && !\is_scalar($s) && !(\is_object($s) &&
|
|
143
|
-
trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
|
157
|
+
if (null !== $s && !\is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
|
|
158
|
+
trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
|
144
159
|
|
|
145
160
|
return null;
|
|
146
161
|
}
|
|
147
162
|
|
|
148
|
-
if (!\is_array($convmap) || !$convmap) {
|
|
163
|
+
if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
|
|
149
164
|
return false;
|
|
150
165
|
}
|
|
151
166
|
|
|
152
167
|
if (null !== $encoding && !\is_scalar($encoding)) {
|
|
153
|
-
trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
|
168
|
+
trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
|
154
169
|
|
|
155
170
|
return ''; // Instead of null (cf. mb_encode_numericentity).
|
|
156
171
|
}
|
|
@@ -183,7 +198,7 @@ final class Mbstring
|
|
|
183
198
|
$c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];
|
|
184
199
|
for ($i = 0; $i < $cnt; $i += 4) {
|
|
185
200
|
if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {
|
|
186
|
-
return
|
|
201
|
+
return self::mb_chr($c - $convmap[$i + 2]);
|
|
187
202
|
}
|
|
188
203
|
}
|
|
189
204
|
|
|
@@ -199,24 +214,24 @@ final class Mbstring
|
|
|
199
214
|
|
|
200
215
|
public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
|
|
201
216
|
{
|
|
202
|
-
if (null !== $s && !\is_scalar($s) && !(\is_object($s) &&
|
|
203
|
-
trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
|
217
|
+
if (null !== $s && !\is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
|
|
218
|
+
trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
|
204
219
|
|
|
205
220
|
return null;
|
|
206
221
|
}
|
|
207
222
|
|
|
208
|
-
if (!\is_array($convmap) || !$convmap) {
|
|
223
|
+
if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
|
|
209
224
|
return false;
|
|
210
225
|
}
|
|
211
226
|
|
|
212
227
|
if (null !== $encoding && !\is_scalar($encoding)) {
|
|
213
|
-
trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
|
228
|
+
trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
|
214
229
|
|
|
215
230
|
return null; // Instead of '' (cf. mb_decode_numericentity).
|
|
216
231
|
}
|
|
217
232
|
|
|
218
233
|
if (null !== $is_hex && !\is_scalar($is_hex)) {
|
|
219
|
-
trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', E_USER_WARNING);
|
|
234
|
+
trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', \E_USER_WARNING);
|
|
220
235
|
|
|
221
236
|
return null;
|
|
222
237
|
}
|
|
@@ -237,7 +252,7 @@ final class Mbstring
|
|
|
237
252
|
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
|
238
253
|
}
|
|
239
254
|
|
|
240
|
-
static $ulenMask =
|
|
255
|
+
static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
|
|
241
256
|
|
|
242
257
|
$cnt = floor(\count($convmap) / 4) * 4;
|
|
243
258
|
$i = 0;
|
|
@@ -285,14 +300,14 @@ final class Mbstring
|
|
|
285
300
|
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
|
286
301
|
}
|
|
287
302
|
|
|
288
|
-
if (MB_CASE_TITLE == $mode) {
|
|
303
|
+
if (\MB_CASE_TITLE == $mode) {
|
|
289
304
|
static $titleRegexp = null;
|
|
290
305
|
if (null === $titleRegexp) {
|
|
291
306
|
$titleRegexp = self::getData('titleCaseRegexp');
|
|
292
307
|
}
|
|
293
|
-
$s = preg_replace_callback($titleRegexp,
|
|
308
|
+
$s = preg_replace_callback($titleRegexp, [__CLASS__, 'title_case'], $s);
|
|
294
309
|
} else {
|
|
295
|
-
if (MB_CASE_UPPER == $mode) {
|
|
310
|
+
if (\MB_CASE_UPPER == $mode) {
|
|
296
311
|
static $upper = null;
|
|
297
312
|
if (null === $upper) {
|
|
298
313
|
$upper = self::getData('upperCase');
|
|
@@ -300,7 +315,11 @@ final class Mbstring
|
|
|
300
315
|
$map = $upper;
|
|
301
316
|
} else {
|
|
302
317
|
if (self::MB_CASE_FOLD === $mode) {
|
|
303
|
-
$
|
|
318
|
+
static $caseFolding = null;
|
|
319
|
+
if (null === $caseFolding) {
|
|
320
|
+
$caseFolding = self::getData('caseFolding');
|
|
321
|
+
}
|
|
322
|
+
$s = strtr($s, $caseFolding);
|
|
304
323
|
}
|
|
305
324
|
|
|
306
325
|
static $lower = null;
|
|
@@ -310,7 +329,7 @@ final class Mbstring
|
|
|
310
329
|
$map = $lower;
|
|
311
330
|
}
|
|
312
331
|
|
|
313
|
-
static $ulenMask =
|
|
332
|
+
static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
|
|
314
333
|
|
|
315
334
|
$i = 0;
|
|
316
335
|
$len = \strlen($s);
|
|
@@ -351,15 +370,19 @@ final class Mbstring
|
|
|
351
370
|
return self::$internalEncoding;
|
|
352
371
|
}
|
|
353
372
|
|
|
354
|
-
$
|
|
373
|
+
$normalizedEncoding = self::getEncoding($encoding);
|
|
355
374
|
|
|
356
|
-
if ('UTF-8' === $
|
|
357
|
-
self::$internalEncoding = $
|
|
375
|
+
if ('UTF-8' === $normalizedEncoding || false !== @iconv($normalizedEncoding, $normalizedEncoding, ' ')) {
|
|
376
|
+
self::$internalEncoding = $normalizedEncoding;
|
|
358
377
|
|
|
359
378
|
return true;
|
|
360
379
|
}
|
|
361
380
|
|
|
362
|
-
|
|
381
|
+
if (80000 > \PHP_VERSION_ID) {
|
|
382
|
+
return false;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
throw new \ValueError(sprintf('Argument #1 ($encoding) must be a valid encoding, "%s" given', $encoding));
|
|
363
386
|
}
|
|
364
387
|
|
|
365
388
|
public static function mb_language($lang = null)
|
|
@@ -368,20 +391,24 @@ final class Mbstring
|
|
|
368
391
|
return self::$language;
|
|
369
392
|
}
|
|
370
393
|
|
|
371
|
-
switch ($
|
|
394
|
+
switch ($normalizedLang = strtolower($lang)) {
|
|
372
395
|
case 'uni':
|
|
373
396
|
case 'neutral':
|
|
374
|
-
self::$language = $
|
|
397
|
+
self::$language = $normalizedLang;
|
|
375
398
|
|
|
376
399
|
return true;
|
|
377
400
|
}
|
|
378
401
|
|
|
379
|
-
|
|
402
|
+
if (80000 > \PHP_VERSION_ID) {
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
throw new \ValueError(sprintf('Argument #1 ($language) must be a valid language, "%s" given', $lang));
|
|
380
407
|
}
|
|
381
408
|
|
|
382
409
|
public static function mb_list_encodings()
|
|
383
410
|
{
|
|
384
|
-
return
|
|
411
|
+
return ['UTF-8'];
|
|
385
412
|
}
|
|
386
413
|
|
|
387
414
|
public static function mb_encoding_aliases($encoding)
|
|
@@ -389,7 +416,7 @@ final class Mbstring
|
|
|
389
416
|
switch (strtoupper($encoding)) {
|
|
390
417
|
case 'UTF8':
|
|
391
418
|
case 'UTF-8':
|
|
392
|
-
return
|
|
419
|
+
return ['utf8'];
|
|
393
420
|
}
|
|
394
421
|
|
|
395
422
|
return false;
|
|
@@ -404,7 +431,20 @@ final class Mbstring
|
|
|
404
431
|
$encoding = self::$internalEncoding;
|
|
405
432
|
}
|
|
406
433
|
|
|
407
|
-
|
|
434
|
+
if (!\is_array($var)) {
|
|
435
|
+
return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
foreach ($var as $key => $value) {
|
|
439
|
+
if (!self::mb_check_encoding($key, $encoding)) {
|
|
440
|
+
return false;
|
|
441
|
+
}
|
|
442
|
+
if (!self::mb_check_encoding($value, $encoding)) {
|
|
443
|
+
return false;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
return true;
|
|
408
448
|
}
|
|
409
449
|
|
|
410
450
|
public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
|
|
@@ -491,9 +531,13 @@ final class Mbstring
|
|
|
491
531
|
|
|
492
532
|
$needle = (string) $needle;
|
|
493
533
|
if ('' === $needle) {
|
|
494
|
-
|
|
534
|
+
if (80000 > \PHP_VERSION_ID) {
|
|
535
|
+
trigger_error(__METHOD__.': Empty delimiter', \E_USER_WARNING);
|
|
495
536
|
|
|
496
|
-
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
return 0;
|
|
497
541
|
}
|
|
498
542
|
|
|
499
543
|
return iconv_strpos($haystack, $needle, $offset, $encoding);
|
|
@@ -519,23 +563,29 @@ final class Mbstring
|
|
|
519
563
|
}
|
|
520
564
|
}
|
|
521
565
|
|
|
522
|
-
$pos =
|
|
566
|
+
$pos = '' !== $needle || 80000 > \PHP_VERSION_ID
|
|
567
|
+
? iconv_strrpos($haystack, $needle, $encoding)
|
|
568
|
+
: self::mb_strlen($haystack, $encoding);
|
|
523
569
|
|
|
524
570
|
return false !== $pos ? $offset + $pos : false;
|
|
525
571
|
}
|
|
526
572
|
|
|
527
573
|
public static function mb_str_split($string, $split_length = 1, $encoding = null)
|
|
528
574
|
{
|
|
529
|
-
if (null !== $string && !\is_scalar($string) && !(\is_object($string) &&
|
|
530
|
-
trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING);
|
|
575
|
+
if (null !== $string && !\is_scalar($string) && !(\is_object($string) && method_exists($string, '__toString'))) {
|
|
576
|
+
trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', \E_USER_WARNING);
|
|
531
577
|
|
|
532
578
|
return null;
|
|
533
579
|
}
|
|
534
580
|
|
|
535
581
|
if (1 > $split_length = (int) $split_length) {
|
|
536
|
-
|
|
582
|
+
if (80000 > \PHP_VERSION_ID) {
|
|
583
|
+
trigger_error('The length of each segment must be greater than zero', \E_USER_WARNING);
|
|
537
584
|
|
|
538
|
-
|
|
585
|
+
return false;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
throw new \ValueError('Argument #2 ($length) must be greater than 0');
|
|
539
589
|
}
|
|
540
590
|
|
|
541
591
|
if (null === $encoding) {
|
|
@@ -550,10 +600,10 @@ final class Mbstring
|
|
|
550
600
|
}
|
|
551
601
|
$rx .= '.{'.$split_length.'})/us';
|
|
552
602
|
|
|
553
|
-
return preg_split($rx, $string,
|
|
603
|
+
return preg_split($rx, $string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY);
|
|
554
604
|
}
|
|
555
605
|
|
|
556
|
-
$result =
|
|
606
|
+
$result = [];
|
|
557
607
|
$length = mb_strlen($string, $encoding);
|
|
558
608
|
|
|
559
609
|
for ($i = 0; $i < $length; $i += $split_length) {
|
|
@@ -565,21 +615,30 @@ final class Mbstring
|
|
|
565
615
|
|
|
566
616
|
public static function mb_strtolower($s, $encoding = null)
|
|
567
617
|
{
|
|
568
|
-
return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);
|
|
618
|
+
return self::mb_convert_case($s, \MB_CASE_LOWER, $encoding);
|
|
569
619
|
}
|
|
570
620
|
|
|
571
621
|
public static function mb_strtoupper($s, $encoding = null)
|
|
572
622
|
{
|
|
573
|
-
return self::mb_convert_case($s, MB_CASE_UPPER, $encoding);
|
|
623
|
+
return self::mb_convert_case($s, \MB_CASE_UPPER, $encoding);
|
|
574
624
|
}
|
|
575
625
|
|
|
576
626
|
public static function mb_substitute_character($c = null)
|
|
577
627
|
{
|
|
628
|
+
if (null === $c) {
|
|
629
|
+
return 'none';
|
|
630
|
+
}
|
|
578
631
|
if (0 === strcasecmp($c, 'none')) {
|
|
579
632
|
return true;
|
|
580
633
|
}
|
|
634
|
+
if (80000 > \PHP_VERSION_ID) {
|
|
635
|
+
return false;
|
|
636
|
+
}
|
|
637
|
+
if (\is_int($c) || 'long' === $c || 'entity' === $c) {
|
|
638
|
+
return false;
|
|
639
|
+
}
|
|
581
640
|
|
|
582
|
-
|
|
641
|
+
throw new \ValueError('Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint');
|
|
583
642
|
}
|
|
584
643
|
|
|
585
644
|
public static function mb_substr($s, $start, $length = null, $encoding = null)
|
|
@@ -610,8 +669,10 @@ final class Mbstring
|
|
|
610
669
|
|
|
611
670
|
public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
|
|
612
671
|
{
|
|
613
|
-
$haystack = self::
|
|
614
|
-
|
|
672
|
+
[$haystack, $needle] = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], [
|
|
673
|
+
self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding),
|
|
674
|
+
self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding),
|
|
675
|
+
]);
|
|
615
676
|
|
|
616
677
|
return self::mb_strpos($haystack, $needle, $offset, $encoding);
|
|
617
678
|
}
|
|
@@ -646,8 +707,11 @@ final class Mbstring
|
|
|
646
707
|
|
|
647
708
|
public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
|
|
648
709
|
{
|
|
649
|
-
$haystack = self::mb_convert_case($haystack,
|
|
650
|
-
$needle = self::mb_convert_case($needle,
|
|
710
|
+
$haystack = self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding);
|
|
711
|
+
$needle = self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding);
|
|
712
|
+
|
|
713
|
+
$haystack = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $haystack);
|
|
714
|
+
$needle = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $needle);
|
|
651
715
|
|
|
652
716
|
return self::mb_strrpos($haystack, $needle, $offset, $encoding);
|
|
653
717
|
}
|
|
@@ -667,7 +731,7 @@ final class Mbstring
|
|
|
667
731
|
|
|
668
732
|
public static function mb_get_info($type = 'all')
|
|
669
733
|
{
|
|
670
|
-
$info =
|
|
734
|
+
$info = [
|
|
671
735
|
'internal_encoding' => self::$internalEncoding,
|
|
672
736
|
'http_output' => 'pass',
|
|
673
737
|
'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)',
|
|
@@ -682,7 +746,7 @@ final class Mbstring
|
|
|
682
746
|
'detect_order' => self::$encodingList,
|
|
683
747
|
'substitute_character' => 'none',
|
|
684
748
|
'strict_detection' => 'Off',
|
|
685
|
-
|
|
749
|
+
];
|
|
686
750
|
|
|
687
751
|
if ('all' === $type) {
|
|
688
752
|
return $info;
|
|
@@ -770,6 +834,69 @@ final class Mbstring
|
|
|
770
834
|
return $code;
|
|
771
835
|
}
|
|
772
836
|
|
|
837
|
+
public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null): string
|
|
838
|
+
{
|
|
839
|
+
if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) {
|
|
840
|
+
throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH');
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
if (null === $encoding) {
|
|
844
|
+
$encoding = self::mb_internal_encoding();
|
|
845
|
+
} else {
|
|
846
|
+
self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given');
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
if (self::mb_strlen($pad_string, $encoding) <= 0) {
|
|
850
|
+
throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string');
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
$paddingRequired = $length - self::mb_strlen($string, $encoding);
|
|
854
|
+
|
|
855
|
+
if ($paddingRequired < 1) {
|
|
856
|
+
return $string;
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
switch ($pad_type) {
|
|
860
|
+
case \STR_PAD_LEFT:
|
|
861
|
+
return self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding).$string;
|
|
862
|
+
case \STR_PAD_RIGHT:
|
|
863
|
+
return $string.self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding);
|
|
864
|
+
default:
|
|
865
|
+
$leftPaddingLength = floor($paddingRequired / 2);
|
|
866
|
+
$rightPaddingLength = $paddingRequired - $leftPaddingLength;
|
|
867
|
+
|
|
868
|
+
return self::mb_substr(str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding).$string.self::mb_substr(str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding);
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
public static function mb_ucfirst(string $string, ?string $encoding = null): string
|
|
873
|
+
{
|
|
874
|
+
if (null === $encoding) {
|
|
875
|
+
$encoding = self::mb_internal_encoding();
|
|
876
|
+
} else {
|
|
877
|
+
self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
$firstChar = mb_substr($string, 0, 1, $encoding);
|
|
881
|
+
$firstChar = mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding);
|
|
882
|
+
|
|
883
|
+
return $firstChar.mb_substr($string, 1, null, $encoding);
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
public static function mb_lcfirst(string $string, ?string $encoding = null): string
|
|
887
|
+
{
|
|
888
|
+
if (null === $encoding) {
|
|
889
|
+
$encoding = self::mb_internal_encoding();
|
|
890
|
+
} else {
|
|
891
|
+
self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
$firstChar = mb_substr($string, 0, 1, $encoding);
|
|
895
|
+
$firstChar = mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding);
|
|
896
|
+
|
|
897
|
+
return $firstChar.mb_substr($string, 1, null, $encoding);
|
|
898
|
+
}
|
|
899
|
+
|
|
773
900
|
private static function getSubpart($pos, $part, $haystack, $encoding)
|
|
774
901
|
{
|
|
775
902
|
if (false === $pos) {
|
|
@@ -786,7 +913,7 @@ final class Mbstring
|
|
|
786
913
|
{
|
|
787
914
|
$i = 1;
|
|
788
915
|
$entities = '';
|
|
789
|
-
$m = unpack('C*', htmlentities($m[0], ENT_COMPAT, 'UTF-8'));
|
|
916
|
+
$m = unpack('C*', htmlentities($m[0], \ENT_COMPAT, 'UTF-8'));
|
|
790
917
|
|
|
791
918
|
while (isset($m[$i])) {
|
|
792
919
|
if (0x80 > $m[$i]) {
|
|
@@ -809,7 +936,7 @@ final class Mbstring
|
|
|
809
936
|
|
|
810
937
|
private static function title_case(array $s)
|
|
811
938
|
{
|
|
812
|
-
return self::mb_convert_case($s[1], MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], MB_CASE_LOWER, 'UTF-8');
|
|
939
|
+
return self::mb_convert_case($s[1], \MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], \MB_CASE_LOWER, 'UTF-8');
|
|
813
940
|
}
|
|
814
941
|
|
|
815
942
|
private static function getData($file)
|
|
@@ -843,4 +970,76 @@ final class Mbstring
|
|
|
843
970
|
|
|
844
971
|
return $encoding;
|
|
845
972
|
}
|
|
973
|
+
|
|
974
|
+
public static function mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string
|
|
975
|
+
{
|
|
976
|
+
return self::mb_internal_trim('{^[%s]+|[%1$s]+$}Du', $string, $characters, $encoding, __FUNCTION__);
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
public static function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null): string
|
|
980
|
+
{
|
|
981
|
+
return self::mb_internal_trim('{^[%s]+}Du', $string, $characters, $encoding, __FUNCTION__);
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string
|
|
985
|
+
{
|
|
986
|
+
return self::mb_internal_trim('{[%s]+$}Du', $string, $characters, $encoding, __FUNCTION__);
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
private static function mb_internal_trim(string $regex, string $string, ?string $characters, ?string $encoding, string $function): string
|
|
990
|
+
{
|
|
991
|
+
if (null === $encoding) {
|
|
992
|
+
$encoding = self::mb_internal_encoding();
|
|
993
|
+
} else {
|
|
994
|
+
self::assertEncoding($encoding, $function.'(): Argument #3 ($encoding) must be a valid encoding, "%s" given');
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
if ('' === $characters) {
|
|
998
|
+
return null === $encoding ? $string : self::mb_convert_encoding($string, $encoding);
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
if ('UTF-8' === $encoding) {
|
|
1002
|
+
$encoding = null;
|
|
1003
|
+
if (!preg_match('//u', $string)) {
|
|
1004
|
+
$string = @iconv('UTF-8', 'UTF-8//IGNORE', $string);
|
|
1005
|
+
}
|
|
1006
|
+
if (null !== $characters && !preg_match('//u', $characters)) {
|
|
1007
|
+
$characters = @iconv('UTF-8', 'UTF-8//IGNORE', $characters);
|
|
1008
|
+
}
|
|
1009
|
+
} else {
|
|
1010
|
+
$string = iconv($encoding, 'UTF-8//IGNORE', $string);
|
|
1011
|
+
|
|
1012
|
+
if (null !== $characters) {
|
|
1013
|
+
$characters = iconv($encoding, 'UTF-8//IGNORE', $characters);
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
if (null === $characters) {
|
|
1018
|
+
$characters = "\\0 \f\n\r\t\v\u{00A0}\u{1680}\u{2000}\u{2001}\u{2002}\u{2003}\u{2004}\u{2005}\u{2006}\u{2007}\u{2008}\u{2009}\u{200A}\u{2028}\u{2029}\u{202F}\u{205F}\u{3000}\u{0085}\u{180E}";
|
|
1019
|
+
} else {
|
|
1020
|
+
$characters = preg_quote($characters);
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
$string = preg_replace(sprintf($regex, $characters), '', $string);
|
|
1024
|
+
|
|
1025
|
+
if (null === $encoding) {
|
|
1026
|
+
return $string;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
return iconv('UTF-8', $encoding.'//IGNORE', $string);
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
private static function assertEncoding(string $encoding, string $errorFormat): void
|
|
1033
|
+
{
|
|
1034
|
+
try {
|
|
1035
|
+
$validEncoding = @self::mb_check_encoding('', $encoding);
|
|
1036
|
+
} catch (\ValueError $e) {
|
|
1037
|
+
throw new \ValueError(sprintf($errorFormat, $encoding));
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
// BC for PHP 7.3 and lower
|
|
1041
|
+
if (!$validEncoding) {
|
|
1042
|
+
throw new \ValueError(sprintf($errorFormat, $encoding));
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
846
1045
|
}
|
|
@@ -5,7 +5,7 @@ This component provides a partial, native PHP implementation for the
|
|
|
5
5
|
[Mbstring](https://php.net/mbstring) extension.
|
|
6
6
|
|
|
7
7
|
More information can be found in the
|
|
8
|
-
[main Polyfill README](https://github.com/symfony/polyfill/blob/
|
|
8
|
+
[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
|
|
9
9
|
|
|
10
10
|
License
|
|
11
11
|
=======
|