mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 10:41:40 +09:00
Fix #1553 downgrade symfony packages to 1.19, for compatibility with PHP 7.0
This commit is contained in:
parent
f4ad0dbb48
commit
790434ad32
43 changed files with 1465 additions and 965 deletions
|
|
@ -22,6 +22,7 @@
|
|||
"abraham/twitteroauth": "2.*",
|
||||
"coolsms/php-sdk": "2.0.*",
|
||||
"defuse/php-encryption": "1.2.1",
|
||||
"doctrine/lexer": "1.0.*",
|
||||
"egulias/email-validator": "2.1.*",
|
||||
"ezyang/htmlpurifier": "4.13.*",
|
||||
"guzzlehttp/guzzle": "6.5.*",
|
||||
|
|
@ -36,6 +37,11 @@
|
|||
"rmccue/requests": "1.7.*",
|
||||
"scssphp/scssphp": "1.4.*",
|
||||
"swiftmailer/swiftmailer": "6.2.*",
|
||||
"symfony/polyfill-iconv": "1.19.*",
|
||||
"symfony/polyfill-intl-idn": "1.19.*",
|
||||
"symfony/polyfill-intl-normalizer": "1.19.*",
|
||||
"symfony/polyfill-mbstring": "1.19.*",
|
||||
"symfony/polyfill-php72": "1.19.*",
|
||||
"true/punycode": "2.*"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
195
composer.lock
generated
195
composer.lock
generated
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "4cbed25028cdbb3f6769b65f0b862329",
|
||||
"content-hash": "59d7a35952cd705e07d7b8e3ca93983f",
|
||||
"packages": [
|
||||
{
|
||||
"name": "abraham/twitteroauth",
|
||||
|
|
@ -251,30 +251,28 @@
|
|||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "1.2.1",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
|
||||
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan": "^0.11.8",
|
||||
"phpunit/phpunit": "^8.2"
|
||||
"phpunit/phpunit": "^4.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -287,14 +285,14 @@
|
|||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
|
|
@ -311,23 +309,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/lexer/issues",
|
||||
"source": "https://github.com/doctrine/lexer/tree/1.2.1"
|
||||
"source": "https://github.com/doctrine/lexer/tree/1.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://www.patreon.com/phpdoctrine",
|
||||
"type": "patreon"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-05-25T17:44:05+00:00"
|
||||
"time": "2019-06-08T11:03:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "egulias/email-validator",
|
||||
|
|
@ -1415,20 +1399,20 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-iconv",
|
||||
"version": "v1.22.0",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-iconv.git",
|
||||
"reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6"
|
||||
"reference": "085241787d52fa6f7a774fd034135fef0cfd5496"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
|
||||
"reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/085241787d52fa6f7a774fd034135fef0cfd5496",
|
||||
"reference": "085241787d52fa6f7a774fd034135fef0cfd5496",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "For best performance"
|
||||
|
|
@ -1436,7 +1420,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1475,7 +1459,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1491,25 +1475,26 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
"time": "2020-10-23T09:01:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.22.0",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44"
|
||||
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
|
||||
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
||||
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"php": ">=5.3.3",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php70": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
|
|
@ -1518,7 +1503,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1562,7 +1547,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1578,24 +1563,24 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
"time": "2020-10-21T09:57:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.22.0",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "6e971c891537eb617a00bb07a43d182a6915faba"
|
||||
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba",
|
||||
"reference": "6e971c891537eb617a00bb07a43d182a6915faba",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
||||
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
|
|
@ -1603,7 +1588,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1646,7 +1631,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1662,24 +1647,24 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T17:09:11+00:00"
|
||||
"time": "2020-10-23T09:01:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.22.0",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13"
|
||||
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
|
||||
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce",
|
||||
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
|
|
@ -1687,7 +1672,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1726,7 +1711,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1742,29 +1727,97 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
"time": "2020-10-23T09:01:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.22.0",
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.20.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
|
||||
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"type": "metapackage",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.20-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-10-23T14:02:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "beecef6b463b06954638f02378f52496cb84bacc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
|
||||
"reference": "beecef6b463b06954638f02378f52496cb84bacc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1802,7 +1855,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1818,7 +1871,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
"time": "2020-10-23T09:01:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "true/punycode",
|
||||
|
|
|
|||
49
vendor/composer/InstalledVersions.php
vendored
49
vendor/composer/InstalledVersions.php
vendored
|
|
@ -29,7 +29,7 @@ private static $installed = array (
|
|||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '36d977572f95eada91aa966aea2d908491f1b39e',
|
||||
'reference' => 'f4ad0dbb480ca125af4020782f9895b65e545cfb',
|
||||
'name' => 'rhymix/rhymix',
|
||||
),
|
||||
'versions' =>
|
||||
|
|
@ -72,12 +72,12 @@ private static $installed = array (
|
|||
),
|
||||
'doctrine/lexer' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.1',
|
||||
'version' => '1.2.1.0',
|
||||
'pretty_version' => '1.0.2',
|
||||
'version' => '1.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'e864bbf5904cb8f5bb334f99209b48018522f042',
|
||||
'reference' => '1febd6c3ef84253d7c815bed85fc622ad207a9f8',
|
||||
),
|
||||
'egulias/email-validator' =>
|
||||
array (
|
||||
|
|
@ -228,7 +228,7 @@ private static $installed = array (
|
|||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '36d977572f95eada91aa966aea2d908491f1b39e',
|
||||
'reference' => 'f4ad0dbb480ca125af4020782f9895b65e545cfb',
|
||||
),
|
||||
'rmccue/requests' =>
|
||||
array (
|
||||
|
|
@ -259,48 +259,57 @@ private static $installed = array (
|
|||
),
|
||||
'symfony/polyfill-iconv' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6',
|
||||
'reference' => '085241787d52fa6f7a774fd034135fef0cfd5496',
|
||||
),
|
||||
'symfony/polyfill-intl-idn' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44',
|
||||
'reference' => '4ad5115c0f5d5172a9fe8147675ec6de266d8826',
|
||||
),
|
||||
'symfony/polyfill-intl-normalizer' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6e971c891537eb617a00bb07a43d182a6915faba',
|
||||
'reference' => '8db0ae7936b42feb370840cf24de1a144fb0ef27',
|
||||
),
|
||||
'symfony/polyfill-mbstring' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'f377a3dd1fde44d37b9831d68dc8dea3ffd28e13',
|
||||
'reference' => 'b5f7b932ee6fa802fc792eabd77c4c88084517ce',
|
||||
),
|
||||
'symfony/polyfill-php70' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.20.0',
|
||||
'version' => '1.20.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5f03a781d984aae42cebd18e7912fa80f02ee644',
|
||||
),
|
||||
'symfony/polyfill-php72' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9',
|
||||
'reference' => 'beecef6b463b06954638f02378f52496cb84bacc',
|
||||
),
|
||||
'true/punycode' =>
|
||||
array (
|
||||
|
|
|
|||
2
vendor/composer/autoload_files.php
vendored
2
vendor/composer/autoload_files.php
vendored
|
|
@ -6,8 +6,8 @@ $vendorDir = dirname(dirname(__FILE__));
|
|||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
|
|
|
|||
2
vendor/composer/autoload_static.php
vendored
2
vendor/composer/autoload_static.php
vendored
|
|
@ -7,8 +7,8 @@ namespace Composer\Autoload;
|
|||
class ComposerStaticInit1e37ff09eb6590c7436f139ffd9070de
|
||||
{
|
||||
public static $files = array (
|
||||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
|
|
|
|||
207
vendor/composer/installed.json
vendored
207
vendor/composer/installed.json
vendored
|
|
@ -249,32 +249,30 @@
|
|||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "1.2.1",
|
||||
"version_normalized": "1.2.1.0",
|
||||
"version": "1.0.2",
|
||||
"version_normalized": "1.0.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
|
||||
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan": "^0.11.8",
|
||||
"phpunit/phpunit": "^8.2"
|
||||
"phpunit/phpunit": "^4.5"
|
||||
},
|
||||
"time": "2020-05-25T17:44:05+00:00",
|
||||
"time": "2019-06-08T11:03:04+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
|
|
@ -288,14 +286,14 @@
|
|||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
|
|
@ -312,22 +310,8 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/lexer/issues",
|
||||
"source": "https://github.com/doctrine/lexer/tree/1.2.1"
|
||||
"source": "https://github.com/doctrine/lexer/tree/1.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://www.patreon.com/phpdoctrine",
|
||||
"type": "patreon"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"install-path": "../doctrine/lexer"
|
||||
},
|
||||
{
|
||||
|
|
@ -1446,30 +1430,30 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-iconv",
|
||||
"version": "v1.22.0",
|
||||
"version_normalized": "1.22.0.0",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-iconv.git",
|
||||
"reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6"
|
||||
"reference": "085241787d52fa6f7a774fd034135fef0cfd5496"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
|
||||
"reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/085241787d52fa6f7a774fd034135fef0cfd5496",
|
||||
"reference": "085241787d52fa6f7a774fd034135fef0cfd5496",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "For best performance"
|
||||
},
|
||||
"time": "2021-01-07T16:49:33+00:00",
|
||||
"time": "2020-10-23T09:01:57+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1509,7 +1493,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1529,32 +1513,33 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.22.0",
|
||||
"version_normalized": "1.22.0.0",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44"
|
||||
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
|
||||
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
||||
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"php": ">=5.3.3",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php70": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"time": "2021-01-07T16:49:33+00:00",
|
||||
"time": "2020-10-21T09:57:48+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1599,7 +1584,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1619,30 +1604,30 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.22.0",
|
||||
"version_normalized": "1.22.0.0",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "6e971c891537eb617a00bb07a43d182a6915faba"
|
||||
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba",
|
||||
"reference": "6e971c891537eb617a00bb07a43d182a6915faba",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
||||
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"time": "2021-01-07T17:09:11+00:00",
|
||||
"time": "2020-10-23T09:01:57+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1686,7 +1671,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1706,30 +1691,30 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.22.0",
|
||||
"version_normalized": "1.22.0.0",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13"
|
||||
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
|
||||
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce",
|
||||
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"time": "2021-01-07T16:49:33+00:00",
|
||||
"time": "2020-10-23T09:01:57+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1769,7 +1754,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1788,28 +1773,98 @@
|
|||
"install-path": "../symfony/polyfill-mbstring"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.22.0",
|
||||
"version_normalized": "1.22.0.0",
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.20.0",
|
||||
"version_normalized": "1.20.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
|
||||
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"time": "2021-01-07T16:49:33+00:00",
|
||||
"time": "2020-10-23T14:02:19+00:00",
|
||||
"type": "metapackage",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.20-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"install-path": null
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.19.0",
|
||||
"version_normalized": "1.19.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "beecef6b463b06954638f02378f52496cb84bacc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
|
||||
"reference": "beecef6b463b06954638f02378f52496cb84bacc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"time": "2020-10-23T09:01:57+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
@ -1848,7 +1903,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0"
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.19.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
|
|||
49
vendor/composer/installed.php
vendored
49
vendor/composer/installed.php
vendored
|
|
@ -6,7 +6,7 @@
|
|||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '36d977572f95eada91aa966aea2d908491f1b39e',
|
||||
'reference' => 'f4ad0dbb480ca125af4020782f9895b65e545cfb',
|
||||
'name' => 'rhymix/rhymix',
|
||||
),
|
||||
'versions' =>
|
||||
|
|
@ -49,12 +49,12 @@
|
|||
),
|
||||
'doctrine/lexer' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.1',
|
||||
'version' => '1.2.1.0',
|
||||
'pretty_version' => '1.0.2',
|
||||
'version' => '1.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'e864bbf5904cb8f5bb334f99209b48018522f042',
|
||||
'reference' => '1febd6c3ef84253d7c815bed85fc622ad207a9f8',
|
||||
),
|
||||
'egulias/email-validator' =>
|
||||
array (
|
||||
|
|
@ -205,7 +205,7 @@
|
|||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '36d977572f95eada91aa966aea2d908491f1b39e',
|
||||
'reference' => 'f4ad0dbb480ca125af4020782f9895b65e545cfb',
|
||||
),
|
||||
'rmccue/requests' =>
|
||||
array (
|
||||
|
|
@ -236,48 +236,57 @@
|
|||
),
|
||||
'symfony/polyfill-iconv' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6',
|
||||
'reference' => '085241787d52fa6f7a774fd034135fef0cfd5496',
|
||||
),
|
||||
'symfony/polyfill-intl-idn' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44',
|
||||
'reference' => '4ad5115c0f5d5172a9fe8147675ec6de266d8826',
|
||||
),
|
||||
'symfony/polyfill-intl-normalizer' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6e971c891537eb617a00bb07a43d182a6915faba',
|
||||
'reference' => '8db0ae7936b42feb370840cf24de1a144fb0ef27',
|
||||
),
|
||||
'symfony/polyfill-mbstring' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'f377a3dd1fde44d37b9831d68dc8dea3ffd28e13',
|
||||
'reference' => 'b5f7b932ee6fa802fc792eabd77c4c88084517ce',
|
||||
),
|
||||
'symfony/polyfill-php70' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.20.0',
|
||||
'version' => '1.20.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5f03a781d984aae42cebd18e7912fa80f02ee644',
|
||||
),
|
||||
'symfony/polyfill-php72' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.0',
|
||||
'version' => '1.22.0.0',
|
||||
'pretty_version' => 'v1.19.0',
|
||||
'version' => '1.19.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9',
|
||||
'reference' => 'beecef6b463b06954638f02378f52496cb84bacc',
|
||||
),
|
||||
'true/punycode' =>
|
||||
array (
|
||||
|
|
|
|||
17
vendor/doctrine/lexer/.doctrine-project.json
vendored
Normal file
17
vendor/doctrine/lexer/.doctrine-project.json
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"active": true,
|
||||
"name": "Lexer",
|
||||
"slug": "lexer",
|
||||
"docsSlug": "doctrine-lexer",
|
||||
"versions": [
|
||||
{
|
||||
"name": "master",
|
||||
"branchName": "master",
|
||||
"slug": "latest",
|
||||
"aliases": [
|
||||
"current",
|
||||
"stable"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
3
vendor/doctrine/lexer/.github/FUNDING.yml
vendored
Normal file
3
vendor/doctrine/lexer/.github/FUNDING.yml
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
patreon: phpdoctrine
|
||||
tidelift: packagist/doctrine%2Flexer
|
||||
custom: https://www.doctrine-project.org/sponsorship.html
|
||||
2
vendor/doctrine/lexer/.gitignore
vendored
Normal file
2
vendor/doctrine/lexer/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
vendor
|
||||
composer.lock
|
||||
2
vendor/doctrine/lexer/README.md
vendored
2
vendor/doctrine/lexer/README.md
vendored
|
|
@ -1,7 +1,5 @@
|
|||
# Doctrine Lexer
|
||||
|
||||
Build Status: [](https://travis-ci.org/doctrine/lexer)
|
||||
|
||||
Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.
|
||||
|
||||
This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL).
|
||||
|
|
|
|||
13
vendor/doctrine/lexer/composer.json
vendored
13
vendor/doctrine/lexer/composer.json
vendored
|
|
@ -17,12 +17,10 @@
|
|||
{"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan": "^0.11.8",
|
||||
"phpunit/phpunit": "^8.2"
|
||||
"phpunit/phpunit": "^4.5"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" }
|
||||
|
|
@ -32,10 +30,7 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
294
vendor/doctrine/lexer/docs/en/dql-parser.rst
vendored
Normal file
294
vendor/doctrine/lexer/docs/en/dql-parser.rst
vendored
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
DQL Lexer
|
||||
=========
|
||||
|
||||
Here is a more complicated example from the Doctrine ORM project.
|
||||
The ``Doctrine\ORM\Query\Lexer`` implementation for DQL looks something
|
||||
like the following:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
use Doctrine\Common\Lexer\AbstractLexer;
|
||||
|
||||
class Lexer extends AbstractLexer
|
||||
{
|
||||
// All tokens that are not valid identifiers must be < 100
|
||||
public const T_NONE = 1;
|
||||
public const T_INTEGER = 2;
|
||||
public const T_STRING = 3;
|
||||
public const T_INPUT_PARAMETER = 4;
|
||||
public const T_FLOAT = 5;
|
||||
public const T_CLOSE_PARENTHESIS = 6;
|
||||
public const T_OPEN_PARENTHESIS = 7;
|
||||
public const T_COMMA = 8;
|
||||
public const T_DIVIDE = 9;
|
||||
public const T_DOT = 10;
|
||||
public const T_EQUALS = 11;
|
||||
public const T_GREATER_THAN = 12;
|
||||
public const T_LOWER_THAN = 13;
|
||||
public const T_MINUS = 14;
|
||||
public const T_MULTIPLY = 15;
|
||||
public const T_NEGATE = 16;
|
||||
public const T_PLUS = 17;
|
||||
public const T_OPEN_CURLY_BRACE = 18;
|
||||
public const T_CLOSE_CURLY_BRACE = 19;
|
||||
|
||||
// All tokens that are identifiers or keywords that could be considered as identifiers should be >= 100
|
||||
public const T_ALIASED_NAME = 100;
|
||||
public const T_FULLY_QUALIFIED_NAME = 101;
|
||||
public const T_IDENTIFIER = 102;
|
||||
|
||||
// All keyword tokens should be >= 200
|
||||
public const T_ALL = 200;
|
||||
public const T_AND = 201;
|
||||
public const T_ANY = 202;
|
||||
public const T_AS = 203;
|
||||
public const T_ASC = 204;
|
||||
public const T_AVG = 205;
|
||||
public const T_BETWEEN = 206;
|
||||
public const T_BOTH = 207;
|
||||
public const T_BY = 208;
|
||||
public const T_CASE = 209;
|
||||
public const T_COALESCE = 210;
|
||||
public const T_COUNT = 211;
|
||||
public const T_DELETE = 212;
|
||||
public const T_DESC = 213;
|
||||
public const T_DISTINCT = 214;
|
||||
public const T_ELSE = 215;
|
||||
public const T_EMPTY = 216;
|
||||
public const T_END = 217;
|
||||
public const T_ESCAPE = 218;
|
||||
public const T_EXISTS = 219;
|
||||
public const T_FALSE = 220;
|
||||
public const T_FROM = 221;
|
||||
public const T_GROUP = 222;
|
||||
public const T_HAVING = 223;
|
||||
public const T_HIDDEN = 224;
|
||||
public const T_IN = 225;
|
||||
public const T_INDEX = 226;
|
||||
public const T_INNER = 227;
|
||||
public const T_INSTANCE = 228;
|
||||
public const T_IS = 229;
|
||||
public const T_JOIN = 230;
|
||||
public const T_LEADING = 231;
|
||||
public const T_LEFT = 232;
|
||||
public const T_LIKE = 233;
|
||||
public const T_MAX = 234;
|
||||
public const T_MEMBER = 235;
|
||||
public const T_MIN = 236;
|
||||
public const T_NEW = 237;
|
||||
public const T_NOT = 238;
|
||||
public const T_NULL = 239;
|
||||
public const T_NULLIF = 240;
|
||||
public const T_OF = 241;
|
||||
public const T_OR = 242;
|
||||
public const T_ORDER = 243;
|
||||
public const T_OUTER = 244;
|
||||
public const T_PARTIAL = 245;
|
||||
public const T_SELECT = 246;
|
||||
public const T_SET = 247;
|
||||
public const T_SOME = 248;
|
||||
public const T_SUM = 249;
|
||||
public const T_THEN = 250;
|
||||
public const T_TRAILING = 251;
|
||||
public const T_TRUE = 252;
|
||||
public const T_UPDATE = 253;
|
||||
public const T_WHEN = 254;
|
||||
public const T_WHERE = 255;
|
||||
public const T_WITH = 256;
|
||||
|
||||
/**
|
||||
* Creates a new query scanner object.
|
||||
*
|
||||
* @param string $input A query string.
|
||||
*/
|
||||
public function __construct($input)
|
||||
{
|
||||
$this->setInput($input);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getCatchablePatterns()
|
||||
{
|
||||
return [
|
||||
'[a-z_][a-z0-9_]*\:[a-z_][a-z0-9_]*(?:\\\[a-z_][a-z0-9_]*)*', // aliased name
|
||||
'[a-z_\\\][a-z0-9_]*(?:\\\[a-z_][a-z0-9_]*)*', // identifier or qualified name
|
||||
'(?:[0-9]+(?:[\.][0-9]+)*)(?:e[+-]?[0-9]+)?', // numbers
|
||||
"'(?:[^']|'')*'", // quoted strings
|
||||
'\?[0-9]*|:[a-z_][a-z0-9_]*', // parameters
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getNonCatchablePatterns()
|
||||
{
|
||||
return ['\s+', '(.)'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getType(&$value)
|
||||
{
|
||||
$type = self::T_NONE;
|
||||
|
||||
switch (true) {
|
||||
// Recognize numeric values
|
||||
case (is_numeric($value)):
|
||||
if (strpos($value, '.') !== false || stripos($value, 'e') !== false) {
|
||||
return self::T_FLOAT;
|
||||
}
|
||||
|
||||
return self::T_INTEGER;
|
||||
|
||||
// Recognize quoted strings
|
||||
case ($value[0] === "'"):
|
||||
$value = str_replace("''", "'", substr($value, 1, strlen($value) - 2));
|
||||
|
||||
return self::T_STRING;
|
||||
|
||||
// Recognize identifiers, aliased or qualified names
|
||||
case (ctype_alpha($value[0]) || $value[0] === '_' || $value[0] === '\\'):
|
||||
$name = 'Doctrine\ORM\Query\Lexer::T_' . strtoupper($value);
|
||||
|
||||
if (defined($name)) {
|
||||
$type = constant($name);
|
||||
|
||||
if ($type > 100) {
|
||||
return $type;
|
||||
}
|
||||
}
|
||||
|
||||
if (strpos($value, ':') !== false) {
|
||||
return self::T_ALIASED_NAME;
|
||||
}
|
||||
|
||||
if (strpos($value, '\\') !== false) {
|
||||
return self::T_FULLY_QUALIFIED_NAME;
|
||||
}
|
||||
|
||||
return self::T_IDENTIFIER;
|
||||
|
||||
// Recognize input parameters
|
||||
case ($value[0] === '?' || $value[0] === ':'):
|
||||
return self::T_INPUT_PARAMETER;
|
||||
|
||||
// Recognize symbols
|
||||
case ($value === '.'):
|
||||
return self::T_DOT;
|
||||
case ($value === ','):
|
||||
return self::T_COMMA;
|
||||
case ($value === '('):
|
||||
return self::T_OPEN_PARENTHESIS;
|
||||
case ($value === ')'):
|
||||
return self::T_CLOSE_PARENTHESIS;
|
||||
case ($value === '='):
|
||||
return self::T_EQUALS;
|
||||
case ($value === '>'):
|
||||
return self::T_GREATER_THAN;
|
||||
case ($value === '<'):
|
||||
return self::T_LOWER_THAN;
|
||||
case ($value === '+'):
|
||||
return self::T_PLUS;
|
||||
case ($value === '-'):
|
||||
return self::T_MINUS;
|
||||
case ($value === '*'):
|
||||
return self::T_MULTIPLY;
|
||||
case ($value === '/'):
|
||||
return self::T_DIVIDE;
|
||||
case ($value === '!'):
|
||||
return self::T_NEGATE;
|
||||
case ($value === '{'):
|
||||
return self::T_OPEN_CURLY_BRACE;
|
||||
case ($value === '}'):
|
||||
return self::T_CLOSE_CURLY_BRACE;
|
||||
|
||||
// Default
|
||||
default:
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
return $type;
|
||||
}
|
||||
}
|
||||
|
||||
This is roughly what the DQL Parser looks like that uses the above
|
||||
Lexer implementation:
|
||||
|
||||
.. note::
|
||||
|
||||
You can see the full implementation `here <https://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/Query/Parser.php>`_.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
class Parser
|
||||
{
|
||||
private $lexer;
|
||||
|
||||
public function __construct($dql)
|
||||
{
|
||||
$this->lexer = new Lexer();
|
||||
$this->lexer->setInput($dql);
|
||||
}
|
||||
|
||||
// ...
|
||||
|
||||
public function getAST()
|
||||
{
|
||||
// Parse & build AST
|
||||
$AST = $this->QueryLanguage();
|
||||
|
||||
// ...
|
||||
|
||||
return $AST;
|
||||
}
|
||||
|
||||
public function QueryLanguage()
|
||||
{
|
||||
$this->lexer->moveNext();
|
||||
|
||||
switch ($this->lexer->lookahead['type']) {
|
||||
case Lexer::T_SELECT:
|
||||
$statement = $this->SelectStatement();
|
||||
break;
|
||||
case Lexer::T_UPDATE:
|
||||
$statement = $this->UpdateStatement();
|
||||
break;
|
||||
case Lexer::T_DELETE:
|
||||
$statement = $this->DeleteStatement();
|
||||
break;
|
||||
default:
|
||||
$this->syntaxError('SELECT, UPDATE or DELETE');
|
||||
break;
|
||||
}
|
||||
|
||||
// Check for end of string
|
||||
if ($this->lexer->lookahead !== null) {
|
||||
$this->syntaxError('end of string');
|
||||
}
|
||||
|
||||
return $statement;
|
||||
}
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
Now the AST is used to transform the DQL query in to portable SQL for whatever relational
|
||||
database you are using!
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$parser = new Parser('SELECT u FROM User u');
|
||||
$AST = $parser->getAST(); // returns \Doctrine\ORM\Query\AST\SelectStatement
|
||||
|
||||
What is an AST?
|
||||
===============
|
||||
|
||||
AST stands for `Abstract syntax tree <http://en.wikipedia.org/wiki/Abstract_syntax_tree>`_.
|
||||
In computer science, an abstract syntax tree (AST), or just syntax tree, is a
|
||||
tree representation of the abstract syntactic structure of source code written
|
||||
in a programming language. Each node of the tree denotes a construct occurring in
|
||||
the source code.
|
||||
53
vendor/doctrine/lexer/docs/en/index.rst
vendored
Normal file
53
vendor/doctrine/lexer/docs/en/index.rst
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
Introduction
|
||||
============
|
||||
|
||||
Doctrine Lexer is a library that can be used in Top-Down, Recursive
|
||||
Descent Parsers. This lexer is used in Doctrine Annotations and in
|
||||
Doctrine ORM (DQL).
|
||||
|
||||
To write your own parser you just need to extend ``Doctrine\Common\Lexer\AbstractLexer``
|
||||
and implement the following three abstract methods.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* Lexical catchable patterns.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
abstract protected function getCatchablePatterns();
|
||||
|
||||
/**
|
||||
* Lexical non-catchable patterns.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
abstract protected function getNonCatchablePatterns();
|
||||
|
||||
/**
|
||||
* Retrieve token type. Also processes the token value if necessary.
|
||||
*
|
||||
* @param string $value
|
||||
* @return integer
|
||||
*/
|
||||
abstract protected function getType(&$value);
|
||||
|
||||
These methods define the `lexical <http://en.wikipedia.org/wiki/Lexical_analysis>`_
|
||||
catchable and non-catchable patterns and a method for returning the
|
||||
type of a token and filtering the value if necessary.
|
||||
|
||||
The Lexer is responsible for giving you an API to walk across a
|
||||
string one character at a time and analyze the type of each character, value and position of
|
||||
each token in the string. The low level API of the lexer is pretty simple:
|
||||
|
||||
- ``setInput($input)`` - Sets the input data to be tokenized. The Lexer is immediately reset and the new input tokenized.
|
||||
- ``reset()`` - Resets the lexer.
|
||||
- ``resetPeek()`` - Resets the peek pointer to 0.
|
||||
- ``resetPosition($position = 0)`` - Resets the lexer position on the input to the given position.
|
||||
- ``isNextToken($token)`` - Checks whether a given token matches the current lookahead.
|
||||
- ``isNextTokenAny(array $tokens)`` - Checks whether any of the given tokens matches the current lookahead.
|
||||
- ``moveNext()`` - Moves to the next token in the input string.
|
||||
- ``skipUntil($type)`` - Tells the lexer to skip input tokens until it sees a token with the given value.
|
||||
- ``isA($value, $token)`` - Checks if given value is identical to the given token.
|
||||
- ``peek()`` - Moves the lookahead token forward.
|
||||
- ``glimpse()`` - Peeks at the next token, returns it and immediately resets the peek.
|
||||
6
vendor/doctrine/lexer/docs/en/sidebar.rst
vendored
Normal file
6
vendor/doctrine/lexer/docs/en/sidebar.rst
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
.. toctree::
|
||||
:depth: 3
|
||||
|
||||
index
|
||||
simple-parser-example
|
||||
dql-parser
|
||||
102
vendor/doctrine/lexer/docs/en/simple-parser-example.rst
vendored
Normal file
102
vendor/doctrine/lexer/docs/en/simple-parser-example.rst
vendored
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
Simple Parser Example
|
||||
=====================
|
||||
|
||||
Extend the ``Doctrine\Common\Lexer\AbstractLexer`` class and implement
|
||||
the ``getCatchablePatterns``, ``getNonCatchablePatterns``, and ``getType``
|
||||
methods. Here is a very simple example lexer implementation named ``CharacterTypeLexer``.
|
||||
It tokenizes a string to ``T_UPPER``, ``T_LOWER`` and``T_NUMBER`` tokens:
|
||||
|
||||
.. code-block:: php
|
||||
<?php
|
||||
|
||||
use Doctrine\Common\Lexer\AbstractLexer;
|
||||
|
||||
class CharacterTypeLexer extends AbstractLexer
|
||||
{
|
||||
const T_UPPER = 1;
|
||||
const T_LOWER = 2;
|
||||
const T_NUMBER = 3;
|
||||
|
||||
protected function getCatchablePatterns()
|
||||
{
|
||||
return array(
|
||||
'[a-bA-Z0-9]',
|
||||
);
|
||||
}
|
||||
|
||||
protected function getNonCatchablePatterns()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
protected function getType(&$value)
|
||||
{
|
||||
if (is_numeric($value)) {
|
||||
return self::T_NUMBER;
|
||||
}
|
||||
|
||||
if (strtoupper($value) === $value) {
|
||||
return self::T_UPPER;
|
||||
}
|
||||
|
||||
if (strtolower($value) === $value) {
|
||||
return self::T_LOWER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Use ``CharacterTypeLexer`` to extract an array of upper case characters:
|
||||
|
||||
.. code-block:: php
|
||||
<?php
|
||||
|
||||
class UpperCaseCharacterExtracter
|
||||
{
|
||||
private $lexer;
|
||||
|
||||
public function __construct(CharacterTypeLexer $lexer)
|
||||
{
|
||||
$this->lexer = $lexer;
|
||||
}
|
||||
|
||||
public function getUpperCaseCharacters($string)
|
||||
{
|
||||
$this->lexer->setInput($string);
|
||||
$this->lexer->moveNext();
|
||||
|
||||
$upperCaseChars = array();
|
||||
while (true) {
|
||||
if (!$this->lexer->lookahead) {
|
||||
break;
|
||||
}
|
||||
|
||||
$this->lexer->moveNext();
|
||||
|
||||
if ($this->lexer->token['type'] === CharacterTypeLexer::T_UPPER) {
|
||||
$upperCaseChars[] = $this->lexer->token['value'];
|
||||
}
|
||||
}
|
||||
|
||||
return $upperCaseChars;
|
||||
}
|
||||
}
|
||||
|
||||
$upperCaseCharacterExtractor = new UpperCaseCharacterExtracter(new CharacterTypeLexer());
|
||||
$upperCaseCharacters = $upperCaseCharacterExtractor->getUpperCaseCharacters('1aBcdEfgHiJ12');
|
||||
|
||||
print_r($upperCaseCharacters);
|
||||
|
||||
The variable ``$upperCaseCharacters`` contains all of the upper case
|
||||
characters:
|
||||
|
||||
.. code-block:: php
|
||||
Array
|
||||
(
|
||||
[0] => B
|
||||
[1] => E
|
||||
[2] => H
|
||||
[3] => J
|
||||
)
|
||||
|
||||
This is a simple example but it should demonstrate the low level API
|
||||
that can be used to build more complex parsers.
|
||||
|
|
@ -1,21 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Lexer;
|
||||
|
||||
use ReflectionClass;
|
||||
use const PREG_SPLIT_DELIM_CAPTURE;
|
||||
use const PREG_SPLIT_NO_EMPTY;
|
||||
use const PREG_SPLIT_OFFSET_CAPTURE;
|
||||
use function implode;
|
||||
use function in_array;
|
||||
use function preg_split;
|
||||
use function sprintf;
|
||||
use function substr;
|
||||
|
||||
/**
|
||||
* Base class for writing simple lexers, i.e. for creating small DSLs.
|
||||
*
|
||||
* @since 2.0
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
*/
|
||||
abstract class AbstractLexer
|
||||
{
|
||||
|
|
@ -37,43 +47,36 @@ abstract class AbstractLexer
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
private $tokens = [];
|
||||
private $tokens = array();
|
||||
|
||||
/**
|
||||
* Current lexer position in input string.
|
||||
*
|
||||
* @var int
|
||||
* @var integer
|
||||
*/
|
||||
private $position = 0;
|
||||
|
||||
/**
|
||||
* Current peek of current lexer position.
|
||||
*
|
||||
* @var int
|
||||
* @var integer
|
||||
*/
|
||||
private $peek = 0;
|
||||
|
||||
/**
|
||||
* The next token in the input.
|
||||
*
|
||||
* @var array|null
|
||||
* @var array
|
||||
*/
|
||||
public $lookahead;
|
||||
|
||||
/**
|
||||
* The last matched/seen token.
|
||||
*
|
||||
* @var array|null
|
||||
* @var array
|
||||
*/
|
||||
public $token;
|
||||
|
||||
/**
|
||||
* Composed regex for input parsing.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $regex;
|
||||
|
||||
/**
|
||||
* Sets the input data to be tokenized.
|
||||
*
|
||||
|
|
@ -87,7 +90,7 @@ abstract class AbstractLexer
|
|||
public function setInput($input)
|
||||
{
|
||||
$this->input = $input;
|
||||
$this->tokens = [];
|
||||
$this->tokens = array();
|
||||
|
||||
$this->reset();
|
||||
$this->scan($input);
|
||||
|
|
@ -119,7 +122,7 @@ abstract class AbstractLexer
|
|||
/**
|
||||
* Resets the lexer position on the input to the given position.
|
||||
*
|
||||
* @param int $position Position to place the lexical scanner.
|
||||
* @param integer $position Position to place the lexical scanner.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -131,7 +134,7 @@ abstract class AbstractLexer
|
|||
/**
|
||||
* Retrieve the original lexer's input until a given position.
|
||||
*
|
||||
* @param int $position
|
||||
* @param integer $position
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
|
@ -143,13 +146,13 @@ abstract class AbstractLexer
|
|||
/**
|
||||
* Checks whether a given token matches the current lookahead.
|
||||
*
|
||||
* @param int|string $token
|
||||
* @param integer|string $token
|
||||
*
|
||||
* @return bool
|
||||
* @return boolean
|
||||
*/
|
||||
public function isNextToken($token)
|
||||
{
|
||||
return $this->lookahead !== null && $this->lookahead['type'] === $token;
|
||||
return null !== $this->lookahead && $this->lookahead['type'] === $token;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -157,23 +160,23 @@ abstract class AbstractLexer
|
|||
*
|
||||
* @param array $tokens
|
||||
*
|
||||
* @return bool
|
||||
* @return boolean
|
||||
*/
|
||||
public function isNextTokenAny(array $tokens)
|
||||
{
|
||||
return $this->lookahead !== null && in_array($this->lookahead['type'], $tokens, true);
|
||||
return null !== $this->lookahead && in_array($this->lookahead['type'], $tokens, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves to the next token in the input string.
|
||||
*
|
||||
* @return bool
|
||||
* @return boolean
|
||||
*/
|
||||
public function moveNext()
|
||||
{
|
||||
$this->peek = 0;
|
||||
$this->token = $this->lookahead;
|
||||
$this->lookahead = isset($this->tokens[$this->position])
|
||||
$this->lookahead = (isset($this->tokens[$this->position]))
|
||||
? $this->tokens[$this->position++] : null;
|
||||
|
||||
return $this->lookahead !== null;
|
||||
|
|
@ -197,9 +200,9 @@ abstract class AbstractLexer
|
|||
* Checks if given value is identical to the given token.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param int|string $token
|
||||
* @param integer $token
|
||||
*
|
||||
* @return bool
|
||||
* @return boolean
|
||||
*/
|
||||
public function isA($value, $token)
|
||||
{
|
||||
|
|
@ -215,10 +218,10 @@ abstract class AbstractLexer
|
|||
{
|
||||
if (isset($this->tokens[$this->position + $this->peek])) {
|
||||
return $this->tokens[$this->position + $this->peek++];
|
||||
}
|
||||
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Peeks at the next token, returns it and immediately resets the peek.
|
||||
|
|
@ -229,7 +232,6 @@ abstract class AbstractLexer
|
|||
{
|
||||
$peek = $this->peek();
|
||||
$this->peek = 0;
|
||||
|
||||
return $peek;
|
||||
}
|
||||
|
||||
|
|
@ -242,8 +244,10 @@ abstract class AbstractLexer
|
|||
*/
|
||||
protected function scan($input)
|
||||
{
|
||||
if (! isset($this->regex)) {
|
||||
$this->regex = sprintf(
|
||||
static $regex;
|
||||
|
||||
if ( ! isset($regex)) {
|
||||
$regex = sprintf(
|
||||
'/(%s)|%s/%s',
|
||||
implode(')|(', $this->getCatchablePatterns()),
|
||||
implode('|', $this->getNonCatchablePatterns()),
|
||||
|
|
@ -252,36 +256,36 @@ abstract class AbstractLexer
|
|||
}
|
||||
|
||||
$flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE;
|
||||
$matches = preg_split($this->regex, $input, -1, $flags);
|
||||
$matches = preg_split($regex, $input, -1, $flags);
|
||||
|
||||
if ($matches === false) {
|
||||
if (false === $matches) {
|
||||
// Work around https://bugs.php.net/78122
|
||||
$matches = [[$input, 0]];
|
||||
$matches = array(array($input, 0));
|
||||
}
|
||||
|
||||
foreach ($matches as $match) {
|
||||
// Must remain before 'value' assignment since it can change content
|
||||
$type = $this->getType($match[0]);
|
||||
|
||||
$this->tokens[] = [
|
||||
$this->tokens[] = array(
|
||||
'value' => $match[0],
|
||||
'type' => $type,
|
||||
'position' => $match[1],
|
||||
];
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the literal for a given token.
|
||||
*
|
||||
* @param int|string $token
|
||||
* @param integer $token
|
||||
*
|
||||
* @return int|string
|
||||
* @return string
|
||||
*/
|
||||
public function getLiteral($token)
|
||||
{
|
||||
$className = static::class;
|
||||
$reflClass = new ReflectionClass($className);
|
||||
$className = get_class($this);
|
||||
$reflClass = new \ReflectionClass($className);
|
||||
$constants = $reflClass->getConstants();
|
||||
|
||||
foreach ($constants as $name => $value) {
|
||||
|
|
@ -300,7 +304,7 @@ abstract class AbstractLexer
|
|||
*/
|
||||
protected function getModifiers()
|
||||
{
|
||||
return 'iu';
|
||||
return 'i';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -322,7 +326,7 @@ abstract class AbstractLexer
|
|||
*
|
||||
* @param string $value
|
||||
*
|
||||
* @return int|string|null
|
||||
* @return integer
|
||||
*/
|
||||
abstract protected function getType(&$value);
|
||||
}
|
||||
|
|
|
|||
26
vendor/doctrine/lexer/phpunit.xml.dist
vendored
Normal file
26
vendor/doctrine/lexer/phpunit.xml.dist
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
|
||||
backupGlobals="false"
|
||||
colors="true"
|
||||
bootstrap="vendor/autoload.php"
|
||||
convertNoticesToExceptions="true"
|
||||
>
|
||||
<php>
|
||||
<ini name="error_reporting" value="-1" />
|
||||
</php>
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="Doctrine lexer Test Suite">
|
||||
<directory>tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<filter>
|
||||
<whitelist>
|
||||
<directory suffix=".php">lib/Doctrine</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
||||
268
vendor/doctrine/lexer/tests/Doctrine/Common/Lexer/AbstractLexerTest.php
vendored
Normal file
268
vendor/doctrine/lexer/tests/Doctrine/Common/Lexer/AbstractLexerTest.php
vendored
Normal file
|
|
@ -0,0 +1,268 @@
|
|||
<?php
|
||||
|
||||
namespace Doctrine\Tests\Common\Lexer;
|
||||
|
||||
class AbstractLexerTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @var ConcreteLexer
|
||||
*/
|
||||
private $concreteLexer;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->concreteLexer = new ConcreteLexer();
|
||||
}
|
||||
|
||||
public function dataProvider()
|
||||
{
|
||||
return array(
|
||||
array(
|
||||
'price=10',
|
||||
array(
|
||||
array(
|
||||
'value' => 'price',
|
||||
'type' => 'string',
|
||||
'position' => 0,
|
||||
),
|
||||
array(
|
||||
'value' => '=',
|
||||
'type' => 'operator',
|
||||
'position' => 5,
|
||||
),
|
||||
array(
|
||||
'value' => 10,
|
||||
'type' => 'int',
|
||||
'position' => 6,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
public function testResetPeek()
|
||||
{
|
||||
$expectedTokens = array(
|
||||
array(
|
||||
'value' => 'price',
|
||||
'type' => 'string',
|
||||
'position' => 0,
|
||||
),
|
||||
array(
|
||||
'value' => '=',
|
||||
'type' => 'operator',
|
||||
'position' => 5,
|
||||
),
|
||||
array(
|
||||
'value' => 10,
|
||||
'type' => 'int',
|
||||
'position' => 6,
|
||||
),
|
||||
);
|
||||
|
||||
$this->concreteLexer->setInput('price=10');
|
||||
|
||||
$this->assertEquals($expectedTokens[0], $this->concreteLexer->peek());
|
||||
$this->assertEquals($expectedTokens[1], $this->concreteLexer->peek());
|
||||
$this->concreteLexer->resetPeek();
|
||||
$this->assertEquals($expectedTokens[0], $this->concreteLexer->peek());
|
||||
}
|
||||
|
||||
public function testResetPosition()
|
||||
{
|
||||
$expectedTokens = array(
|
||||
array(
|
||||
'value' => 'price',
|
||||
'type' => 'string',
|
||||
'position' => 0,
|
||||
),
|
||||
array(
|
||||
'value' => '=',
|
||||
'type' => 'operator',
|
||||
'position' => 5,
|
||||
),
|
||||
array(
|
||||
'value' => 10,
|
||||
'type' => 'int',
|
||||
'position' => 6,
|
||||
),
|
||||
);
|
||||
|
||||
$this->concreteLexer->setInput('price=10');
|
||||
$this->assertNull($this->concreteLexer->lookahead);
|
||||
|
||||
$this->assertTrue($this->concreteLexer->moveNext());
|
||||
$this->assertEquals($expectedTokens[0], $this->concreteLexer->lookahead);
|
||||
|
||||
$this->assertTrue($this->concreteLexer->moveNext());
|
||||
$this->assertEquals($expectedTokens[1], $this->concreteLexer->lookahead);
|
||||
|
||||
$this->concreteLexer->resetPosition(0);
|
||||
|
||||
$this->assertTrue($this->concreteLexer->moveNext());
|
||||
$this->assertEquals($expectedTokens[0], $this->concreteLexer->lookahead);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProvider
|
||||
*
|
||||
* @param $input
|
||||
* @param $expectedTokens
|
||||
*/
|
||||
public function testMoveNext($input, $expectedTokens)
|
||||
{
|
||||
$this->concreteLexer->setInput($input);
|
||||
$this->assertNull($this->concreteLexer->lookahead);
|
||||
|
||||
for ($i = 0; $i < count($expectedTokens); $i++) {
|
||||
$this->assertTrue($this->concreteLexer->moveNext());
|
||||
$this->assertEquals($expectedTokens[$i], $this->concreteLexer->lookahead);
|
||||
}
|
||||
|
||||
$this->assertFalse($this->concreteLexer->moveNext());
|
||||
$this->assertNull($this->concreteLexer->lookahead);
|
||||
}
|
||||
|
||||
public function testSkipUntil()
|
||||
{
|
||||
$this->concreteLexer->setInput('price=10');
|
||||
|
||||
$this->assertTrue($this->concreteLexer->moveNext());
|
||||
$this->concreteLexer->skipUntil('operator');
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'value' => '=',
|
||||
'type' => 'operator',
|
||||
'position' => 5,
|
||||
),
|
||||
$this->concreteLexer->lookahead
|
||||
);
|
||||
}
|
||||
|
||||
public function testUtf8Mismatch()
|
||||
{
|
||||
$this->concreteLexer->setInput("\xE9=10");
|
||||
|
||||
$this->assertTrue($this->concreteLexer->moveNext());
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'value' => "\xE9=10",
|
||||
'type' => 'string',
|
||||
'position' => 0,
|
||||
),
|
||||
$this->concreteLexer->lookahead
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProvider
|
||||
*
|
||||
* @param $input
|
||||
* @param $expectedTokens
|
||||
*/
|
||||
public function testPeek($input, $expectedTokens)
|
||||
{
|
||||
$this->concreteLexer->setInput($input);
|
||||
foreach ($expectedTokens as $expectedToken) {
|
||||
$this->assertEquals($expectedToken, $this->concreteLexer->peek());
|
||||
}
|
||||
|
||||
$this->assertNull($this->concreteLexer->peek());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProvider
|
||||
*
|
||||
* @param $input
|
||||
* @param $expectedTokens
|
||||
*/
|
||||
public function testGlimpse($input, $expectedTokens)
|
||||
{
|
||||
$this->concreteLexer->setInput($input);
|
||||
|
||||
foreach ($expectedTokens as $expectedToken) {
|
||||
$this->assertEquals($expectedToken, $this->concreteLexer->glimpse());
|
||||
$this->concreteLexer->moveNext();
|
||||
}
|
||||
|
||||
$this->assertNull($this->concreteLexer->peek());
|
||||
}
|
||||
|
||||
public function inputUntilPositionDataProvider()
|
||||
{
|
||||
return array(
|
||||
array('price=10', 5, 'price'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider inputUntilPositionDataProvider
|
||||
*
|
||||
* @param $input
|
||||
* @param $position
|
||||
* @param $expectedInput
|
||||
*/
|
||||
public function testGetInputUntilPosition($input, $position, $expectedInput)
|
||||
{
|
||||
$this->concreteLexer->setInput($input);
|
||||
|
||||
$this->assertSame($expectedInput, $this->concreteLexer->getInputUntilPosition($position));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProvider
|
||||
*
|
||||
* @param $input
|
||||
* @param $expectedTokens
|
||||
*/
|
||||
public function testIsNextToken($input, $expectedTokens)
|
||||
{
|
||||
$this->concreteLexer->setInput($input);
|
||||
|
||||
$this->concreteLexer->moveNext();
|
||||
for ($i = 0; $i < count($expectedTokens); $i++) {
|
||||
$this->assertTrue($this->concreteLexer->isNextToken($expectedTokens[$i]['type']));
|
||||
$this->concreteLexer->moveNext();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProvider
|
||||
*
|
||||
* @param $input
|
||||
* @param $expectedTokens
|
||||
*/
|
||||
public function testIsNextTokenAny($input, $expectedTokens)
|
||||
{
|
||||
$allTokenTypes = array_map(function ($token) {
|
||||
return $token['type'];
|
||||
}, $expectedTokens);
|
||||
|
||||
$this->concreteLexer->setInput($input);
|
||||
|
||||
$this->concreteLexer->moveNext();
|
||||
for ($i = 0; $i < count($expectedTokens); $i++) {
|
||||
$this->assertTrue($this->concreteLexer->isNextTokenAny(array($expectedTokens[$i]['type'])));
|
||||
$this->assertTrue($this->concreteLexer->isNextTokenAny($allTokenTypes));
|
||||
$this->concreteLexer->moveNext();
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetLiteral()
|
||||
{
|
||||
$this->assertSame('Doctrine\Tests\Common\Lexer\ConcreteLexer::INT', $this->concreteLexer->getLiteral('int'));
|
||||
$this->assertSame('fake_token', $this->concreteLexer->getLiteral('fake_token'));
|
||||
}
|
||||
|
||||
public function testIsA()
|
||||
{
|
||||
$this->assertTrue($this->concreteLexer->isA(11, 'int'));
|
||||
$this->assertTrue($this->concreteLexer->isA(1.1, 'int'));
|
||||
$this->assertTrue($this->concreteLexer->isA('=', 'operator'));
|
||||
$this->assertTrue($this->concreteLexer->isA('>', 'operator'));
|
||||
$this->assertTrue($this->concreteLexer->isA('<', 'operator'));
|
||||
$this->assertTrue($this->concreteLexer->isA('fake_text', 'string'));
|
||||
}
|
||||
}
|
||||
49
vendor/doctrine/lexer/tests/Doctrine/Common/Lexer/ConcreteLexer.php
vendored
Normal file
49
vendor/doctrine/lexer/tests/Doctrine/Common/Lexer/ConcreteLexer.php
vendored
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
namespace Doctrine\Tests\Common\Lexer;
|
||||
|
||||
use Doctrine\Common\Lexer\AbstractLexer;
|
||||
|
||||
class ConcreteLexer extends AbstractLexer
|
||||
{
|
||||
const INT = 'int';
|
||||
|
||||
protected function getCatchablePatterns()
|
||||
{
|
||||
return array(
|
||||
'=|<|>',
|
||||
'[a-z]+',
|
||||
'\d+',
|
||||
);
|
||||
}
|
||||
|
||||
protected function getNonCatchablePatterns()
|
||||
{
|
||||
return array(
|
||||
'\s+',
|
||||
'(.)',
|
||||
);
|
||||
}
|
||||
|
||||
protected function getType(&$value)
|
||||
{
|
||||
if (is_numeric($value)) {
|
||||
$value = (int)$value;
|
||||
|
||||
return 'int';
|
||||
}
|
||||
if (in_array($value, array('=', '<', '>'))) {
|
||||
return 'operator';
|
||||
}
|
||||
if (is_string($value)) {
|
||||
return 'string';
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
protected function getModifiers()
|
||||
{
|
||||
return parent::getModifiers().'u';
|
||||
}
|
||||
}
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace JBBCode;
|
||||
|
||||
class DocumentElementTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @var DocumentElement
|
||||
*/
|
||||
private $_documentElement;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->_documentElement = new DocumentElement();
|
||||
}
|
||||
|
||||
public function testGetTagName()
|
||||
{
|
||||
$this->assertEquals('Document', $this->_documentElement->getTagName());
|
||||
}
|
||||
|
||||
public function testGetAsText()
|
||||
{
|
||||
$this->assertEmpty($this->_documentElement->getAsText());
|
||||
$mock = $this->getMock('JBBCode\ElementNode', array('getAsText'));
|
||||
$mock->expects($this->once())
|
||||
->method('getAsText')
|
||||
->will($this->returnValue('foo'));
|
||||
$this->_documentElement->addChild($mock);
|
||||
$this->assertEquals('foo', $this->_documentElement->getAsText());
|
||||
}
|
||||
|
||||
public function testGetAsHTML()
|
||||
{
|
||||
$this->assertEmpty($this->_documentElement->getAsHTML());
|
||||
$mock = $this->getMock('JBBCode\ElementNode', array('getAsHTML'));
|
||||
$mock->expects($this->once())
|
||||
->method('getAsHTML')
|
||||
->will($this->returnValue('<strong>foo</strong>'));
|
||||
$this->_documentElement->addChild($mock);
|
||||
$this->assertEquals('<strong>foo</strong>', $this->_documentElement->getAsHTML());
|
||||
}
|
||||
|
||||
public function testGetAsBBCode()
|
||||
{
|
||||
$this->assertEmpty($this->_documentElement->getAsBBCode());
|
||||
$mock = $this->getMock('JBBCode\ElementNode', array('getAsBBCOde'));
|
||||
$mock->expects($this->once())
|
||||
->method('getAsBBCode')
|
||||
->will($this->returnValue('[b]foo[/b]'));
|
||||
$this->_documentElement->addChild($mock);
|
||||
$this->assertEquals('[b]foo[/b]', $this->_documentElement->getAsBBCode());
|
||||
}
|
||||
|
||||
public function testAccept()
|
||||
{
|
||||
$mock = $this->getMock('JBBCode\NodeVisitor',
|
||||
array('visitDocumentElement', 'visitTextNode', 'visitElementNode'));
|
||||
$mock->expects($this->once())
|
||||
->method('visitDocumentElement')
|
||||
->with($this->equalTo($this->_documentElement));
|
||||
$mock->expects($this->never())
|
||||
->method('visitTextNode');
|
||||
$mock->expects($this->never())
|
||||
->method('visitElementNode');
|
||||
$this->_documentElement->accept($mock);
|
||||
}
|
||||
|
||||
public function testIsTextNode()
|
||||
{
|
||||
$this->assertFalse($this->_documentElement->isTextNode());
|
||||
}
|
||||
}
|
||||
59
vendor/symfony/polyfill-iconv/Iconv.php
vendored
59
vendor/symfony/polyfill-iconv/Iconv.php
vendored
|
|
@ -36,14 +36,14 @@ namespace Symfony\Polyfill\Iconv;
|
|||
*/
|
||||
final class Iconv
|
||||
{
|
||||
public const ERROR_ILLEGAL_CHARACTER = 'iconv(): Detected an illegal character in input string';
|
||||
public const ERROR_WRONG_CHARSET = 'iconv(): Wrong charset, conversion from `%s\' to `%s\' is not allowed';
|
||||
const ERROR_ILLEGAL_CHARACTER = 'iconv(): Detected an illegal character in input string';
|
||||
const ERROR_WRONG_CHARSET = 'iconv(): Wrong charset, conversion from `%s\' to `%s\' is not allowed';
|
||||
|
||||
public static $inputEncoding = 'utf-8';
|
||||
public static $outputEncoding = 'utf-8';
|
||||
public static $internalEncoding = 'utf-8';
|
||||
|
||||
private static $alias = [
|
||||
private static $alias = array(
|
||||
'utf8' => 'utf-8',
|
||||
'ascii' => 'us-ascii',
|
||||
'tis-620' => 'iso-8859-11',
|
||||
|
|
@ -116,13 +116,13 @@ final class Iconv
|
|||
'iso885914' => 'iso-8859-14',
|
||||
'iso885915' => 'iso-8859-15',
|
||||
'iso885916' => 'iso-8859-16',
|
||||
];
|
||||
private static $translitMap = [];
|
||||
private static $convertMap = [];
|
||||
);
|
||||
private static $translitMap = array();
|
||||
private static $convertMap = array();
|
||||
private static $errorHandler;
|
||||
private static $lastError;
|
||||
|
||||
private static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
|
||||
private static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
|
||||
private static $isValidUtf8;
|
||||
|
||||
public static function iconv($inCharset, $outCharset, $str)
|
||||
|
|
@ -238,7 +238,7 @@ final class Iconv
|
|||
}
|
||||
$str = explode("\n\n", $str, 2);
|
||||
|
||||
$headers = [];
|
||||
$headers = array();
|
||||
|
||||
$str = preg_split('/\n(?![ \t])/', $str[0]);
|
||||
foreach ($str as $str) {
|
||||
|
|
@ -251,7 +251,7 @@ final class Iconv
|
|||
if (2 === \count($str)) {
|
||||
if (isset($headers[$str[0]])) {
|
||||
if (!\is_array($headers[$str[0]])) {
|
||||
$headers[$str[0]] = [$headers[$str[0]]];
|
||||
$headers[$str[0]] = array($headers[$str[0]]);
|
||||
}
|
||||
$headers[$str[0]][] = ltrim($str[1]);
|
||||
} else {
|
||||
|
|
@ -268,7 +268,7 @@ final class Iconv
|
|||
if (null === $charset) {
|
||||
$charset = self::$internalEncoding;
|
||||
}
|
||||
if (\ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode) {
|
||||
if (ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode) {
|
||||
$charset .= '//IGNORE';
|
||||
}
|
||||
|
||||
|
|
@ -277,7 +277,7 @@ final class Iconv
|
|||
}
|
||||
$str = preg_split('/\n(?![ \t])/', rtrim($str), 2);
|
||||
$str = preg_replace('/[ \t]*\n[ \t]+/', ' ', rtrim($str[0]));
|
||||
$str = preg_split('/=\?([^?]+)\?([bqBQ])\?(.*?)\?=/', $str, -1, \PREG_SPLIT_DELIM_CAPTURE);
|
||||
$str = preg_split('/=\?([^?]+)\?([bqBQ])\?(.*?)\?=/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
$result = self::iconv('utf-8', $charset, $str[0]);
|
||||
if (false === $result) {
|
||||
|
|
@ -289,7 +289,7 @@ final class Iconv
|
|||
|
||||
while ($i < $len) {
|
||||
$c = strtolower($str[$i]);
|
||||
if ((\ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode)
|
||||
if ((ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode)
|
||||
&& 'utf-8' !== $c
|
||||
&& !isset(self::$alias[$c])
|
||||
&& !self::loadMap('from.', $c, $d)) {
|
||||
|
|
@ -312,7 +312,7 @@ final class Iconv
|
|||
if ('' !== trim($d)) {
|
||||
$result .= $d;
|
||||
}
|
||||
} elseif (\ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode) {
|
||||
} elseif (ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode) {
|
||||
$result .= "=?{$str[$i]}?{$str[$i + 1]}?{$str[$i + 2]}?={$str[$i + 3]}";
|
||||
} else {
|
||||
$result = false;
|
||||
|
|
@ -333,11 +333,11 @@ final class Iconv
|
|||
case 'internal_encoding': return self::$internalEncoding;
|
||||
}
|
||||
|
||||
return [
|
||||
return array(
|
||||
'input_encoding' => self::$inputEncoding,
|
||||
'output_encoding' => self::$outputEncoding,
|
||||
'internal_encoding' => self::$internalEncoding,
|
||||
];
|
||||
);
|
||||
}
|
||||
|
||||
public static function iconv_set_encoding($type, $charset)
|
||||
|
|
@ -346,6 +346,7 @@ final class Iconv
|
|||
case 'input_encoding': self::$inputEncoding = $charset; break;
|
||||
case 'output_encoding': self::$outputEncoding = $charset; break;
|
||||
case 'internal_encoding': self::$internalEncoding = $charset; break;
|
||||
|
||||
default: return false;
|
||||
}
|
||||
|
||||
|
|
@ -355,16 +356,16 @@ final class Iconv
|
|||
public static function iconv_mime_encode($fieldName, $fieldValue, $pref = null)
|
||||
{
|
||||
if (!\is_array($pref)) {
|
||||
$pref = [];
|
||||
$pref = array();
|
||||
}
|
||||
|
||||
$pref += [
|
||||
$pref += array(
|
||||
'scheme' => 'B',
|
||||
'input-charset' => self::$internalEncoding,
|
||||
'output-charset' => self::$internalEncoding,
|
||||
'line-length' => 76,
|
||||
'line-break-chars' => "\r\n",
|
||||
];
|
||||
);
|
||||
|
||||
if (preg_match('/[\x80-\xFF]/', $fieldName)) {
|
||||
$fieldName = '';
|
||||
|
|
@ -380,7 +381,7 @@ final class Iconv
|
|||
|
||||
preg_match_all('/./us', $fieldValue, $chars);
|
||||
|
||||
$chars = $chars[0] ?? [];
|
||||
$chars = isset($chars[0]) ? $chars[0] : array();
|
||||
|
||||
$lineBreak = (int) $pref['line-length'];
|
||||
$lineStart = "=?{$pref['output-charset']}?{$scheme}?";
|
||||
|
|
@ -388,7 +389,7 @@ final class Iconv
|
|||
$lineOffset = \strlen($lineStart) + 3;
|
||||
$lineData = '';
|
||||
|
||||
$fieldValue = [];
|
||||
$fieldValue = array();
|
||||
|
||||
$Q = 'Q' === $scheme;
|
||||
|
||||
|
|
@ -400,7 +401,7 @@ final class Iconv
|
|||
$o = $Q
|
||||
? $c = preg_replace_callback(
|
||||
'/[=_\?\x00-\x1F\x80-\xFF]/',
|
||||
[__CLASS__, 'qpByteCallback'],
|
||||
array(__CLASS__, 'qpByteCallback'),
|
||||
$c
|
||||
)
|
||||
: base64_encode($lineData.$c);
|
||||
|
|
@ -471,7 +472,7 @@ final class Iconv
|
|||
|
||||
while ($i < $len) {
|
||||
$u = $s[$i] & "\xF0";
|
||||
$i += $ulenMask[$u] ?? 1;
|
||||
$i += isset($ulenMask[$u]) ? $ulenMask[$u] : 1;
|
||||
++$j;
|
||||
}
|
||||
|
||||
|
|
@ -610,7 +611,7 @@ final class Iconv
|
|||
$u[$j++] = $str[$i++];
|
||||
} else {
|
||||
$ulen = $str[$i] & "\xF0";
|
||||
$ulen = $ulenMask[$ulen] ?? 1;
|
||||
$ulen = isset($ulenMask[$ulen]) ? $ulenMask[$ulen] : 1;
|
||||
$uchr = substr($str, $i, $ulen);
|
||||
|
||||
if (1 === $ulen || !($valid || preg_match('/^.$/us', $uchr))) {
|
||||
|
|
@ -622,9 +623,9 @@ final class Iconv
|
|||
trigger_error(self::ERROR_ILLEGAL_CHARACTER);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
} else {
|
||||
$i += $ulen;
|
||||
}
|
||||
|
||||
$u[$j++] = $uchr[0];
|
||||
|
||||
|
|
@ -672,16 +673,16 @@ final class Iconv
|
|||
$uchr = $str[$i++];
|
||||
} else {
|
||||
$ulen = $str[$i] & "\xF0";
|
||||
$ulen = $ulenMask[$ulen] ?? 1;
|
||||
$ulen = isset($ulenMask[$ulen]) ? $ulenMask[$ulen] : 1;
|
||||
$uchr = substr($str, $i, $ulen);
|
||||
|
||||
if ($ignore && (1 === $ulen || !($valid || preg_match('/^.$/us', $uchr)))) {
|
||||
++$i;
|
||||
continue;
|
||||
}
|
||||
|
||||
} else {
|
||||
$i += $ulen;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($map[$uchr])) {
|
||||
$result .= $map[$uchr];
|
||||
|
|
@ -722,7 +723,7 @@ final class Iconv
|
|||
|
||||
private static function pregOffset($offset)
|
||||
{
|
||||
$rx = [];
|
||||
$rx = array();
|
||||
$offset = (int) $offset;
|
||||
|
||||
while ($offset > 65535) {
|
||||
|
|
|
|||
6
vendor/symfony/polyfill-iconv/bootstrap.php
vendored
6
vendor/symfony/polyfill-iconv/bootstrap.php
vendored
|
|
@ -15,10 +15,6 @@ if (extension_loaded('iconv')) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (\PHP_VERSION_ID >= 80000) {
|
||||
return require __DIR__.'/bootstrap80.php';
|
||||
}
|
||||
|
||||
if (!defined('ICONV_IMPL')) {
|
||||
define('ICONV_IMPL', 'Symfony');
|
||||
}
|
||||
|
|
@ -42,7 +38,7 @@ if (!function_exists('iconv_set_encoding')) {
|
|||
function iconv_set_encoding($type, $encoding) { return p\Iconv::iconv_set_encoding($type, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_mime_encode')) {
|
||||
function iconv_mime_encode($field_name, $field_value, $options = []) { return p\Iconv::iconv_mime_encode($field_name, $field_value, $options); }
|
||||
function iconv_mime_encode($field_name, $field_value, $options = null) { return p\Iconv::iconv_mime_encode($field_name, $field_value, $options); }
|
||||
}
|
||||
if (!function_exists('iconv_mime_decode_headers')) {
|
||||
function iconv_mime_decode_headers($headers, $mode = 0, $encoding = null) { return p\Iconv::iconv_mime_decode_headers($headers, $mode, $encoding); }
|
||||
|
|
|
|||
80
vendor/symfony/polyfill-iconv/bootstrap80.php
vendored
80
vendor/symfony/polyfill-iconv/bootstrap80.php
vendored
|
|
@ -1,80 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Symfony\Polyfill\Iconv as p;
|
||||
|
||||
if (!defined('ICONV_IMPL')) {
|
||||
define('ICONV_IMPL', 'Symfony');
|
||||
}
|
||||
if (!defined('ICONV_VERSION')) {
|
||||
define('ICONV_VERSION', '1.0');
|
||||
}
|
||||
if (!defined('ICONV_MIME_DECODE_STRICT')) {
|
||||
define('ICONV_MIME_DECODE_STRICT', 1);
|
||||
}
|
||||
if (!defined('ICONV_MIME_DECODE_CONTINUE_ON_ERROR')) {
|
||||
define('ICONV_MIME_DECODE_CONTINUE_ON_ERROR', 2);
|
||||
}
|
||||
|
||||
if (!function_exists('iconv')) {
|
||||
function iconv(string $from_encoding, string $to_encoding, string $string): string|false { return p\Iconv::iconv($from_encoding, $to_encoding, $string); }
|
||||
}
|
||||
if (!function_exists('iconv_get_encoding')) {
|
||||
function iconv_get_encoding(string $type = 'all'): array|string|false { return p\Iconv::iconv_get_encoding($type); }
|
||||
}
|
||||
if (!function_exists('iconv_set_encoding')) {
|
||||
function iconv_set_encoding(string $type, string $encoding): bool { return p\Iconv::iconv_set_encoding($type, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_mime_encode')) {
|
||||
function iconv_mime_encode(string $field_name, string $field_value, array $options = []): string|false { return p\Iconv::iconv_mime_encode($field_name, $field_value, $options); }
|
||||
}
|
||||
if (!function_exists('iconv_mime_decode_headers')) {
|
||||
function iconv_mime_decode_headers(string $headers, int $mode = 0, string $encoding = null): array|false { return p\Iconv::iconv_mime_decode_headers($headers, $mode, $encoding); }
|
||||
}
|
||||
|
||||
if (extension_loaded('mbstring')) {
|
||||
if (!function_exists('iconv_strlen')) {
|
||||
function iconv_strlen(string $string, string $encoding = null): int|false { null === $encoding && $encoding = p\Iconv::$internalEncoding; return mb_strlen($string, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_strpos')) {
|
||||
function iconv_strpos(string $haystack, string $needle, int $offset = 0, string $encoding = null): int|false { null === $encoding && $encoding = p\Iconv::$internalEncoding; return mb_strpos($haystack, $needle, $offset, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_strrpos')) {
|
||||
function iconv_strrpos(string $haystack, string $needle, string $encoding = null): int|false { null === $encoding && $encoding = p\Iconv::$internalEncoding; return mb_strrpos($haystack, $needle, 0, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_substr')) {
|
||||
function iconv_substr(string $string, int $offset, int $length = null, string $encoding = null): string|false { null === $encoding && $encoding = p\Iconv::$internalEncoding; return mb_substr($string, $offset, $length, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_mime_decode')) {
|
||||
function iconv_mime_decode($string, $mode = 0, $encoding = null) { null === $encoding && $encoding = p\Iconv::$internalEncoding; return mb_decode_mimeheader($string, $mode, $encoding); }
|
||||
}
|
||||
} else {
|
||||
if (!function_exists('iconv_strlen')) {
|
||||
if (extension_loaded('xml')) {
|
||||
function iconv_strlen(string $string, string $encoding = null): int|false { return p\Iconv::strlen1($string, $encoding); }
|
||||
} else {
|
||||
function iconv_strlen(string $string, string $encoding = null): int|false { return p\Iconv::strlen2($string, $encoding); }
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('iconv_strpos')) {
|
||||
function iconv_strpos(string $haystack, string $needle, int $offset = 0, string $encoding = null): int|false { return p\Iconv::iconv_strpos($haystack, $needle, $offset, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_strrpos')) {
|
||||
function iconv_strrpos(string $haystack, string $needle, string $encoding = null): int|false { return p\Iconv::iconv_strrpos($haystack, $needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_substr')) {
|
||||
function iconv_substr(string $string, int $offset, int $length = null, string $encoding = null): string|false { return p\Iconv::iconv_substr($string, $offset, $length, $encoding); }
|
||||
}
|
||||
if (!function_exists('iconv_mime_decode')) {
|
||||
function iconv_mime_decode(string $string, int $mode = 0, string $encoding = null): string|false { return p\Iconv::iconv_mime_decode($string, $mode, $encoding); }
|
||||
}
|
||||
}
|
||||
4
vendor/symfony/polyfill-iconv/composer.json
vendored
4
vendor/symfony/polyfill-iconv/composer.json
vendored
|
|
@ -16,7 +16,7 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Iconv\\": "" },
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
|
|||
126
vendor/symfony/polyfill-intl-idn/Idn.php
vendored
126
vendor/symfony/polyfill-intl-idn/Idn.php
vendored
|
|
@ -23,45 +23,45 @@ use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex;
|
|||
*/
|
||||
final class Idn
|
||||
{
|
||||
public const ERROR_EMPTY_LABEL = 1;
|
||||
public const ERROR_LABEL_TOO_LONG = 2;
|
||||
public const ERROR_DOMAIN_NAME_TOO_LONG = 4;
|
||||
public const ERROR_LEADING_HYPHEN = 8;
|
||||
public const ERROR_TRAILING_HYPHEN = 0x10;
|
||||
public const ERROR_HYPHEN_3_4 = 0x20;
|
||||
public const ERROR_LEADING_COMBINING_MARK = 0x40;
|
||||
public const ERROR_DISALLOWED = 0x80;
|
||||
public const ERROR_PUNYCODE = 0x100;
|
||||
public const ERROR_LABEL_HAS_DOT = 0x200;
|
||||
public const ERROR_INVALID_ACE_LABEL = 0x400;
|
||||
public const ERROR_BIDI = 0x800;
|
||||
public const ERROR_CONTEXTJ = 0x1000;
|
||||
public const ERROR_CONTEXTO_PUNCTUATION = 0x2000;
|
||||
public const ERROR_CONTEXTO_DIGITS = 0x4000;
|
||||
const ERROR_EMPTY_LABEL = 1;
|
||||
const ERROR_LABEL_TOO_LONG = 2;
|
||||
const ERROR_DOMAIN_NAME_TOO_LONG = 4;
|
||||
const ERROR_LEADING_HYPHEN = 8;
|
||||
const ERROR_TRAILING_HYPHEN = 0x10;
|
||||
const ERROR_HYPHEN_3_4 = 0x20;
|
||||
const ERROR_LEADING_COMBINING_MARK = 0x40;
|
||||
const ERROR_DISALLOWED = 0x80;
|
||||
const ERROR_PUNYCODE = 0x100;
|
||||
const ERROR_LABEL_HAS_DOT = 0x200;
|
||||
const ERROR_INVALID_ACE_LABEL = 0x400;
|
||||
const ERROR_BIDI = 0x800;
|
||||
const ERROR_CONTEXTJ = 0x1000;
|
||||
const ERROR_CONTEXTO_PUNCTUATION = 0x2000;
|
||||
const ERROR_CONTEXTO_DIGITS = 0x4000;
|
||||
|
||||
public const INTL_IDNA_VARIANT_2003 = 0;
|
||||
public const INTL_IDNA_VARIANT_UTS46 = 1;
|
||||
const INTL_IDNA_VARIANT_2003 = 0;
|
||||
const INTL_IDNA_VARIANT_UTS46 = 1;
|
||||
|
||||
public const IDNA_DEFAULT = 0;
|
||||
public const IDNA_ALLOW_UNASSIGNED = 1;
|
||||
public const IDNA_USE_STD3_RULES = 2;
|
||||
public const IDNA_CHECK_BIDI = 4;
|
||||
public const IDNA_CHECK_CONTEXTJ = 8;
|
||||
public const IDNA_NONTRANSITIONAL_TO_ASCII = 16;
|
||||
public const IDNA_NONTRANSITIONAL_TO_UNICODE = 32;
|
||||
const IDNA_DEFAULT = 0;
|
||||
const IDNA_ALLOW_UNASSIGNED = 1;
|
||||
const IDNA_USE_STD3_RULES = 2;
|
||||
const IDNA_CHECK_BIDI = 4;
|
||||
const IDNA_CHECK_CONTEXTJ = 8;
|
||||
const IDNA_NONTRANSITIONAL_TO_ASCII = 16;
|
||||
const IDNA_NONTRANSITIONAL_TO_UNICODE = 32;
|
||||
|
||||
public const MAX_DOMAIN_SIZE = 253;
|
||||
public const MAX_LABEL_SIZE = 63;
|
||||
const MAX_DOMAIN_SIZE = 253;
|
||||
const MAX_LABEL_SIZE = 63;
|
||||
|
||||
public const BASE = 36;
|
||||
public const TMIN = 1;
|
||||
public const TMAX = 26;
|
||||
public const SKEW = 38;
|
||||
public const DAMP = 700;
|
||||
public const INITIAL_BIAS = 72;
|
||||
public const INITIAL_N = 128;
|
||||
public const DELIMITER = '-';
|
||||
public const MAX_INT = 2147483647;
|
||||
const BASE = 36;
|
||||
const TMIN = 1;
|
||||
const TMAX = 26;
|
||||
const SKEW = 38;
|
||||
const DAMP = 700;
|
||||
const INITIAL_BIAS = 72;
|
||||
const INITIAL_N = 128;
|
||||
const DELIMITER = '-';
|
||||
const MAX_INT = 2147483647;
|
||||
|
||||
/**
|
||||
* Contains the numeric value of a basic code point (for use in representing integers) in the
|
||||
|
|
@ -69,7 +69,7 @@ final class Idn
|
|||
*
|
||||
* @var array<int, int>
|
||||
*/
|
||||
private static $basicToDigit = [
|
||||
private static $basicToDigit = array(
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ final class Idn
|
|||
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
];
|
||||
);
|
||||
|
||||
/**
|
||||
* @var array<int, int>
|
||||
|
|
@ -145,20 +145,20 @@ final class Idn
|
|||
*
|
||||
* @return string|false
|
||||
*/
|
||||
public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
||||
public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
|
||||
{
|
||||
if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
@trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||
@trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$options = [
|
||||
$options = array(
|
||||
'CheckHyphens' => true,
|
||||
'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI),
|
||||
'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ),
|
||||
'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES),
|
||||
'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_ASCII),
|
||||
'VerifyDnsLength' => true,
|
||||
];
|
||||
);
|
||||
$info = new Info();
|
||||
$labels = self::process((string) $domainName, $options, $info);
|
||||
|
||||
|
|
@ -179,11 +179,11 @@ final class Idn
|
|||
self::validateDomainAndLabelLength($labels, $info);
|
||||
}
|
||||
|
||||
$idna_info = [
|
||||
$idna_info = array(
|
||||
'result' => implode('.', $labels),
|
||||
'isTransitionalDifferent' => $info->transitionalDifferent,
|
||||
'errors' => $info->errors,
|
||||
];
|
||||
);
|
||||
|
||||
return 0 === $info->errors ? $idna_info['result'] : false;
|
||||
}
|
||||
|
|
@ -198,25 +198,25 @@ final class Idn
|
|||
*
|
||||
* @return string|false
|
||||
*/
|
||||
public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
||||
public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
|
||||
{
|
||||
if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
@trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||
@trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$info = new Info();
|
||||
$labels = self::process((string) $domainName, [
|
||||
$labels = self::process((string) $domainName, array(
|
||||
'CheckHyphens' => true,
|
||||
'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI),
|
||||
'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ),
|
||||
'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES),
|
||||
'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_UNICODE),
|
||||
], $info);
|
||||
$idna_info = [
|
||||
), $info);
|
||||
$idna_info = array(
|
||||
'result' => implode('.', $labels),
|
||||
'isTransitionalDifferent' => $info->transitionalDifferent,
|
||||
'errors' => $info->errors,
|
||||
];
|
||||
);
|
||||
|
||||
return 0 === $info->errors ? $idna_info['result'] : false;
|
||||
}
|
||||
|
|
@ -251,7 +251,7 @@ final class Idn
|
|||
// If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C(Joining_Type:T)*(Joining_Type:{R,D})) Then
|
||||
// True;
|
||||
// Generated RegExp = ([Joining_Type:{L,D}][Joining_Type:T]*\u200C[Joining_Type:T]*)[Joining_Type:{R,D}]
|
||||
if (0x200C === $codePoint && 1 === preg_match(Regex::ZWNJ, $label, $matches, \PREG_OFFSET_CAPTURE, $offset)) {
|
||||
if (0x200C === $codePoint && 1 === preg_match(Regex::ZWNJ, $label, $matches, PREG_OFFSET_CAPTURE, $offset)) {
|
||||
$offset += \strlen($matches[1][0]);
|
||||
|
||||
continue;
|
||||
|
|
@ -328,7 +328,7 @@ final class Idn
|
|||
if ($checkForEmptyLabels && '' === $domain) {
|
||||
$info->errors |= self::ERROR_EMPTY_LABEL;
|
||||
|
||||
return [$domain];
|
||||
return array($domain);
|
||||
}
|
||||
|
||||
// Step 1. Map each code point in the domain name string
|
||||
|
|
@ -578,7 +578,7 @@ final class Idn
|
|||
$lastDelimIndex = strrpos($input, self::DELIMITER);
|
||||
$b = false === $lastDelimIndex ? 0 : $lastDelimIndex;
|
||||
$inputLength = \strlen($input);
|
||||
$output = [];
|
||||
$output = array();
|
||||
$bytes = array_map('ord', str_split($input));
|
||||
|
||||
for ($j = 0; $j < $b; ++$j) {
|
||||
|
|
@ -644,7 +644,7 @@ final class Idn
|
|||
|
||||
$n += intdiv($i, $outPlusOne);
|
||||
$i %= $outPlusOne;
|
||||
array_splice($output, $i++, 0, [mb_chr($n, 'utf-8')]);
|
||||
array_splice($output, $i++, 0, array(mb_chr($n, 'utf-8')));
|
||||
}
|
||||
|
||||
return implode('', $output);
|
||||
|
|
@ -703,9 +703,7 @@ final class Idn
|
|||
foreach ($iter as $codePoint) {
|
||||
if ($codePoint < $n && 0 === ++$delta) {
|
||||
throw new Exception('Integer overflow');
|
||||
}
|
||||
|
||||
if ($codePoint === $n) {
|
||||
} elseif ($codePoint === $n) {
|
||||
$q = $delta;
|
||||
|
||||
for ($k = self::BASE; /* no condition */; $k += self::BASE) {
|
||||
|
|
@ -795,7 +793,7 @@ final class Idn
|
|||
$lowerBoundary = 0x80;
|
||||
$upperBoundary = 0xBF;
|
||||
$codePoint = 0;
|
||||
$codePoints = [];
|
||||
$codePoints = array();
|
||||
$length = \strlen($input);
|
||||
|
||||
for ($i = 0; $i < $length; ++$i) {
|
||||
|
|
@ -889,19 +887,19 @@ final class Idn
|
|||
}
|
||||
|
||||
if (isset(self::$mapped[$codePoint])) {
|
||||
return ['status' => 'mapped', 'mapping' => self::$mapped[$codePoint]];
|
||||
return array('status' => 'mapped', 'mapping' => self::$mapped[$codePoint]);
|
||||
}
|
||||
|
||||
if (isset(self::$ignored[$codePoint])) {
|
||||
return ['status' => 'ignored'];
|
||||
return array('status' => 'ignored');
|
||||
}
|
||||
|
||||
if (isset(self::$deviation[$codePoint])) {
|
||||
return ['status' => 'deviation', 'mapping' => self::$deviation[$codePoint]];
|
||||
return array('status' => 'deviation', 'mapping' => self::$deviation[$codePoint]);
|
||||
}
|
||||
|
||||
if (isset(self::$disallowed[$codePoint]) || DisallowedRanges::inRange($codePoint)) {
|
||||
return ['status' => 'disallowed'];
|
||||
return array('status' => 'disallowed');
|
||||
}
|
||||
|
||||
$isDisallowedMapped = isset(self::$disallowed_STD3_mapped[$codePoint]);
|
||||
|
|
@ -914,12 +912,12 @@ final class Idn
|
|||
}
|
||||
|
||||
if ($isDisallowedMapped) {
|
||||
return ['status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]];
|
||||
return array('status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]);
|
||||
}
|
||||
|
||||
return ['status' => $status];
|
||||
return array('status' => $status);
|
||||
}
|
||||
|
||||
return ['status' => 'valid'];
|
||||
return array('status' => 'valid');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
14
vendor/symfony/polyfill-intl-idn/bootstrap.php
vendored
14
vendor/symfony/polyfill-intl-idn/bootstrap.php
vendored
|
|
@ -15,10 +15,6 @@ if (extension_loaded('intl')) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (\PHP_VERSION_ID >= 80000) {
|
||||
return require __DIR__.'/bootstrap80.php';
|
||||
}
|
||||
|
||||
if (!defined('U_IDNA_PROHIBITED_ERROR')) {
|
||||
define('U_IDNA_PROHIBITED_ERROR', 66560);
|
||||
}
|
||||
|
|
@ -128,18 +124,18 @@ if (!defined('IDNA_ERROR_CONTEXTJ')) {
|
|||
define('IDNA_ERROR_CONTEXTJ', 4096);
|
||||
}
|
||||
|
||||
if (\PHP_VERSION_ID < 70400) {
|
||||
if (PHP_VERSION_ID < 70400) {
|
||||
if (!function_exists('idn_to_ascii')) {
|
||||
function idn_to_ascii($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = null) { return p\Idn::idn_to_ascii($domain, $flags, $variant, $idna_info); }
|
||||
function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }
|
||||
}
|
||||
if (!function_exists('idn_to_utf8')) {
|
||||
function idn_to_utf8($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = null) { return p\Idn::idn_to_utf8($domain, $flags, $variant, $idna_info); }
|
||||
function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }
|
||||
}
|
||||
} else {
|
||||
if (!function_exists('idn_to_ascii')) {
|
||||
function idn_to_ascii($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = null) { return p\Idn::idn_to_ascii($domain, $flags, $variant, $idna_info); }
|
||||
function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }
|
||||
}
|
||||
if (!function_exists('idn_to_utf8')) {
|
||||
function idn_to_utf8($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = null) { return p\Idn::idn_to_utf8($domain, $flags, $variant, $idna_info); }
|
||||
function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
128
vendor/symfony/polyfill-intl-idn/bootstrap80.php
vendored
128
vendor/symfony/polyfill-intl-idn/bootstrap80.php
vendored
|
|
@ -1,128 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Symfony\Polyfill\Intl\Idn as p;
|
||||
|
||||
if (!defined('U_IDNA_PROHIBITED_ERROR')) {
|
||||
define('U_IDNA_PROHIBITED_ERROR', 66560);
|
||||
}
|
||||
if (!defined('U_IDNA_ERROR_START')) {
|
||||
define('U_IDNA_ERROR_START', 66560);
|
||||
}
|
||||
if (!defined('U_IDNA_UNASSIGNED_ERROR')) {
|
||||
define('U_IDNA_UNASSIGNED_ERROR', 66561);
|
||||
}
|
||||
if (!defined('U_IDNA_CHECK_BIDI_ERROR')) {
|
||||
define('U_IDNA_CHECK_BIDI_ERROR', 66562);
|
||||
}
|
||||
if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) {
|
||||
define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);
|
||||
}
|
||||
if (!defined('U_IDNA_ACE_PREFIX_ERROR')) {
|
||||
define('U_IDNA_ACE_PREFIX_ERROR', 66564);
|
||||
}
|
||||
if (!defined('U_IDNA_VERIFICATION_ERROR')) {
|
||||
define('U_IDNA_VERIFICATION_ERROR', 66565);
|
||||
}
|
||||
if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) {
|
||||
define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);
|
||||
}
|
||||
if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) {
|
||||
define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);
|
||||
}
|
||||
if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) {
|
||||
define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);
|
||||
}
|
||||
if (!defined('U_IDNA_ERROR_LIMIT')) {
|
||||
define('U_IDNA_ERROR_LIMIT', 66569);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) {
|
||||
define('U_STRINGPREP_PROHIBITED_ERROR', 66560);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) {
|
||||
define('U_STRINGPREP_UNASSIGNED_ERROR', 66561);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) {
|
||||
define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);
|
||||
}
|
||||
if (!defined('IDNA_DEFAULT')) {
|
||||
define('IDNA_DEFAULT', 0);
|
||||
}
|
||||
if (!defined('IDNA_ALLOW_UNASSIGNED')) {
|
||||
define('IDNA_ALLOW_UNASSIGNED', 1);
|
||||
}
|
||||
if (!defined('IDNA_USE_STD3_RULES')) {
|
||||
define('IDNA_USE_STD3_RULES', 2);
|
||||
}
|
||||
if (!defined('IDNA_CHECK_BIDI')) {
|
||||
define('IDNA_CHECK_BIDI', 4);
|
||||
}
|
||||
if (!defined('IDNA_CHECK_CONTEXTJ')) {
|
||||
define('IDNA_CHECK_CONTEXTJ', 8);
|
||||
}
|
||||
if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) {
|
||||
define('IDNA_NONTRANSITIONAL_TO_ASCII', 16);
|
||||
}
|
||||
if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) {
|
||||
define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);
|
||||
}
|
||||
if (!defined('INTL_IDNA_VARIANT_2003')) {
|
||||
define('INTL_IDNA_VARIANT_2003', 0);
|
||||
}
|
||||
if (!defined('INTL_IDNA_VARIANT_UTS46')) {
|
||||
define('INTL_IDNA_VARIANT_UTS46', 1);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_EMPTY_LABEL')) {
|
||||
define('IDNA_ERROR_EMPTY_LABEL', 1);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) {
|
||||
define('IDNA_ERROR_LABEL_TOO_LONG', 2);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) {
|
||||
define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LEADING_HYPHEN')) {
|
||||
define('IDNA_ERROR_LEADING_HYPHEN', 8);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) {
|
||||
define('IDNA_ERROR_TRAILING_HYPHEN', 16);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_HYPHEN_3_4')) {
|
||||
define('IDNA_ERROR_HYPHEN_3_4', 32);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) {
|
||||
define('IDNA_ERROR_LEADING_COMBINING_MARK', 64);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_DISALLOWED')) {
|
||||
define('IDNA_ERROR_DISALLOWED', 128);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_PUNYCODE')) {
|
||||
define('IDNA_ERROR_PUNYCODE', 256);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) {
|
||||
define('IDNA_ERROR_LABEL_HAS_DOT', 512);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) {
|
||||
define('IDNA_ERROR_INVALID_ACE_LABEL', 1024);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_BIDI')) {
|
||||
define('IDNA_ERROR_BIDI', 2048);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_CONTEXTJ')) {
|
||||
define('IDNA_ERROR_CONTEXTJ', 4096);
|
||||
}
|
||||
|
||||
if (!function_exists('idn_to_ascii')) {
|
||||
function idn_to_ascii(string $domain, int $flags = 0, int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = null): string|false { return p\Idn::idn_to_ascii($domain, $flags, $variant, $idna_info); }
|
||||
}
|
||||
if (!function_exists('idn_to_utf8')) {
|
||||
function idn_to_utf8(string $domain, int $flags = 0, int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = null): string|false { return p\Idn::idn_to_utf8($domain, $flags, $variant, $idna_info); }
|
||||
}
|
||||
|
|
@ -20,8 +20,9 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"php": ">=5.3.3",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php70": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -34,7 +35,7 @@
|
|||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
|
|||
|
|
@ -23,27 +23,28 @@ namespace Symfony\Polyfill\Intl\Normalizer;
|
|||
*/
|
||||
class Normalizer
|
||||
{
|
||||
public const FORM_D = \Normalizer::FORM_D;
|
||||
public const FORM_KD = \Normalizer::FORM_KD;
|
||||
public const FORM_C = \Normalizer::FORM_C;
|
||||
public const FORM_KC = \Normalizer::FORM_KC;
|
||||
public const NFD = \Normalizer::NFD;
|
||||
public const NFKD = \Normalizer::NFKD;
|
||||
public const NFC = \Normalizer::NFC;
|
||||
public const NFKC = \Normalizer::NFKC;
|
||||
const FORM_D = \Normalizer::FORM_D;
|
||||
const FORM_KD = \Normalizer::FORM_KD;
|
||||
const FORM_C = \Normalizer::FORM_C;
|
||||
const FORM_KC = \Normalizer::FORM_KC;
|
||||
const NFD = \Normalizer::NFD;
|
||||
const NFKD = \Normalizer::NFKD;
|
||||
const NFC = \Normalizer::NFC;
|
||||
const NFKC = \Normalizer::NFKC;
|
||||
|
||||
private static $C;
|
||||
private static $D;
|
||||
private static $KD;
|
||||
private static $cC;
|
||||
private static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
|
||||
private static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
|
||||
private static $ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F";
|
||||
|
||||
public static function isNormalized(string $s, int $form = self::FORM_C)
|
||||
public static function isNormalized($s, $form = self::NFC)
|
||||
{
|
||||
if (!\in_array($form, [self::NFD, self::NFKD, self::NFC, self::NFKC])) {
|
||||
if (!\in_array($form, array(self::NFD, self::NFKD, self::NFC, self::NFKC))) {
|
||||
return false;
|
||||
}
|
||||
$s = (string) $s;
|
||||
if (!isset($s[strspn($s, self::$ASCII)])) {
|
||||
return true;
|
||||
}
|
||||
|
|
@ -54,8 +55,9 @@ class Normalizer
|
|||
return self::normalize($s, $form) === $s;
|
||||
}
|
||||
|
||||
public static function normalize(string $s, int $form = self::FORM_C)
|
||||
public static function normalize($s, $form = self::NFC)
|
||||
{
|
||||
$s = (string) $s;
|
||||
if (!preg_match('//u', $s)) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -70,13 +72,9 @@ class Normalizer
|
|||
return $s;
|
||||
}
|
||||
|
||||
if (80000 > \PHP_VERSION_ID) {
|
||||
return false;
|
||||
}
|
||||
|
||||
throw new \ValueError('normalizer_normalize(): Argument #2 ($form) must be a a valid normalization form');
|
||||
}
|
||||
|
||||
if ('' === $s) {
|
||||
return '';
|
||||
}
|
||||
|
|
@ -154,7 +152,7 @@ class Normalizer
|
|||
|| $lastUcls) {
|
||||
// Table lookup and combining chars composition
|
||||
|
||||
$ucls = $combClass[$uchr] ?? 0;
|
||||
$ucls = isset($combClass[$uchr]) ? $combClass[$uchr] : 0;
|
||||
|
||||
if (isset($compMap[$lastUchr.$uchr]) && (!$lastUcls || $lastUcls < $ucls)) {
|
||||
$lastUchr = $compMap[$lastUchr.$uchr];
|
||||
|
|
@ -206,7 +204,7 @@ class Normalizer
|
|||
$compatMap = self::$KD;
|
||||
}
|
||||
|
||||
$c = [];
|
||||
$c = array();
|
||||
$i = 0;
|
||||
$len = \strlen($s);
|
||||
|
||||
|
|
@ -217,7 +215,7 @@ class Normalizer
|
|||
if ($c) {
|
||||
ksort($c);
|
||||
$result .= implode('', $c);
|
||||
$c = [];
|
||||
$c = array();
|
||||
}
|
||||
|
||||
$j = 1 + strspn($s, $ASCII, $i + 1);
|
||||
|
|
@ -233,7 +231,7 @@ class Normalizer
|
|||
if ($uchr < "\xEA\xB0\x80" || "\xED\x9E\xA3" < $uchr) {
|
||||
// Table lookup
|
||||
|
||||
if ($uchr !== $j = $compatMap[$uchr] ?? ($decompMap[$uchr] ?? $uchr)) {
|
||||
if ($uchr !== $j = isset($compatMap[$uchr]) ? $compatMap[$uchr] : (isset($decompMap[$uchr]) ? $decompMap[$uchr] : $uchr)) {
|
||||
$uchr = $j;
|
||||
|
||||
$j = \strlen($uchr);
|
||||
|
|
@ -285,7 +283,7 @@ class Normalizer
|
|||
if ($c) {
|
||||
ksort($c);
|
||||
$result .= implode('', $c);
|
||||
$c = [];
|
||||
$c = array();
|
||||
}
|
||||
|
||||
$result .= $uchr;
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ class Normalizer extends Symfony\Polyfill\Intl\Normalizer\Normalizer
|
|||
/**
|
||||
* @deprecated since ICU 56 and removed in PHP 8
|
||||
*/
|
||||
public const NONE = 2;
|
||||
public const FORM_D = 4;
|
||||
public const FORM_KD = 8;
|
||||
public const FORM_C = 16;
|
||||
public const FORM_KC = 32;
|
||||
public const NFD = 4;
|
||||
public const NFKD = 8;
|
||||
public const NFC = 16;
|
||||
public const NFKC = 32;
|
||||
const NONE = 1;
|
||||
const FORM_D = 2;
|
||||
const FORM_KD = 3;
|
||||
const FORM_C = 4;
|
||||
const FORM_KC = 5;
|
||||
const NFD = 2;
|
||||
const NFKD = 3;
|
||||
const NFC = 4;
|
||||
const NFKC = 5;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,13 +11,9 @@
|
|||
|
||||
use Symfony\Polyfill\Intl\Normalizer as p;
|
||||
|
||||
if (\PHP_VERSION_ID >= 80000) {
|
||||
return require __DIR__.'/bootstrap80.php';
|
||||
}
|
||||
|
||||
if (!function_exists('normalizer_is_normalized')) {
|
||||
function normalizer_is_normalized($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::isNormalized($string, $form); }
|
||||
function normalizer_is_normalized($input, $form = p\Normalizer::NFC) { return p\Normalizer::isNormalized($input, $form); }
|
||||
}
|
||||
if (!function_exists('normalizer_normalize')) {
|
||||
function normalizer_normalize($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::normalize($string, $form); }
|
||||
function normalizer_normalize($input, $form = p\Normalizer::NFC) { return p\Normalizer::normalize($input, $form); }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Symfony\Polyfill\Intl\Normalizer as p;
|
||||
|
||||
if (!function_exists('normalizer_is_normalized')) {
|
||||
function normalizer_is_normalized(string $string, int $form = p\Normalizer::FORM_C): bool { return p\Normalizer::isNormalized($string, $form); }
|
||||
}
|
||||
if (!function_exists('normalizer_normalize')) {
|
||||
function normalizer_normalize(string $string, int $form = p\Normalizer::FORM_C): string|false { return p\Normalizer::normalize($string, $form); }
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" },
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
|
|||
129
vendor/symfony/polyfill-mbstring/Mbstring.php
vendored
129
vendor/symfony/polyfill-mbstring/Mbstring.php
vendored
|
|
@ -67,15 +67,15 @@ namespace Symfony\Polyfill\Mbstring;
|
|||
*/
|
||||
final class Mbstring
|
||||
{
|
||||
public const MB_CASE_FOLD = \PHP_INT_MAX;
|
||||
const MB_CASE_FOLD = PHP_INT_MAX;
|
||||
|
||||
private static $encodingList = ['ASCII', 'UTF-8'];
|
||||
private static $encodingList = array('ASCII', 'UTF-8');
|
||||
private static $language = 'neutral';
|
||||
private static $internalEncoding = 'UTF-8';
|
||||
private static $caseFold = [
|
||||
['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"],
|
||||
['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'],
|
||||
];
|
||||
private static $caseFold = array(
|
||||
array('µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"),
|
||||
array('μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'),
|
||||
);
|
||||
|
||||
public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
|
||||
{
|
||||
|
|
@ -104,22 +104,24 @@ final class Mbstring
|
|||
$s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
return preg_replace_callback('/[\x80-\xFF]+/', [__CLASS__, 'html_encoding_callback'], $s);
|
||||
return preg_replace_callback('/[\x80-\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s);
|
||||
}
|
||||
|
||||
if ('HTML-ENTITIES' === $fromEncoding) {
|
||||
$s = html_entity_decode($s, \ENT_COMPAT, 'UTF-8');
|
||||
$s = html_entity_decode($s, ENT_COMPAT, 'UTF-8');
|
||||
$fromEncoding = 'UTF-8';
|
||||
}
|
||||
|
||||
return iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
|
||||
}
|
||||
|
||||
public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars)
|
||||
public static function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null)
|
||||
{
|
||||
$vars = array(&$a, &$b, &$c, &$d, &$e, &$f);
|
||||
|
||||
$ok = true;
|
||||
array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {
|
||||
if (false === $v = self::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
|
||||
if (false === $v = Mbstring::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
|
||||
$ok = false;
|
||||
}
|
||||
});
|
||||
|
|
@ -134,23 +136,23 @@ final class Mbstring
|
|||
|
||||
public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
|
||||
{
|
||||
trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', \E_USER_WARNING);
|
||||
trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING);
|
||||
}
|
||||
|
||||
public static function mb_decode_numericentity($s, $convmap, $encoding = null)
|
||||
{
|
||||
if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
|
||||
trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
||||
if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
|
||||
trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
|
||||
if (!\is_array($convmap) || !$convmap) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (null !== $encoding && !is_scalar($encoding)) {
|
||||
trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
||||
if (null !== $encoding && !\is_scalar($encoding)) {
|
||||
trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
||||
|
||||
return ''; // Instead of null (cf. mb_encode_numericentity).
|
||||
}
|
||||
|
|
@ -183,7 +185,7 @@ final class Mbstring
|
|||
$c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];
|
||||
for ($i = 0; $i < $cnt; $i += 4) {
|
||||
if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {
|
||||
return self::mb_chr($c - $convmap[$i + 2]);
|
||||
return Mbstring::mb_chr($c - $convmap[$i + 2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -199,24 +201,24 @@ final class Mbstring
|
|||
|
||||
public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
|
||||
{
|
||||
if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
|
||||
trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
||||
if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
|
||||
trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
|
||||
if (!\is_array($convmap) || !$convmap) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (null !== $encoding && !is_scalar($encoding)) {
|
||||
trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
|
||||
if (null !== $encoding && !\is_scalar($encoding)) {
|
||||
trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
|
||||
|
||||
return null; // Instead of '' (cf. mb_decode_numericentity).
|
||||
}
|
||||
|
||||
if (null !== $is_hex && !is_scalar($is_hex)) {
|
||||
trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', \E_USER_WARNING);
|
||||
if (null !== $is_hex && !\is_scalar($is_hex)) {
|
||||
trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', E_USER_WARNING);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
@ -237,7 +239,7 @@ final class Mbstring
|
|||
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
|
||||
static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
|
||||
|
||||
$cnt = floor(\count($convmap) / 4) * 4;
|
||||
$i = 0;
|
||||
|
|
@ -285,14 +287,14 @@ final class Mbstring
|
|||
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
if (\MB_CASE_TITLE == $mode) {
|
||||
if (MB_CASE_TITLE == $mode) {
|
||||
static $titleRegexp = null;
|
||||
if (null === $titleRegexp) {
|
||||
$titleRegexp = self::getData('titleCaseRegexp');
|
||||
}
|
||||
$s = preg_replace_callback($titleRegexp, [__CLASS__, 'title_case'], $s);
|
||||
$s = preg_replace_callback($titleRegexp, array(__CLASS__, 'title_case'), $s);
|
||||
} else {
|
||||
if (\MB_CASE_UPPER == $mode) {
|
||||
if (MB_CASE_UPPER == $mode) {
|
||||
static $upper = null;
|
||||
if (null === $upper) {
|
||||
$upper = self::getData('upperCase');
|
||||
|
|
@ -310,7 +312,7 @@ final class Mbstring
|
|||
$map = $lower;
|
||||
}
|
||||
|
||||
static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
|
||||
static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
|
||||
|
||||
$i = 0;
|
||||
$len = \strlen($s);
|
||||
|
|
@ -351,45 +353,37 @@ final class Mbstring
|
|||
return self::$internalEncoding;
|
||||
}
|
||||
|
||||
$normalizedEncoding = self::getEncoding($encoding);
|
||||
$encoding = self::getEncoding($encoding);
|
||||
|
||||
if ('UTF-8' === $normalizedEncoding || false !== @iconv($normalizedEncoding, $normalizedEncoding, ' ')) {
|
||||
self::$internalEncoding = $normalizedEncoding;
|
||||
if ('UTF-8' === $encoding || false !== @iconv($encoding, $encoding, ' ')) {
|
||||
self::$internalEncoding = $encoding;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if (80000 > \PHP_VERSION_ID) {
|
||||
return false;
|
||||
}
|
||||
|
||||
throw new \ValueError(sprintf('Argument #1 ($encoding) must be a valid encoding, "%s" given', $encoding));
|
||||
}
|
||||
|
||||
public static function mb_language($lang = null)
|
||||
{
|
||||
if (null === $lang) {
|
||||
return self::$language;
|
||||
}
|
||||
|
||||
switch ($normalizedLang = strtolower($lang)) {
|
||||
switch ($lang = strtolower($lang)) {
|
||||
case 'uni':
|
||||
case 'neutral':
|
||||
self::$language = $normalizedLang;
|
||||
self::$language = $lang;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if (80000 > \PHP_VERSION_ID) {
|
||||
return false;
|
||||
}
|
||||
|
||||
throw new \ValueError(sprintf('Argument #1 ($language) must be a valid language, "%s" given', $lang));
|
||||
}
|
||||
|
||||
public static function mb_list_encodings()
|
||||
{
|
||||
return ['UTF-8'];
|
||||
return array('UTF-8');
|
||||
}
|
||||
|
||||
public static function mb_encoding_aliases($encoding)
|
||||
|
|
@ -397,7 +391,7 @@ final class Mbstring
|
|||
switch (strtoupper($encoding)) {
|
||||
case 'UTF8':
|
||||
case 'UTF-8':
|
||||
return ['utf8'];
|
||||
return array('utf8');
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -412,7 +406,7 @@ final class Mbstring
|
|||
$encoding = self::$internalEncoding;
|
||||
}
|
||||
|
||||
return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var);
|
||||
return self::mb_detect_encoding($var, array($encoding)) || false !== @iconv($encoding, $encoding, $var);
|
||||
}
|
||||
|
||||
public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
|
||||
|
|
@ -499,15 +493,11 @@ final class Mbstring
|
|||
|
||||
$needle = (string) $needle;
|
||||
if ('' === $needle) {
|
||||
if (80000 > \PHP_VERSION_ID) {
|
||||
trigger_error(__METHOD__.': Empty delimiter', \E_USER_WARNING);
|
||||
trigger_error(__METHOD__.': Empty delimiter', E_USER_WARNING);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return iconv_strpos($haystack, $needle, $offset, $encoding);
|
||||
}
|
||||
|
||||
|
|
@ -531,28 +521,23 @@ final class Mbstring
|
|||
}
|
||||
}
|
||||
|
||||
$pos = '' !== $needle || 80000 > \PHP_VERSION_ID
|
||||
? iconv_strrpos($haystack, $needle, $encoding)
|
||||
: self::mb_strlen($haystack, $encoding);
|
||||
$pos = iconv_strrpos($haystack, $needle, $encoding);
|
||||
|
||||
return false !== $pos ? $offset + $pos : false;
|
||||
}
|
||||
|
||||
public static function mb_str_split($string, $split_length = 1, $encoding = null)
|
||||
{
|
||||
if (null !== $string && !is_scalar($string) && !(\is_object($string) && method_exists($string, '__toString'))) {
|
||||
trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', \E_USER_WARNING);
|
||||
if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) {
|
||||
trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if (1 > $split_length = (int) $split_length) {
|
||||
if (80000 > \PHP_VERSION_ID) {
|
||||
trigger_error('The length of each segment must be greater than zero', \E_USER_WARNING);
|
||||
return false;
|
||||
}
|
||||
trigger_error('The length of each segment must be greater than zero', E_USER_WARNING);
|
||||
|
||||
throw new \ValueError('Argument #2 ($length) must be greater than 0');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (null === $encoding) {
|
||||
|
|
@ -567,10 +552,10 @@ final class Mbstring
|
|||
}
|
||||
$rx .= '.{'.$split_length.'})/us';
|
||||
|
||||
return preg_split($rx, $string, null, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY);
|
||||
return preg_split($rx, $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
||||
}
|
||||
|
||||
$result = [];
|
||||
$result = array();
|
||||
$length = mb_strlen($string, $encoding);
|
||||
|
||||
for ($i = 0; $i < $length; $i += $split_length) {
|
||||
|
|
@ -582,27 +567,21 @@ final class Mbstring
|
|||
|
||||
public static function mb_strtolower($s, $encoding = null)
|
||||
{
|
||||
return self::mb_convert_case($s, \MB_CASE_LOWER, $encoding);
|
||||
return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);
|
||||
}
|
||||
|
||||
public static function mb_strtoupper($s, $encoding = null)
|
||||
{
|
||||
return self::mb_convert_case($s, \MB_CASE_UPPER, $encoding);
|
||||
return self::mb_convert_case($s, MB_CASE_UPPER, $encoding);
|
||||
}
|
||||
|
||||
public static function mb_substitute_character($c = null)
|
||||
{
|
||||
if (null === $c) {
|
||||
return 'none';
|
||||
}
|
||||
if (0 === strcasecmp($c, 'none')) {
|
||||
return true;
|
||||
}
|
||||
if (80000 > \PHP_VERSION_ID) {
|
||||
return false;
|
||||
}
|
||||
|
||||
throw new \ValueError('Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint');
|
||||
return null !== $c ? false : 'none';
|
||||
}
|
||||
|
||||
public static function mb_substr($s, $start, $length = null, $encoding = null)
|
||||
|
|
@ -690,7 +669,7 @@ final class Mbstring
|
|||
|
||||
public static function mb_get_info($type = 'all')
|
||||
{
|
||||
$info = [
|
||||
$info = array(
|
||||
'internal_encoding' => self::$internalEncoding,
|
||||
'http_output' => 'pass',
|
||||
'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)',
|
||||
|
|
@ -705,7 +684,7 @@ final class Mbstring
|
|||
'detect_order' => self::$encodingList,
|
||||
'substitute_character' => 'none',
|
||||
'strict_detection' => 'Off',
|
||||
];
|
||||
);
|
||||
|
||||
if ('all' === $type) {
|
||||
return $info;
|
||||
|
|
@ -809,7 +788,7 @@ final class Mbstring
|
|||
{
|
||||
$i = 1;
|
||||
$entities = '';
|
||||
$m = unpack('C*', htmlentities($m[0], \ENT_COMPAT, 'UTF-8'));
|
||||
$m = unpack('C*', htmlentities($m[0], ENT_COMPAT, 'UTF-8'));
|
||||
|
||||
while (isset($m[$i])) {
|
||||
if (0x80 > $m[$i]) {
|
||||
|
|
@ -832,7 +811,7 @@ final class Mbstring
|
|||
|
||||
private static function title_case(array $s)
|
||||
{
|
||||
return self::mb_convert_case($s[1], \MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], \MB_CASE_LOWER, 'UTF-8');
|
||||
return self::mb_convert_case($s[1], MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], MB_CASE_LOWER, 'UTF-8');
|
||||
}
|
||||
|
||||
private static function getData($file)
|
||||
|
|
|
|||
31
vendor/symfony/polyfill-mbstring/Resources/mb_convert_variables.php8
vendored
Normal file
31
vendor/symfony/polyfill-mbstring/Resources/mb_convert_variables.php8
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Symfony\Polyfill\Mbstring as p;
|
||||
|
||||
if (!function_exists('mb_convert_variables')) {
|
||||
/**
|
||||
* Convert character code in variable(s)
|
||||
*/
|
||||
function mb_convert_variables($to_encoding, $from_encoding, &$var, &...$vars)
|
||||
{
|
||||
$vars = [&$var, ...$vars];
|
||||
|
||||
$ok = true;
|
||||
array_walk_recursive($vars, function (&$v) use (&$ok, $to_encoding, $from_encoding) {
|
||||
if (false === $v = p\Mbstring::mb_convert_encoding($v, $to_encoding, $from_encoding)) {
|
||||
$ok = false;
|
||||
}
|
||||
});
|
||||
|
||||
return $ok ? $from_encoding : false;
|
||||
}
|
||||
}
|
||||
16
vendor/symfony/polyfill-mbstring/bootstrap.php
vendored
16
vendor/symfony/polyfill-mbstring/bootstrap.php
vendored
|
|
@ -11,10 +11,6 @@
|
|||
|
||||
use Symfony\Polyfill\Mbstring as p;
|
||||
|
||||
if (\PHP_VERSION_ID >= 80000) {
|
||||
return require __DIR__.'/bootstrap80.php';
|
||||
}
|
||||
|
||||
if (!function_exists('mb_convert_encoding')) {
|
||||
function mb_convert_encoding($string, $to_encoding, $from_encoding = null) { return p\Mbstring::mb_convert_encoding($string, $to_encoding, $from_encoding); }
|
||||
}
|
||||
|
|
@ -22,7 +18,7 @@ if (!function_exists('mb_decode_mimeheader')) {
|
|||
function mb_decode_mimeheader($string) { return p\Mbstring::mb_decode_mimeheader($string); }
|
||||
}
|
||||
if (!function_exists('mb_encode_mimeheader')) {
|
||||
function mb_encode_mimeheader($string, $charset = null, $transfer_encoding = null, $newline = "\r\n", $indent = 0) { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); }
|
||||
function mb_encode_mimeheader($string, $charset = null, $transfer_encoding = null, $newline = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); }
|
||||
}
|
||||
if (!function_exists('mb_decode_numericentity')) {
|
||||
function mb_decode_numericentity($string, $map, $encoding = null) { return p\Mbstring::mb_decode_numericentity($string, $map, $encoding); }
|
||||
|
|
@ -55,7 +51,7 @@ if (!function_exists('mb_detect_order')) {
|
|||
function mb_detect_order($encoding = null) { return p\Mbstring::mb_detect_order($encoding); }
|
||||
}
|
||||
if (!function_exists('mb_parse_str')) {
|
||||
function mb_parse_str($string, &$result = []) { parse_str($string, $result); }
|
||||
function mb_parse_str($string, &$result = array()) { parse_str($string, $result); }
|
||||
}
|
||||
if (!function_exists('mb_strlen')) {
|
||||
function mb_strlen($string, $encoding = null) { return p\Mbstring::mb_strlen($string, $encoding); }
|
||||
|
|
@ -112,11 +108,13 @@ if (!function_exists('mb_output_handler')) {
|
|||
function mb_output_handler($string, $status) { return p\Mbstring::mb_output_handler($string, $status); }
|
||||
}
|
||||
if (!function_exists('mb_http_input')) {
|
||||
function mb_http_input($type = null) { return p\Mbstring::mb_http_input($type); }
|
||||
function mb_http_input($type = '') { return p\Mbstring::mb_http_input($type); }
|
||||
}
|
||||
|
||||
if (!function_exists('mb_convert_variables')) {
|
||||
function mb_convert_variables($to_encoding, $from_encoding, &...$vars) { return p\Mbstring::mb_convert_variables($to_encoding, $from_encoding, ...$vars); }
|
||||
if (PHP_VERSION_ID >= 80000) {
|
||||
require_once __DIR__.'/Resources/mb_convert_variables.php8';
|
||||
} elseif (!function_exists('mb_convert_variables')) {
|
||||
function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) { return p\Mbstring::mb_convert_variables($toEncoding, $fromEncoding, $a, $b, $c, $d, $e, $f); }
|
||||
}
|
||||
|
||||
if (!function_exists('mb_ord')) {
|
||||
|
|
|
|||
143
vendor/symfony/polyfill-mbstring/bootstrap80.php
vendored
143
vendor/symfony/polyfill-mbstring/bootstrap80.php
vendored
|
|
@ -1,143 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Symfony\Polyfill\Mbstring as p;
|
||||
|
||||
if (!function_exists('mb_convert_encoding')) {
|
||||
function mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false { return p\Mbstring::mb_convert_encoding($string, $to_encoding, $from_encoding); }
|
||||
}
|
||||
if (!function_exists('mb_decode_mimeheader')) {
|
||||
function mb_decode_mimeheader(string $string): string { return p\Mbstring::mb_decode_mimeheader($string); }
|
||||
}
|
||||
if (!function_exists('mb_encode_mimeheader')) {
|
||||
function mb_encode_mimeheader(string $string, string $charset = null, string $transfer_encoding = null, string $newline = "\r\n", int $indent = 0): string { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); }
|
||||
}
|
||||
if (!function_exists('mb_decode_numericentity')) {
|
||||
function mb_decode_numericentity(string $string, array $map, string $encoding = null): string { return p\Mbstring::mb_decode_numericentity($string, $map, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_encode_numericentity')) {
|
||||
function mb_encode_numericentity(string $string, array $map, string $encoding = null, bool $hex = false): string { return p\Mbstring::mb_encode_numericentity($string, $map, $encoding, $hex); }
|
||||
}
|
||||
if (!function_exists('mb_convert_case')) {
|
||||
function mb_convert_case(string $string, int $mode, string $encoding = null): string { return p\Mbstring::mb_convert_case($string, $mode, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_internal_encoding')) {
|
||||
function mb_internal_encoding(string $encoding = null): string|bool { return p\Mbstring::mb_internal_encoding($encoding); }
|
||||
}
|
||||
if (!function_exists('mb_language')) {
|
||||
function mb_language(string $language = null): string|bool { return p\Mbstring::mb_language($language); }
|
||||
}
|
||||
if (!function_exists('mb_list_encodings')) {
|
||||
function mb_list_encodings(): array { return p\Mbstring::mb_list_encodings(); }
|
||||
}
|
||||
if (!function_exists('mb_encoding_aliases')) {
|
||||
function mb_encoding_aliases(string $encoding): array { return p\Mbstring::mb_encoding_aliases($encoding); }
|
||||
}
|
||||
if (!function_exists('mb_check_encoding')) {
|
||||
function mb_check_encoding(array|string|null $value = null, string $encoding = null): bool { return p\Mbstring::mb_check_encoding($value, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_detect_encoding')) {
|
||||
function mb_detect_encoding(string $string, array|string|null $encodings = null, bool $strict = false): string|false { return p\Mbstring::mb_detect_encoding($string, $encodings, $strict); }
|
||||
}
|
||||
if (!function_exists('mb_detect_order')) {
|
||||
function mb_detect_order(array|string|null $encoding = null): array|bool { return p\Mbstring::mb_detect_order($encoding); }
|
||||
}
|
||||
if (!function_exists('mb_parse_str')) {
|
||||
function mb_parse_str(string $string, &$result = array()): bool { parse_str($string, $result); }
|
||||
}
|
||||
if (!function_exists('mb_strlen')) {
|
||||
function mb_strlen(string $string, string $encoding = null): int { return p\Mbstring::mb_strlen($string, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strpos')) {
|
||||
function mb_strpos(string $haystack, string $needle, int $offset = 0, string $encoding = null): int|false { return p\Mbstring::mb_strpos($haystack, $needle, $offset, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strtolower')) {
|
||||
function mb_strtolower(string $string, string $encoding = null): string { return p\Mbstring::mb_strtolower($string, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strtoupper')) {
|
||||
function mb_strtoupper(string $string, string $encoding = null): string { return p\Mbstring::mb_strtoupper($string, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_substitute_character')) {
|
||||
function mb_substitute_character(string|int|null $substitute_character = null): string|int|bool { return p\Mbstring::mb_substitute_character($substitute_character); }
|
||||
}
|
||||
if (!function_exists('mb_substr')) {
|
||||
function mb_substr(string $string, int $start, int $length = null, string $encoding = null): string { return p\Mbstring::mb_substr($string, $start, $length, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_stripos')) {
|
||||
function mb_stripos(string $haystack, string $needle, int $offset = 0, string $encoding = null): int|false { return p\Mbstring::mb_stripos($haystack, $needle, $offset, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_stristr')) {
|
||||
function mb_stristr(string $haystack, string $needle, bool $before_needle = false, string $encoding = null): string|false { return p\Mbstring::mb_stristr($haystack, $needle, $before_needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strrchr')) {
|
||||
function mb_strrchr(string $haystack, string $needle, bool $before_needle = false, string $encoding = null): string|false { return p\Mbstring::mb_strrchr($haystack, $needle, $before_needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strrichr')) {
|
||||
function mb_strrichr(string $haystack, string $needle, bool $before_needle = false, string $encoding = null): string|false { return p\Mbstring::mb_strrichr($haystack, $needle, $before_needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strripos')) {
|
||||
function mb_strripos(string $haystack, string $needle, int $offset = 0, string $encoding = null): int|false { return p\Mbstring::mb_strripos($haystack, $needle, $offset, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strrpos')) {
|
||||
function mb_strrpos(string $haystack, string $needle, int $offset = 0, string $encoding = null): int|false { return p\Mbstring::mb_strrpos($haystack, $needle, $offset, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strstr')) {
|
||||
function mb_strstr(string $haystack, string $needle, bool $before_needle = false, string $encoding = null): string|false { return p\Mbstring::mb_strstr($haystack, $needle, $before_needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_get_info')) {
|
||||
function mb_get_info(string $type = 'all'): array|string|int|false { return p\Mbstring::mb_get_info($type); }
|
||||
}
|
||||
if (!function_exists('mb_http_output')) {
|
||||
function mb_http_output(string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strwidth')) {
|
||||
function mb_strwidth(string $string, string $encoding = null): int { return p\Mbstring::mb_strwidth($string, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_substr_count')) {
|
||||
function mb_substr_count(string $haystack, string $needle, string $encoding = null): int { return p\Mbstring::mb_substr_count($haystack, $needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_output_handler')) {
|
||||
function mb_output_handler(string $string, int $status): string { return p\Mbstring::mb_output_handler($string, $status); }
|
||||
}
|
||||
if (!function_exists('mb_http_input')) {
|
||||
function mb_http_input(string $type = null): array|string|false { return p\Mbstring::mb_http_input($type); }
|
||||
}
|
||||
|
||||
if (!function_exists('mb_convert_variables')) {
|
||||
function mb_convert_variables(string $to_encoding, array|string $from_encoding, mixed &$var, mixed &...$vars): string|false { return p\Mbstring::mb_convert_variables($to_encoding, $from_encoding, $var, ...$vars); }
|
||||
}
|
||||
|
||||
if (!function_exists('mb_ord')) {
|
||||
function mb_ord(string $string, string $encoding = null): int|false { return p\Mbstring::mb_ord($string, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_chr')) {
|
||||
function mb_chr(int $codepoint, string $encoding = null): string|false { return p\Mbstring::mb_chr($codepoint, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_scrub')) {
|
||||
function mb_scrub(string $string, string $encoding = null): string { $encoding ??= mb_internal_encoding(); return mb_convert_encoding($string, $encoding, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_str_split')) {
|
||||
function mb_str_split(string $string, int $length = 1, string $encoding = null): array { return p\Mbstring::mb_str_split($string, $length, $encoding); }
|
||||
}
|
||||
|
||||
if (extension_loaded('mbstring')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!defined('MB_CASE_UPPER')) {
|
||||
define('MB_CASE_UPPER', 0);
|
||||
}
|
||||
if (!defined('MB_CASE_LOWER')) {
|
||||
define('MB_CASE_LOWER', 1);
|
||||
}
|
||||
if (!defined('MB_CASE_TITLE')) {
|
||||
define('MB_CASE_TITLE', 2);
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" },
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
|
|||
18
vendor/symfony/polyfill-php72/Php72.php
vendored
18
vendor/symfony/polyfill-php72/Php72.php
vendored
|
|
@ -73,7 +73,7 @@ final class Php72
|
|||
return 'Windows';
|
||||
}
|
||||
|
||||
$map = [
|
||||
$map = array(
|
||||
'Darwin' => 'Darwin',
|
||||
'DragonFly' => 'BSD',
|
||||
'FreeBSD' => 'BSD',
|
||||
|
|
@ -81,9 +81,9 @@ final class Php72
|
|||
'OpenBSD' => 'BSD',
|
||||
'Linux' => 'Linux',
|
||||
'SunOS' => 'Solaris',
|
||||
];
|
||||
);
|
||||
|
||||
return isset($map[\PHP_OS]) ? $map[\PHP_OS] : 'Unknown';
|
||||
return isset($map[PHP_OS]) ? $map[PHP_OS] : 'Unknown';
|
||||
}
|
||||
|
||||
public static function spl_object_id($object)
|
||||
|
|
@ -102,7 +102,7 @@ final class Php72
|
|||
public static function sapi_windows_vt100_support($stream, $enable = null)
|
||||
{
|
||||
if (!\is_resource($stream)) {
|
||||
trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, '.\gettype($stream).' given', \E_USER_WARNING);
|
||||
trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, '.\gettype($stream).' given', E_USER_WARNING);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -110,7 +110,7 @@ final class Php72
|
|||
$meta = stream_get_meta_data($stream);
|
||||
|
||||
if ('STDIO' !== $meta['stream_type']) {
|
||||
trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', \E_USER_WARNING);
|
||||
trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', E_USER_WARNING);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -134,7 +134,7 @@ final class Php72
|
|||
public static function stream_isatty($stream)
|
||||
{
|
||||
if (!\is_resource($stream)) {
|
||||
trigger_error('stream_isatty() expects parameter 1 to be resource, '.\gettype($stream).' given', \E_USER_WARNING);
|
||||
trigger_error('stream_isatty() expects parameter 1 to be resource, '.\gettype($stream).' given', E_USER_WARNING);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -150,12 +150,12 @@ final class Php72
|
|||
|
||||
private static function initHashMask()
|
||||
{
|
||||
$obj = (object) [];
|
||||
$obj = (object) array();
|
||||
self::$hashMask = -1;
|
||||
|
||||
// check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below
|
||||
$obFuncs = ['ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush'];
|
||||
foreach (debug_backtrace(\PHP_VERSION_ID >= 50400 ? \DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {
|
||||
$obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush');
|
||||
foreach (debug_backtrace(\PHP_VERSION_ID >= 50400 ? DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {
|
||||
if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) {
|
||||
$frame['line'] = 0;
|
||||
break;
|
||||
|
|
|
|||
4
vendor/symfony/polyfill-php72/bootstrap.php
vendored
4
vendor/symfony/polyfill-php72/bootstrap.php
vendored
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
use Symfony\Polyfill\Php72 as p;
|
||||
|
||||
if (\PHP_VERSION_ID >= 70200) {
|
||||
if (PHP_VERSION_ID >= 70200) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ if (!defined('PHP_OS_FAMILY')) {
|
|||
define('PHP_OS_FAMILY', p\Php72::php_os_family());
|
||||
}
|
||||
|
||||
if ('\\' === \DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {
|
||||
if ('\\' === DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {
|
||||
function sapi_windows_vt100_support($stream, $enable = null) { return p\Php72::sapi_windows_vt100_support($stream, $enable); }
|
||||
}
|
||||
if (!function_exists('stream_isatty')) {
|
||||
|
|
|
|||
4
vendor/symfony/polyfill-php72/composer.json
vendored
4
vendor/symfony/polyfill-php72/composer.json
vendored
|
|
@ -16,7 +16,7 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Php72\\": "" },
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.19-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue