← All changes
|
vendor_prefixed/twig/symfony/polyfill-mbstring/Mbstring.php
+20
-45
4.2.0-beta2
→
4.0.0-dev4
View file →
| @@ -115,9 +115,9 @@ | ||
| 115 | 115 | } |
| 116 | 116 | public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars) |
| 117 | 117 | { |
| 118 | 118 | $ok = \true; |
| 119 | - \array_walk_recursive($vars, static function (&$v) use(&$ok, $toEncoding, $fromEncoding) { | |
| 119 | + \array_walk_recursive($vars, function (&$v) use(&$ok, $toEncoding, $fromEncoding) { | |
| 120 | 120 | if (\false === ($v = self::mb_convert_encoding($v, $toEncoding, $fromEncoding))) { |
| 121 | 121 | $ok = \false; |
| 122 | 122 | } |
| 123 | 123 | }); |
| @@ -163,9 +163,9 @@ | ||
| 163 | 163 | // collector_decode_htmlnumericentity ignores $convmap[$i + 3] |
| 164 | 164 | $convmap[$i] += $convmap[$i + 2]; |
| 165 | 165 | $convmap[$i + 1] += $convmap[$i + 2]; |
| 166 | 166 | } |
| 167 | - $s = \preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))' . (\PHP_VERSION_ID >= 80200 ? '' : '(?!&)') . ';?/', static function (array $m) use($cnt, $convmap) { | |
| 167 | + $s = \preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use($cnt, $convmap) { | |
| 168 | 168 | $c = isset($m[2]) ? (int) \hexdec($m[2]) : $m[1]; |
| 169 | 169 | for ($i = 0; $i < $cnt; $i += 4) { |
| 170 | 170 | if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) { |
| 171 | 171 | return self::mb_chr($c - $convmap[$i + 2]); |
| @@ -663,28 +663,19 @@ | ||
| 663 | 663 | return ($code - 0xc0 << 6) + $s[2] - 0x80; |
| 664 | 664 | } |
| 665 | 665 | return $code; |
| 666 | 666 | } |
| 667 | - /** @return string|false */ | |
| 668 | - public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null) | |
| 667 | + public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null) : string | |
| 669 | 668 | { |
| 670 | 669 | if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], \true)) { |
| 671 | - if (\PHP_VERSION_ID < 80000) { | |
| 672 | - \trigger_error('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH', \E_USER_WARNING); | |
| 673 | - return \false; | |
| 674 | - } | |
| 675 | 670 | throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); |
| 676 | 671 | } |
| 677 | 672 | if (null === $encoding) { |
| 678 | 673 | $encoding = self::mb_internal_encoding(); |
| 679 | - } elseif (!self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given')) { | |
| 680 | - return \false; | |
| 674 | + } else { | |
| 675 | + self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given'); | |
| 681 | 676 | } |
| 682 | 677 | if (self::mb_strlen($pad_string, $encoding) <= 0) { |
| 683 | - if (\PHP_VERSION_ID < 80000) { | |
| 684 | - \trigger_error('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string', \E_USER_WARNING); | |
| 685 | - return \false; | |
| 686 | - } | |
| 687 | 678 | throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string'); |
| 688 | 679 | } |
| 689 | 680 | $paddingRequired = $length - self::mb_strlen($string, $encoding); |
| 690 | 681 | if ($paddingRequired < 1) { |
| @@ -700,27 +691,25 @@ | ||
| 700 | 691 | $rightPaddingLength = $paddingRequired - $leftPaddingLength; |
| 701 | 692 | return self::mb_substr(\str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding) . $string . self::mb_substr(\str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding); |
| 702 | 693 | } |
| 703 | 694 | } |
| 704 | - /** @return string|false */ | |
| 705 | - public static function mb_ucfirst(string $string, ?string $encoding = null) | |
| 695 | + public static function mb_ucfirst(string $string, ?string $encoding = null) : string | |
| 706 | 696 | { |
| 707 | 697 | if (null === $encoding) { |
| 708 | 698 | $encoding = self::mb_internal_encoding(); |
| 709 | - } elseif (!self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given')) { | |
| 710 | - return \false; | |
| 699 | + } else { | |
| 700 | + self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given'); | |
| 711 | 701 | } |
| 712 | 702 | $firstChar = \mb_substr($string, 0, 1, $encoding); |
| 713 | 703 | $firstChar = \mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding); |
| 714 | 704 | return $firstChar . \mb_substr($string, 1, null, $encoding); |
| 715 | 705 | } |
| 716 | - /** @return string|false */ | |
| 717 | - public static function mb_lcfirst(string $string, ?string $encoding = null) | |
| 706 | + public static function mb_lcfirst(string $string, ?string $encoding = null) : string | |
| 718 | 707 | { |
| 719 | 708 | if (null === $encoding) { |
| 720 | 709 | $encoding = self::mb_internal_encoding(); |
| 721 | - } elseif (!self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given')) { | |
| 722 | - return \false; | |
| 710 | + } else { | |
| 711 | + self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given'); | |
| 723 | 712 | } |
| 724 | 713 | $firstChar = \mb_substr($string, 0, 1, $encoding); |
| 725 | 714 | $firstChar = \mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding); |
| 726 | 715 | return $firstChar . \mb_substr($string, 1, null, $encoding); |
| @@ -781,38 +770,28 @@ | ||
| 781 | 770 | } |
| 782 | 771 | if ('UTF8' === $encoding) { |
| 783 | 772 | return 'UTF-8'; |
| 784 | 773 | } |
| 785 | - if ('UTF-32' === $encoding) { | |
| 786 | - return 'UTF-32BE'; | |
| 787 | - } | |
| 788 | - if ('UTF-16' === $encoding) { | |
| 789 | - return 'UTF-16BE'; | |
| 790 | - } | |
| 791 | 774 | return $encoding; |
| 792 | 775 | } |
| 793 | - /** @return string|false */ | |
| 794 | - public static function mb_trim(string $string, ?string $characters = null, ?string $encoding = null) | |
| 776 | + public static function mb_trim(string $string, ?string $characters = null, ?string $encoding = null) : string | |
| 795 | 777 | { |
| 796 | 778 | return self::mb_internal_trim('{^[%s]+|[%1$s]+$}Du', $string, $characters, $encoding, __FUNCTION__); |
| 797 | 779 | } |
| 798 | - /** @return string|false */ | |
| 799 | - public static function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null) | |
| 780 | + public static function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null) : string | |
| 800 | 781 | { |
| 801 | 782 | return self::mb_internal_trim('{^[%s]+}Du', $string, $characters, $encoding, __FUNCTION__); |
| 802 | 783 | } |
| 803 | - /** @return string|false */ | |
| 804 | - public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null) | |
| 784 | + public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null) : string | |
| 805 | 785 | { |
| 806 | 786 | return self::mb_internal_trim('{[%s]+$}Du', $string, $characters, $encoding, __FUNCTION__); |
| 807 | 787 | } |
| 808 | - /** @return string|false */ | |
| 809 | - private static function mb_internal_trim(string $regex, string $string, ?string $characters, ?string $encoding, string $function) | |
| 788 | + private static function mb_internal_trim(string $regex, string $string, ?string $characters, ?string $encoding, string $function) : string | |
| 810 | 789 | { |
| 811 | 790 | if (null === $encoding) { |
| 812 | 791 | $encoding = self::mb_internal_encoding(); |
| 813 | - } elseif (!self::assertEncoding($encoding, $function . '(): Argument #3 ($encoding) must be a valid encoding, "%s" given')) { | |
| 814 | - return \false; | |
| 792 | + } else { | |
| 793 | + self::assertEncoding($encoding, $function . '(): Argument #3 ($encoding) must be a valid encoding, "%s" given'); | |
| 815 | 794 | } |
| 816 | 795 | if ('' === $characters) { |
| 817 | 796 | return null === $encoding ? $string : self::mb_convert_encoding($string, $encoding); |
| 818 | 797 | } |
| @@ -840,9 +819,9 @@ | ||
| 840 | 819 | return $string; |
| 841 | 820 | } |
| 842 | 821 | return \iconv('UTF-8', $encoding . '//IGNORE', $string); |
| 843 | 822 | } |
| 844 | - private static function assertEncoding(string $encoding, string $errorFormat) : bool | |
| 823 | + private static function assertEncoding(string $encoding, string $errorFormat) : void | |
| 845 | 824 | { |
| 846 | 825 | try { |
| 847 | 826 | $validEncoding = @self::mb_check_encoding('', $encoding); |
| 848 | 827 | } catch (\ValueError $e) { |
| @@ -847,14 +826,10 @@ | ||
| 847 | 826 | $validEncoding = @self::mb_check_encoding('', $encoding); |
| 848 | 827 | } catch (\ValueError $e) { |
| 849 | 828 | throw new \ValueError(\sprintf($errorFormat, $encoding)); |
| 850 | 829 | } |
| 830 | + // BC for PHP 7.3 and lower | |
| 851 | 831 | if (!$validEncoding) { |
| 852 | - if (80000 > \PHP_VERSION_ID) { | |
| 853 | - \trigger_error(\sprintf($errorFormat, $encoding), \E_USER_WARNING); | |
| 854 | - } else { | |
| 855 | - throw new \ValueError(\sprintf($errorFormat, $encoding)); | |
| 856 | - } | |
| 832 | + throw new \ValueError(\sprintf($errorFormat, $encoding)); | |
| 857 | 833 | } |
| 858 | - return $validEncoding; | |
| 859 | 834 | } |
| 860 | 835 | } |