diff --git a/composer.json b/composer.json
index ddd32ae..54aa05c 100644
--- a/composer.json
+++ b/composer.json
@@ -1,133 +1,136 @@
{
- "name": "singularity/hyperf-admin",
- "description": "hyperf-admin",
- "authors": [
- {
- "name": "ch4o5",
- "email": "dongyun.li@luxcreo.ai"
- },
- {
- "name": "daodao97",
- "email": "daodao97@foxmail.com"
- }
+ "name": "singularity/hyperf-admin",
+ "description": "hyperf-admin",
+ "authors": [
+ {
+ "name": "ch4o5",
+ "email": "dongyun.li@luxcreo.ai"
+ },
+ {
+ "name": "daodao97",
+ "email": "daodao97@foxmail.com"
+ }
+ ],
+ "require": {
+ "php": ">=8.2",
+ "ext-json": "*",
+ "ext-pdo": "*",
+ "ext-swoole": ">=4.4",
+ "aliyuncs/oss-sdk-php": "^2.3",
+ "box/spout": "^3.1",
+ "hyperf/amqp": "~2.2.0",
+ "hyperf/async-queue": "~2.2.0",
+ "hyperf/cache": "~2.2.0",
+ "hyperf/command": "~2.2.0",
+ "hyperf/config": "~2.2.0",
+ "hyperf/constants": "~2.2.0",
+ "hyperf/crontab": "~2.2.0",
+ "hyperf/database": "~2.2.0",
+ "hyperf/db-connection": "~2.2.0",
+ "hyperf/filesystem": "^2.0",
+ "hyperf/framework": "~2.2.0",
+ "hyperf/guzzle": "~2.2.0",
+ "hyperf/http-server": "~2.2.0",
+ "hyperf/logger": "~2.2.0",
+ "hyperf/memory": "~2.2.0",
+ "hyperf/metric": "~2.2.0",
+ "hyperf/nsq": "~2.2.0",
+ "hyperf/process": "~2.2.0",
+ "hyperf/redis": "~2.2.0",
+ "hyperf/snowflake": "~2.2.0",
+ "hyperf/validation": "~2.2.0",
+ "nette/php-generator": "^3.4",
+ "singularity/hdk-core": "^0.1.6",
+ "xxtime/flysystem-aliyun-oss": "~1.5.0",
+ "yadakhov/insert-on-duplicate-key": "^1.2",
+ "zoujingli/ip2region": "^1.0"
+ },
+ "replace": {
+ "hyperf-admin/base-utils": "self.version",
+ "hyperf-admin/admin": "self.version",
+ "hyperf-admin/alert-manager": "self.version",
+ "hyperf-admin/cron-center": "self.version",
+ "hyperf-admin/event-bus": "self.version",
+ "hyperf-admin/process-manager": "self.version",
+ "hyperf-admin/rule-engine": "self.version",
+ "hyperf-admin/validation": "self.version",
+ "hyperf-admin/workflow": "self.version",
+ "hyperf-admin/data-focus": "self.version",
+ "hyperf-admin/dev-tools": "self.version"
+ },
+ "autoload": {
+ "psr-4": {
+ "HyperfAdmin\\BaseUtils\\": "src/base-utils/src",
+ "HyperfAdmin\\Admin\\": "src/admin/src",
+ "HyperfAdmin\\AlertManager\\": "src/alert-manager/src",
+ "HyperfAdmin\\CronCenter\\": "src/cron-center/src",
+ "HyperfAdmin\\DataFocus\\": "src/data-focus/src",
+ "HyperfAdmin\\DevTools\\": "src/dev-tools/src",
+ "HyperfAdmin\\EventBus\\": "src/event-bus/src",
+ "HyperfAdmin\\ProcessManager\\": "src/process-manager/src",
+ "HyperfAdmin\\RuleEngine\\": "src/rule-engine/src",
+ "HyperfAdmin\\Validation\\": "src/validation/src",
+ "HyperfAdmin\\ConfigCenter\\": "src/config-center/src"
+ },
+ "files": [
+ "src/base-utils/src/Helper/array.php",
+ "src/base-utils/src/Helper/common.php",
+ "src/base-utils/src/Helper/constants.php",
+ "src/base-utils/src/Helper/system.php",
+ "src/data-focus/src/Util/func.php",
+ "src/event-bus/src/funcs.php",
+ "src/admin/src/funcs/common.php",
+ "src/data-focus/src/Util/SimpleHtmlDom.php"
],
- "require": {
- "php": ">=7.4",
- "ext-json": "*",
- "ext-pdo": "*",
- "ext-swoole": ">=4.4",
- "aliyuncs/oss-sdk-php": "^2.3",
- "box/spout": "^3.1",
- "hyperf/amqp": "~2.2.0",
- "hyperf/async-queue": "~2.2.0",
- "hyperf/cache": "~2.2.0",
- "hyperf/command": "~2.2.0",
- "hyperf/config": "~2.2.0",
- "hyperf/constants": "~2.2.0",
- "hyperf/crontab": "~2.2.0",
- "hyperf/database": "~2.2.0",
- "hyperf/db-connection": "~2.2.0",
- "hyperf/filesystem": "^2.0",
- "hyperf/framework": "~2.2.0",
- "hyperf/guzzle": "~2.2.0",
- "hyperf/http-server": "~2.2.0",
- "hyperf/logger": "~2.2.0",
- "hyperf/memory": "~2.2.0",
- "hyperf/metric": "~2.2.0",
- "hyperf/nsq": "~2.2.0",
- "hyperf/process": "~2.2.0",
- "hyperf/redis": "~2.2.0",
- "hyperf/snowflake": "~2.2.0",
- "hyperf/validation": "~2.2.0",
- "nette/php-generator": "^3.4",
- "singularity/hdk-core": "^0.1.6",
- "xxtime/flysystem-aliyun-oss": "~1.5.0",
- "yadakhov/insert-on-duplicate-key": "^1.2",
- "zoujingli/ip2region": "^1.0"
+ "classmap": [
+ "src/base-utils/src/classmap"
+ ]
+ },
+ "extra": {
+ "hyperf": {
+ "config": [
+ "HyperfAdmin\\Admin\\ConfigProvider",
+ "HyperfAdmin\\BaseUtils\\ConfigProvider@99",
+ "HyperfAdmin\\AlertManager\\ConfigProvider",
+ "HyperfAdmin\\CronCenter\\ConfigProvider",
+ "HyperfAdmin\\DataFocus\\ConfigProvider",
+ "HyperfAdmin\\DevTools\\ConfigProvider",
+ "HyperfAdmin\\EventBus\\ConfigProvider",
+ "HyperfAdmin\\ProcessManager\\ConfigProvider",
+ "HyperfAdmin\\ConfigCenter\\ConfigProvider"
+ ]
+ }
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "config": {
+ "sort-packages": true,
+ "secure-http": false
+ },
+ "scripts": {
+ "post-root-package-install": [],
+ "test": "vendor/bin/pest $1",
+ "cs-fix": "vendor/bin/php-cs-fixer fix $1 --rules=@PSR12 --allow-risky=yes",
+ "analyse": "vendor/bin/phpstan analyse $1",
+ "ci": [
+ "@analyse publish/ src/ tests/",
+ "@cs-fix",
+ "@test --ci",
+ "echo CI Success"
+ ]
+ },
+ "repositories": {
+ "nest": {
+ "type": "composer",
+ "url": "https://nest.doylee.cn/api/packages/HDK/composer"
},
- "replace": {
- "hyperf-admin/base-utils": "self.version",
- "hyperf-admin/admin": "self.version",
- "hyperf-admin/alert-manager": "self.version",
- "hyperf-admin/cron-center": "self.version",
- "hyperf-admin/event-bus": "self.version",
- "hyperf-admin/process-manager": "self.version",
- "hyperf-admin/rule-engine": "self.version",
- "hyperf-admin/validation": "self.version",
- "hyperf-admin/workflow": "self.version",
- "hyperf-admin/data-focus": "self.version",
- "hyperf-admin/dev-tools": "self.version"
- },
- "autoload": {
- "psr-4": {
- "HyperfAdmin\\BaseUtils\\": "src/base-utils/src",
- "HyperfAdmin\\Admin\\": "src/admin/src",
- "HyperfAdmin\\AlertManager\\": "src/alert-manager/src",
- "HyperfAdmin\\CronCenter\\": "src/cron-center/src",
- "HyperfAdmin\\DataFocus\\": "src/data-focus/src",
- "HyperfAdmin\\DevTools\\": "src/dev-tools/src",
- "HyperfAdmin\\EventBus\\": "src/event-bus/src",
- "HyperfAdmin\\ProcessManager\\": "src/process-manager/src",
- "HyperfAdmin\\RuleEngine\\": "src/rule-engine/src",
- "HyperfAdmin\\Validation\\": "src/validation/src",
- "HyperfAdmin\\ConfigCenter\\": "src/config-center/src"
- },
- "files": [
- "src/base-utils/src/Helper/array.php",
- "src/base-utils/src/Helper/common.php",
- "src/base-utils/src/Helper/constants.php",
- "src/base-utils/src/Helper/system.php",
- "src/data-focus/src/Util/func.php",
- "src/event-bus/src/funcs.php",
- "src/admin/src/funcs/common.php",
- "src/data-focus/src/Util/SimpleHtmlDom.php"
- ],
- "classmap": [
- "src/base-utils/src/classmap"
- ]
- },
- "extra": {
- "hyperf": {
- "config": [
- "HyperfAdmin\\Admin\\ConfigProvider",
- "HyperfAdmin\\BaseUtils\\ConfigProvider@99",
- "HyperfAdmin\\AlertManager\\ConfigProvider",
- "HyperfAdmin\\CronCenter\\ConfigProvider",
- "HyperfAdmin\\DataFocus\\ConfigProvider",
- "HyperfAdmin\\DevTools\\ConfigProvider",
- "HyperfAdmin\\EventBus\\ConfigProvider",
- "HyperfAdmin\\ProcessManager\\ConfigProvider",
- "HyperfAdmin\\ConfigCenter\\ConfigProvider"
- ]
- }
- },
- "minimum-stability": "dev",
- "prefer-stable": true,
- "config": {
- "sort-packages": true,
- "secure-http": false
- },
- "scripts": {
- "post-root-package-install": [],
- "test": "vendor/bin/pest $1",
- "cs-fix": "vendor/bin/php-cs-fixer fix $1 --rules=@PSR12 --allow-risky=yes",
- "analyse": "vendor/bin/phpstan analyse $1",
- "ci": [
- "@analyse publish/ src/ tests/",
- "@cs-fix",
- "@test --ci",
- "echo CI Success"
- ]
- },
- "repositories": {
- "lux-map": {
- "type": "composer",
- "url": "https://satis.luxcreo.cn/"
- },
- "packagist": {
- "type": "composer",
- "url": "https://mirrors.cloud.tencent.com/composer/"
- }
- },
- "version": "0.5.1"
+ "packagist": {
+ "type": "composer",
+ "url": "https://mirrors.aliyun.com/composer/"
+ }
+ },
+ "version": "0.5.1",
+ "require-dev": {
+ "rector/rector": "^2.0"
+ }
}
diff --git a/composer.lock b/composer.lock
index ee255e7..f111d28 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,23 +4,34 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "64b5fa395a965c4194ea73b14d68a264",
+ "content-hash": "e19693cb62f8eeb86e921c123ab356e8",
"packages": [
{
"name": "aliyuncs/oss-sdk-php",
- "version": "v2.6.0",
+ "version": "v2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git",
+ "reference": "483dd0b8bff5d47f0e4ffc99f6077a295c5ccbb5"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/aliyuncs/oss-sdk-php/v2.6.0/aliyuncs-oss-sdk-php-v2.6.0.zip",
- "reference": "572d0f8e099e8630ae7139ed3fdedb926c7a760f",
- "shasum": ""
+ "url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/483dd0b8bff5d47f0e4ffc99f6077a295c5ccbb5",
+ "reference": "483dd0b8bff5d47f0e4ffc99f6077a295c5ccbb5",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=5.3"
},
"require-dev": {
- "phpunit/phpunit": "*",
- "satooshi/php-coveralls": "*"
+ "php-coveralls/php-coveralls": "*",
+ "phpunit/phpunit": "*"
},
"type": "library",
"autoload": {
@@ -28,6 +39,7 @@
"OSS\\": "src/OSS"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -39,16 +51,31 @@
],
"description": "Aliyun OSS SDK for PHP",
"homepage": "http://www.aliyun.com/product/oss/",
- "time": "2022-08-03T08:06:01+00:00"
+ "support": {
+ "issues": "https://github.com/aliyun/aliyun-oss-php-sdk/issues",
+ "source": "https://github.com/aliyun/aliyun-oss-php-sdk/tree/v2.7.2"
+ },
+ "time": "2024-10-28T10:41:12+00:00"
},
{
"name": "box/spout",
"version": "v3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/box/spout.git",
+ "reference": "9bdb027d312b732515b884a341c0ad70372c6295"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/box/spout/v3.3.0/box-spout-v3.3.0.zip",
+ "url": "https://api.github.com/repos/box/spout/zipball/9bdb027d312b732515b884a341c0ad70372c6295",
"reference": "9bdb027d312b732515b884a341c0ad70372c6295",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-dom": "*",
@@ -75,6 +102,7 @@
"Box\\Spout\\": "src/Spout"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
@@ -103,27 +131,118 @@
"write",
"xlsx"
],
+ "support": {
+ "issues": "https://github.com/box/spout/issues",
+ "source": "https://github.com/box/spout/tree/v3.3.0"
+ },
+ "abandoned": true,
"time": "2021-05-14T21:18:09+00:00"
},
{
- "name": "composer/ca-bundle",
- "version": "1.3.5",
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/ca-bundle/1.3.5/composer-ca-bundle-1.3.5.zip",
- "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd",
- "shasum": ""
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "conflict": {
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^4.0.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "description": "Types to use Carbon in Doctrine",
+ "keywords": [
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-09T16:56:22+00:00"
+ },
+ {
+ "name": "composer/ca-bundle",
+ "version": "1.5.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/ca-bundle.git",
+ "reference": "d665d22c417056996c59019579f1967dfe5c1e82"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/d665d22c417056996c59019579f1967dfe5c1e82",
+ "reference": "d665d22c417056996c59019579f1967dfe5c1e82",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-openssl": "*",
"ext-pcre": "*",
- "php": "^5.3.2 || ^7.0 || ^8.0"
+ "php": "^7.2 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^0.12.55",
- "psr/log": "^1.0",
- "symfony/phpunit-bridge": "^4.2 || ^5",
- "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8 || ^9",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"type": "library",
"extra": {
@@ -136,6 +255,7 @@
"Composer\\CaBundle\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -154,29 +274,59 @@
"ssl",
"tls"
],
- "time": "2023-01-11T08:27:00+00:00"
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/ca-bundle/issues",
+ "source": "https://github.com/composer/ca-bundle/tree/1.5.7"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-05-26T15:08:54+00:00"
},
{
"name": "composer/class-map-generator",
- "version": "1.0.0",
+ "version": "1.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/class-map-generator.git",
+ "reference": "134b705ddb0025d397d8318a75825fe3c9d1da34"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/class-map-generator/1.0.0/composer-class-map-generator-1.0.0.zip",
- "reference": "1e1cb2b791facb2dfe32932a7718cf2571187513",
- "shasum": ""
+ "url": "https://api.github.com/repos/composer/class-map-generator/zipball/134b705ddb0025d397d8318a75825fe3c9d1da34",
+ "reference": "134b705ddb0025d397d8318a75825fe3c9d1da34",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "composer/pcre": "^2 || ^3",
+ "composer/pcre": "^2.1 || ^3.1",
"php": "^7.2 || ^8.0",
- "symfony/finder": "^4.4 || ^5.3 || ^6"
+ "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
},
"require-dev": {
- "phpstan/phpstan": "^1.6",
- "phpstan/phpstan-deprecation-rules": "^1",
- "phpstan/phpstan-phpunit": "^1",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/filesystem": "^5.4 || ^6",
- "symfony/phpunit-bridge": "^5"
+ "phpstan/phpstan": "^1.12 || ^2",
+ "phpstan/phpstan-deprecation-rules": "^1 || ^2",
+ "phpstan/phpstan-phpunit": "^1 || ^2",
+ "phpstan/phpstan-strict-rules": "^1.1 || ^2",
+ "phpunit/phpunit": "^8",
+ "symfony/filesystem": "^5.4 || ^6"
},
"type": "library",
"extra": {
@@ -189,6 +339,7 @@
"Composer\\ClassMapGenerator\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -203,47 +354,76 @@
"keywords": [
"classmap"
],
- "time": "2022-06-19T11:31:27+00:00"
+ "support": {
+ "issues": "https://github.com/composer/class-map-generator/issues",
+ "source": "https://github.com/composer/class-map-generator/tree/1.6.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-03-24T13:50:44+00:00"
},
{
"name": "composer/composer",
- "version": "2.5.5",
+ "version": "2.7.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/composer.git",
+ "reference": "291942978f39435cf904d33739f98d7d4eca7b23"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/composer/2.5.5/composer-composer-2.5.5.zip",
- "reference": "c7cffaad16a60636a776017eac5bd8cd0095c32f",
- "shasum": ""
+ "url": "https://api.github.com/repos/composer/composer/zipball/291942978f39435cf904d33739f98d7d4eca7b23",
+ "reference": "291942978f39435cf904d33739f98d7d4eca7b23",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"composer/ca-bundle": "^1.0",
- "composer/class-map-generator": "^1.0",
+ "composer/class-map-generator": "^1.3.3",
"composer/metadata-minifier": "^1.0",
"composer/pcre": "^2.1 || ^3.1",
- "composer/semver": "^3.0",
+ "composer/semver": "^3.3",
"composer/spdx-licenses": "^1.5.7",
"composer/xdebug-handler": "^2.0.2 || ^3.0.3",
"justinrainbow/json-schema": "^5.2.11",
"php": "^7.2.5 || ^8.0",
"psr/log": "^1.0 || ^2.0 || ^3.0",
- "react/promise": "^2.8",
+ "react/promise": "^2.8 || ^3",
"seld/jsonlint": "^1.4",
"seld/phar-utils": "^1.2",
"seld/signal-handler": "^2.0",
- "symfony/console": "^5.4.11 || ^6.0.11",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
+ "symfony/console": "^5.4.11 || ^6.0.11 || ^7",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7",
+ "symfony/finder": "^5.4 || ^6.0 || ^7",
"symfony/polyfill-php73": "^1.24",
"symfony/polyfill-php80": "^1.24",
"symfony/polyfill-php81": "^1.24",
- "symfony/process": "^5.4 || ^6.0"
+ "symfony/process": "^5.4 || ^6.0 || ^7"
},
"require-dev": {
- "phpstan/phpstan": "^1.9.3",
- "phpstan/phpstan-deprecation-rules": "^1",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpstan/phpstan-strict-rules": "^1",
- "phpstan/phpstan-symfony": "^1.2.10",
- "symfony/phpunit-bridge": "^6.0"
+ "phpstan/phpstan": "^1.11.0",
+ "phpstan/phpstan-deprecation-rules": "^1.2.0",
+ "phpstan/phpstan-phpunit": "^1.4.0",
+ "phpstan/phpstan-strict-rules": "^1.6.0",
+ "phpstan/phpstan-symfony": "^1.4.0",
+ "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1"
},
"suggest": {
"ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
@@ -255,20 +435,21 @@
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
"phpstan": {
"includes": [
"phpstan/rules.neon"
]
+ },
+ "branch-alias": {
+ "dev-main": "2.7-dev"
}
},
"autoload": {
"psr-4": {
- "Composer\\": "src/Composer"
+ "Composer\\": "src/Composer/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -291,16 +472,47 @@
"dependency",
"package"
],
- "time": "2023-03-21T10:50:05+00:00"
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/composer/issues",
+ "security": "https://github.com/composer/composer/security/policy",
+ "source": "https://github.com/composer/composer/tree/2.7.7"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-10T20:11:12+00:00"
},
{
"name": "composer/metadata-minifier",
"version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/metadata-minifier.git",
+ "reference": "c549d23829536f0d0e984aaabbf02af91f443207"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/metadata-minifier/1.0.0/composer-metadata-minifier-1.0.0.zip",
+ "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207",
"reference": "c549d23829536f0d0e984aaabbf02af91f443207",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
@@ -321,6 +533,7 @@
"Composer\\MetadataMinifier\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -336,29 +549,66 @@
"composer",
"compression"
],
+ "support": {
+ "issues": "https://github.com/composer/metadata-minifier/issues",
+ "source": "https://github.com/composer/metadata-minifier/tree/1.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
"time": "2021-04-07T13:37:33+00:00"
},
{
"name": "composer/pcre",
- "version": "3.1.0",
+ "version": "3.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/pcre/3.1.0/composer-pcre-3.1.0.zip",
- "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
- "shasum": ""
+ "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.4 || ^8.0"
},
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
+ },
"require-dev": {
- "phpstan/phpstan": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^5"
+ "phpstan/phpstan": "^1.12 || ^2",
+ "phpstan/phpstan-strict-rules": "^1 || ^2",
+ "phpunit/phpunit": "^8 || ^9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.x-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
}
},
"autoload": {
@@ -366,6 +616,7 @@
"Composer\\Pcre\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -383,23 +634,52 @@
"regex",
"regular expression"
],
- "time": "2022-11-17T09:50:14+00:00"
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.3.2"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-11-12T16:29:46+00:00"
},
{
"name": "composer/semver",
- "version": "3.3.2",
+ "version": "3.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/semver/3.3.2/composer-semver-3.3.2.zip",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "shasum": ""
+ "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.4",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
},
"type": "library",
"extra": {
@@ -412,6 +692,7 @@
"Composer\\Semver\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -439,16 +720,46 @@
"validation",
"versioning"
],
- "time": "2022-04-01T19:23:25+00:00"
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.4.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T14:15:21+00:00"
},
{
"name": "composer/spdx-licenses",
- "version": "1.5.7",
+ "version": "1.5.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/spdx-licenses.git",
+ "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/spdx-licenses/1.5.7/composer-spdx-licenses-1.5.7.zip",
- "reference": "c848241796da2abf65837d51dce1fae55a960149",
- "shasum": ""
+ "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+ "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
@@ -468,6 +779,7 @@
"Composer\\Spdx\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -494,16 +806,46 @@
"spdx",
"validator"
],
- "time": "2022-05-23T07:37:50+00:00"
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/spdx-licenses/issues",
+ "source": "https://github.com/composer/spdx-licenses/tree/1.5.8"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-20T07:44:33+00:00"
},
{
"name": "composer/xdebug-handler",
"version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "ced299686f41dce890debac69273b47ffe98a40c"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/composer/xdebug-handler/3.0.3/composer-xdebug-handler-3.0.3.zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
"reference": "ced299686f41dce890debac69273b47ffe98a40c",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"composer/pcre": "^1 || ^2 || ^3",
@@ -521,6 +863,7 @@
"Composer\\XdebugHandler\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -535,16 +878,46 @@
"Xdebug",
"performance"
],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
"time": "2022-02-25T21:32:43+00:00"
},
{
"name": "doctrine/annotations",
"version": "1.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/doctrine/annotations/1.14.3/doctrine-annotations-1.14.3.zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
"reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"doctrine/lexer": "^1 || ^2",
@@ -569,6 +942,7 @@
"Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -601,24 +975,41 @@
"docblock",
"parser"
],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/1.14.3"
+ },
"time": "2023-02-01T09:20:38+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "v1.0.0",
+ "version": "1.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/doctrine/deprecations/v1.0.0/doctrine-deprecations-v1.0.0.zip",
- "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
- "shasum": ""
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": "^7.1|^8.0"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpunit/phpunit": "^7.5|^8.5|^9.5",
- "psr/log": "^1|^2|^3"
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "1.4.10 || 2.0.3",
+ "phpstan/phpstan-phpunit": "^1.0 || ^2",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psr/log": "^1 || ^2 || ^3"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
@@ -626,35 +1017,51 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ "Doctrine\\Deprecations\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
"homepage": "https://www.doctrine-project.org/",
- "time": "2022-05-02T15:47:09+00:00"
+ "support": {
+ "issues": "https://github.com/doctrine/deprecations/issues",
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.4"
+ },
+ "time": "2024-12-07T21:18:45+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.6",
+ "version": "2.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/doctrine/inflector/2.0.6/doctrine-inflector-2.0.6.zip",
- "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
- "shasum": ""
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
+ "doctrine/coding-standard": "^11.0",
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^1.1",
"phpstan/phpstan-strict-rules": "^1.3",
"phpunit/phpunit": "^8.5 || ^9.5",
- "vimeo/psalm": "^4.25"
+ "vimeo/psalm": "^4.25 || ^5.4"
},
"type": "library",
"autoload": {
@@ -662,6 +1069,7 @@
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -701,16 +1109,45 @@
"uppercase",
"words"
],
- "time": "2022-10-20T09:10:12+00:00"
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+ },
+ "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%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-18T20:23:39+00:00"
},
{
"name": "doctrine/instantiator",
"version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/doctrine/instantiator/1.5.0/doctrine-instantiator-1.5.0.zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
"reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.1 || ^8.0"
@@ -731,6 +1168,7 @@
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -747,27 +1185,56 @@
"constructor",
"instantiate"
],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ },
+ "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%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
"time": "2022-12-30T00:15:36+00:00"
},
{
"name": "doctrine/lexer",
- "version": "2.1.0",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/doctrine/lexer/2.1.0/doctrine-lexer-2.1.0.zip",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
- "shasum": ""
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
+ "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"doctrine/deprecations": "^1.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^10",
+ "doctrine/coding-standard": "^9 || ^12",
"phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
"psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^4.11 || ^5.0"
+ "vimeo/psalm": "^4.11 || ^5.21"
},
"type": "library",
"autoload": {
@@ -775,6 +1242,7 @@
"Doctrine\\Common\\Lexer\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -801,16 +1269,45 @@
"parser",
"php"
],
- "time": "2022-12-14T08:49:07+00:00"
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/2.1.1"
+ },
+ "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": "2024-02-05T11:35:39+00:00"
},
{
"name": "egulias/email-validator",
- "version": "3.2.5",
+ "version": "3.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.tencent.com/repository/composer/egulias/email-validator/3.2.5/egulias-email-validator-3.2.5.zip",
- "reference": "b531a2311709443320c786feb4519cfaf94af796",
- "shasum": ""
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7",
+ "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"doctrine/lexer": "^1.2|^2",
@@ -835,6 +1332,7 @@
"Egulias\\EmailValidator\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -852,31 +1350,60 @@
"validation",
"validator"
],
- "time": "2023-01-02T17:26:14+00:00"
+ "support": {
+ "issues": "https://github.com/egulias/EmailValidator/issues",
+ "source": "https://github.com/egulias/EmailValidator/tree/3.2.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/egulias",
+ "type": "github"
+ }
+ ],
+ "time": "2023-06-01T07:04:22+00:00"
},
{
"name": "ergebnis/http-method",
- "version": "2.2.0",
+ "version": "2.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/http-method.git",
+ "reference": "49e4ef59b4740c0ce43d08965bbb6752b1c3cc44"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/ergebnis/http-method/2.2.0/ergebnis-http-method-2.2.0.zip",
- "reference": "d5211663783f2d2be21b10f5279c70defcd20976",
- "shasum": ""
+ "url": "https://api.github.com/repos/ergebnis/http-method/zipball/49e4ef59b4740c0ce43d08965bbb6752b1c3cc44",
+ "reference": "49e4ef59b4740c0ce43d08965bbb6752b1c3cc44",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": "^7.4 || ^8.0"
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"require-dev": {
- "ergebnis/composer-normalize": "^2.18.0",
- "ergebnis/license": "^1.1.0",
- "ergebnis/php-cs-fixer-config": "^3.4.0",
- "ergebnis/test-util": "^1.5.0",
- "phpunit/phpunit": "^9.5.11",
- "psalm/plugin-phpunit": "~0.16.1",
- "vimeo/psalm": "^4.16.1"
+ "ergebnis/composer-normalize": "^2.48.1",
+ "ergebnis/license": "^2.7.0",
+ "ergebnis/php-cs-fixer-config": "^6.53.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.20.0",
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.10",
+ "phpstan/phpstan-deprecation-rules": "^1.2.1",
+ "phpstan/phpstan-phpunit": "^1.4.0",
+ "phpstan/phpstan-strict-rules": "^1.6.1",
+ "phpunit/phpunit": "^10.5.26",
+ "rector/rector": "^1.2.10",
+ "roave/backward-compatibility-check": "^8.6.0"
},
"type": "library",
"extra": {
+ "branch-alias": {
+ "dev-main": "2.6-dev"
+ },
"composer-normalize": {
"indent-size": 2,
"indent-style": "space"
@@ -887,13 +1414,15 @@
"Ergebnis\\Http\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Andreas Möller",
- "email": "am@localheinz.com"
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
}
],
"description": "Provides constants for HTTP request methods.",
@@ -903,16 +1432,32 @@
"method",
"request"
],
- "time": "2021-12-28T10:07:19+00:00"
+ "support": {
+ "issues": "https://github.com/ergebnis/http-method/issues",
+ "security": "https://github.com/ergebnis/http-method/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/http-method"
+ },
+ "time": "2025-09-02T08:26:08+00:00"
},
{
"name": "fig/http-message-util",
"version": "1.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message-util.git",
+ "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/fig/http-message-util/1.1.5/fig-http-message-util-1.1.5.zip",
+ "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765",
"reference": "9d94dc0154230ac39e5bf89398b324a86f63f765",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.3 || ^7.0 || ^8.0"
@@ -931,6 +1476,7 @@
"Fig\\Http\\Message\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -949,30 +1495,47 @@
"request",
"response"
],
+ "support": {
+ "issues": "https://github.com/php-fig/http-message-util/issues",
+ "source": "https://github.com/php-fig/http-message-util/tree/1.1.5"
+ },
"time": "2020-11-24T22:02:12+00:00"
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.1",
+ "version": "1.1.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "9d6c1d7ce69a3329936e603617e59ba205ab0a66"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/graham-campbell/result-type/v1.1.1/graham-campbell-result-type-v1.1.1.zip",
- "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
- "shasum": ""
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/9d6c1d7ce69a3329936e603617e59ba205ab0a66",
+ "reference": "9d6c1d7ce69a3329936e603617e59ba205ab0a66",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.1"
+ "phpoption/phpoption": "^1.9.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7"
},
+ "default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
"GrahamCampbell\\ResultType\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -991,21 +1554,46 @@
"Result-Type",
"result"
],
- "time": "2023-02-25T20:23:15+00:00"
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-02-09T22:43:44+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.5.0",
+ "version": "7.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/guzzlehttp/guzzle/7.5.0/guzzlehttp-guzzle-7.5.0.zip",
- "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba",
- "shasum": ""
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.5",
- "guzzlehttp/psr7": "^1.9 || ^2.4",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+ "guzzlehttp/psr7": "^2.7.0",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
@@ -1014,10 +1602,11 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
- "php-http/client-integration-tests": "^3.0",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23",
+ "guzzle/client-integration-tests": "3.0.2",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -1030,9 +1619,6 @@
"bamarni-bin": {
"bin-links": true,
"forward-command": false
- },
- "branch-alias": {
- "dev-master": "7.5-dev"
}
},
"autoload": {
@@ -1043,6 +1629,7 @@
"GuzzleHttp\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1095,37 +1682,66 @@
"rest",
"web service"
],
- "time": "2022-08-28T15:39:27+00:00"
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-24T11:22:20+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.2",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "481557b130ef3790cf82b713667b43030dc9c957"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/guzzlehttp/promises/1.5.2/guzzlehttp-promises-1.5.2.zip",
- "reference": "b94b2807d85443f9719887892882d0329d1e2598",
- "shasum": ""
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957",
+ "reference": "481557b130ef3790cf82b713667b43030dc9c957",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=5.5"
+ "php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.44 || ^9.6.25"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "1.5-dev"
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
}
},
"autoload": {
- "files": [
- "src/functions_include.php"
- ],
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1155,21 +1771,50 @@
"keywords": [
"promise"
],
- "time": "2022-08-28T14:55:35+00:00"
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-08-22T14:34:08+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.4.4",
+ "version": "2.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "21dc724a0583619cd1652f673303492272778051"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/guzzlehttp/psr7/2.4.4/guzzlehttp-psr7-2.4.4.zip",
- "reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
- "shasum": ""
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051",
+ "reference": "21dc724a0583619cd1652f673303492272778051",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2.5 || ^8.0",
"psr/http-factory": "^1.0",
- "psr/http-message": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
"ralouphie/getallheaders": "^3.0"
},
"provide": {
@@ -1177,9 +1822,9 @@
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "0.9.0",
+ "phpunit/phpunit": "^8.5.44 || ^9.6.25"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -1189,9 +1834,6 @@
"bamarni-bin": {
"bin-links": true,
"forward-command": false
- },
- "branch-alias": {
- "dev-master": "2.4-dev"
}
},
"autoload": {
@@ -1199,6 +1841,7 @@
"GuzzleHttp\\Psr7\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1250,16 +1893,45 @@
"uri",
"url"
],
- "time": "2023-03-09T13:19:02+00:00"
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-08-23T21:21:41+00:00"
},
{
"name": "hyperf/amqp",
"version": "v2.2.37",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/amqp.git",
+ "reference": "01b18eb54909629ea22f35140a77c12f1ae8cde0"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/amqp/v2.2.37/hyperf-amqp-v2.2.37.zip",
+ "url": "https://api.github.com/repos/hyperf/amqp/zipball/01b18eb54909629ea22f35140a77c12f1ae8cde0",
"reference": "01b18eb54909629ea22f35140a77c12f1ae8cde0",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"doctrine/instantiator": "^1.2.0",
@@ -1279,11 +1951,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Amqp\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1291,6 +1963,7 @@
"Hyperf\\Amqp\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1301,16 +1974,33 @@
"hyperf",
"php"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2023-01-19T06:44:45+00:00"
},
{
"name": "hyperf/async-queue",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/async-queue.git",
+ "reference": "6e8da55c8b19322023d5fdd970bcbddf774e79f0"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/async-queue/v2.2.33/hyperf-async-queue-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/async-queue/zipball/6e8da55c8b19322023d5fdd970bcbddf774e79f0",
"reference": "6e8da55c8b19322023d5fdd970bcbddf774e79f0",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/command": "~2.2.0",
@@ -1328,11 +2018,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\AsyncQueue\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1340,6 +2030,7 @@
"Hyperf\\AsyncQueue\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1350,16 +2041,33 @@
"hyperf",
"php"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/cache",
- "version": "v2.2.33",
+ "version": "v2.2.40",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/cache.git",
+ "reference": "118ca172828d51f5eea6e3d654df6275705ddeef"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/cache/v2.2.33/hyperf-cache-v2.2.33.zip",
- "reference": "5d133778db7b38bd40be8ef970dcb2d75a5b68ed",
- "shasum": ""
+ "url": "https://api.github.com/repos/hyperf/cache/zipball/118ca172828d51f5eea6e3d654df6275705ddeef",
+ "reference": "118ca172828d51f5eea6e3d654df6275705ddeef",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -1374,11 +2082,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Cache\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1386,6 +2094,7 @@
"Hyperf\\Cache\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1396,16 +2105,33 @@
"hyperf",
"php"
],
- "time": "2022-05-24T13:10:54+00:00"
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
+ "time": "2023-06-19T10:24:33+00:00"
},
{
"name": "hyperf/command",
"version": "v2.2.35",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/command.git",
+ "reference": "48cd9789166ecf5f3009de45bcf128b997ec5f88"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/command/v2.2.35/hyperf-command-v2.2.35.zip",
+ "url": "https://api.github.com/repos/hyperf/command/zipball/48cd9789166ecf5f3009de45bcf128b997ec5f88",
"reference": "48cd9789166ecf5f3009de45bcf128b997ec5f88",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/utils": "~2.2.0",
@@ -1427,6 +2153,7 @@
"Hyperf\\Command\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1436,16 +2163,31 @@
"php",
"swoole"
],
+ "support": {
+ "issues": "https://github.com/hyperf/command/issues",
+ "source": "https://github.com/hyperf/command/tree/v2.2.35"
+ },
"time": "2022-08-27T07:28:56+00:00"
},
{
"name": "hyperf/config",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/config.git",
+ "reference": "9437f45aea36358840c907691e9b28492550e9a3"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/config/v2.2.33/hyperf-config-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/config/zipball/9437f45aea36358840c907691e9b28492550e9a3",
"reference": "9437f45aea36358840c907691e9b28492550e9a3",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -1462,11 +2204,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Config\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1477,6 +2219,7 @@
"Hyperf\\Config\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1489,16 +2232,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/constants",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/constants.git",
+ "reference": "adb652d446bde384af9ad907cfabe900f3dd08b8"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/constants/v2.2.33/hyperf-constants-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/constants/zipball/adb652d446bde384af9ad907cfabe900f3dd08b8",
"reference": "adb652d446bde384af9ad907cfabe900f3dd08b8",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/di": "~2.2.0",
@@ -1510,11 +2270,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Constants\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1522,6 +2282,7 @@
"Hyperf\\Constants\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1532,16 +2293,33 @@
"hyperf",
"php"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/context",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/context.git",
+ "reference": "f2e77442693a07d47f7ca97f8b2fdb8e17196a47"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/context/v2.2.33/hyperf-context-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/context/zipball/f2e77442693a07d47f7ca97f8b2fdb8e17196a47",
"reference": "f2e77442693a07d47f7ca97f8b2fdb8e17196a47",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/engine": "^1.1",
@@ -1558,6 +2336,7 @@
"Hyperf\\Context\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1569,16 +2348,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/contract",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/contract.git",
+ "reference": "1ebf037c91d76ec05af9e5cb3335b0f5ec810e27"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/contract/v2.2.33/hyperf-contract-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/contract/zipball/1ebf037c91d76ec05af9e5cb3335b0f5ec810e27",
"reference": "1ebf037c91d76ec05af9e5cb3335b0f5ec810e27",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2"
@@ -1594,6 +2390,7 @@
"Hyperf\\Contract\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1604,16 +2401,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/crontab",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/crontab.git",
+ "reference": "64e1a6db961fdf46a111ec172956abb5a386511c"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/crontab/v2.2.33/hyperf-crontab-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/crontab/zipball/64e1a6db961fdf46a111ec172956abb5a386511c",
"reference": "64e1a6db961fdf46a111ec172956abb5a386511c",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/utils": "~2.2.0",
@@ -1622,11 +2436,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Crontab\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1634,6 +2448,7 @@
"Hyperf\\Crontab\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1645,16 +2460,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/database",
- "version": "v2.2.39",
+ "version": "v2.2.41",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/database.git",
+ "reference": "b4c8f8e8f417b11754d4e94fedafc7eec273b188"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/database/v2.2.39/hyperf-database-v2.2.39.zip",
- "reference": "6105b9539aa4db7d615b2fef2687655a7a5df56c",
- "shasum": ""
+ "url": "https://api.github.com/repos/hyperf/database/zipball/b4c8f8e8f417b11754d4e94fedafc7eec273b188",
+ "reference": "b4c8f8e8f417b11754d4e94fedafc7eec273b188",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/macroable": "~2.2.0",
@@ -1680,6 +2512,7 @@
"Hyperf\\Database\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1690,16 +2523,43 @@
"hyperf",
"php"
],
- "time": "2023-02-09T02:50:06+00:00"
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
+ "funding": [
+ {
+ "url": "https://hyperf.wiki/#/zh-cn/donate",
+ "type": "custom"
+ },
+ {
+ "url": "https://opencollective.com/hyperf",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-16T12:32:45+00:00"
},
{
"name": "hyperf/db-connection",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/db-connection.git",
+ "reference": "05d2a1e858f01682739e066430b339a9bcdef837"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/db-connection/v2.2.33/hyperf-db-connection-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/db-connection/zipball/05d2a1e858f01682739e066430b339a9bcdef837",
"reference": "05d2a1e858f01682739e066430b339a9bcdef837",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/database": "~2.2.0",
@@ -1712,11 +2572,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\DbConnection\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1724,6 +2584,7 @@
"Hyperf\\DbConnection\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1735,16 +2596,33 @@
"hyperf",
"php"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/di",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/di.git",
+ "reference": "471c3cf9e0c02ab3aaa0c6e9884062bd541e4577"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/di/v2.2.33/hyperf-di-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/di/zipball/471c3cf9e0c02ab3aaa0c6e9884062bd541e4577",
"reference": "471c3cf9e0c02ab3aaa0c6e9884062bd541e4577",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"doctrine/annotations": "^1.6",
@@ -1762,11 +2640,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Di\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1774,6 +2652,7 @@
"Hyperf\\Di\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1786,16 +2665,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/dispatcher",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/dispatcher.git",
+ "reference": "bcffa8faa11367204c4e00e93f6425d600603e03"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/dispatcher/v2.2.33/hyperf-dispatcher-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/dispatcher/zipball/bcffa8faa11367204c4e00e93f6425d600603e03",
"reference": "bcffa8faa11367204c4e00e93f6425d600603e03",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -1806,11 +2702,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Dispatcher\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1818,6 +2714,7 @@
"Hyperf\\Dispatcher\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1831,23 +2728,41 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/engine",
- "version": "v1.2.2",
+ "version": "v1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/engine.git",
+ "reference": "79f74c18be466059bed1abc9b9db5920516c6258"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/engine/v1.2.2/hyperf-engine-v1.2.2.zip",
- "reference": "12fdb2b4cec9ee92fc808321a7378cc6251e52cd",
- "shasum": ""
+ "url": "https://api.github.com/repos/hyperf/engine/zipball/79f74c18be466059bed1abc9b9db5920516c6258",
+ "reference": "79f74c18be466059bed1abc9b9db5920516c6258",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.4"
+ "php": ">=8.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.0",
- "hyperf/guzzle": "^2.2",
+ "hyperf/guzzle": "^2.2||^3.0",
+ "hyperf/http-message": " ^2.0||^3.0",
"phpstan/phpstan": "^1.0",
"phpunit/phpunit": "^9.4",
"swoole/ide-helper": "dev-master"
@@ -1857,8 +2772,11 @@
},
"type": "library",
"extra": {
+ "hyperf": {
+ "config": "Hyperf\\Engine\\ConfigProvider"
+ },
"branch-alias": {
- "dev-master": "1.2-dev"
+ "dev-master": "1.10-dev"
}
},
"autoload": {
@@ -1866,6 +2784,7 @@
"Hyperf\\Engine\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1873,16 +2792,41 @@
"hyperf",
"php"
],
- "time": "2022-08-06T05:25:43+00:00"
+ "support": {
+ "issues": "https://github.com/hyperf/engine/issues",
+ "source": "https://github.com/hyperf/engine/tree/v1.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://hyperf.wiki/#/zh-cn/donate",
+ "type": "custom"
+ },
+ {
+ "url": "https://opencollective.com/hyperf",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2025-04-13T14:50:32+00:00"
},
{
"name": "hyperf/event",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/event.git",
+ "reference": "cd92f5c1218c65f29b15c4d12dcf5835e0426ac8"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/event/v2.2.33/hyperf-event-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/event/zipball/cd92f5c1218c65f29b15c4d12dcf5835e0426ac8",
"reference": "cd92f5c1218c65f29b15c4d12dcf5835e0426ac8",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -1894,11 +2838,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Event\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1906,6 +2850,7 @@
"Hyperf\\Event\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1917,16 +2862,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/exception-handler",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/exception-handler.git",
+ "reference": "4ec8f6debf530b661bb2b436ef96da53ce0abbdc"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/exception-handler/v2.2.33/hyperf-exception-handler-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/exception-handler/zipball/4ec8f6debf530b661bb2b436ef96da53ce0abbdc",
"reference": "4ec8f6debf530b661bb2b436ef96da53ce0abbdc",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -1938,11 +2900,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\ExceptionHandler\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -1950,6 +2912,7 @@
"Hyperf\\ExceptionHandler\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -1960,16 +2923,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/filesystem",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/filesystem.git",
+ "reference": "58fe056bf50f732482fe4bd8946a8e3b9a1640d3"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/filesystem/v2.2.33/hyperf-filesystem-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/filesystem/zipball/58fe056bf50f732482fe4bd8946a8e3b9a1640d3",
"reference": "58fe056bf50f732482fe4bd8946a8e3b9a1640d3",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/di": "~2.2.0",
@@ -1988,11 +2968,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Filesystem\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2003,6 +2983,7 @@
"Hyperf\\Filesystem\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2011,16 +2992,31 @@
"hyperf",
"php"
],
+ "support": {
+ "issues": "https://github.com/hyperf/filesystem/issues",
+ "source": "https://github.com/hyperf/filesystem/tree/v2.2.33"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/framework",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/framework.git",
+ "reference": "49e98fb747214bcac79aecadda8349e70b8f2891"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/framework/v2.2.33/hyperf-framework-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/framework/zipball/49e98fb747214bcac79aecadda8349e70b8f2891",
"reference": "49e98fb747214bcac79aecadda8349e70b8f2891",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"fig/http-message-util": "^1.1.2",
@@ -2040,11 +3036,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Framework\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2052,6 +3048,7 @@
"Hyperf\\Framework\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2065,16 +3062,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/guzzle",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/guzzle.git",
+ "reference": "ef4d6b02778cf44b7f0edefd9c33a5d8d08ad48f"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/guzzle/v2.2.33/hyperf-guzzle-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/guzzle/zipball/ef4d6b02778cf44b7f0edefd9c33a5d8d08ad48f",
"reference": "ef4d6b02778cf44b7f0edefd9c33a5d8d08ad48f",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"guzzlehttp/guzzle": "^6.3|^7.0",
@@ -2088,11 +3102,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Guzzle\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2100,6 +3114,7 @@
"Hyperf\\Guzzle\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2110,16 +3125,31 @@
"php",
"swoole"
],
+ "support": {
+ "issues": "https://github.com/hyperf/guzzle/issues",
+ "source": "https://github.com/hyperf/guzzle/tree/v2.2.33"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/http-message",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/http-message.git",
+ "reference": "d71d796177ec72fe30d116c57ed8bd8121a57b6e"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/http-message/v2.2.33/hyperf-http-message-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/http-message/zipball/d71d796177ec72fe30d116c57ed8bd8121a57b6e",
"reference": "d71d796177ec72fe30d116c57ed8bd8121a57b6e",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/utils": "~2.2.0",
@@ -2131,11 +3161,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\HttpMessage\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2143,6 +3173,7 @@
"Hyperf\\HttpMessage\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2153,16 +3184,31 @@
"php",
"swoole"
],
+ "support": {
+ "issues": "https://github.com/hyperf/http-message/issues",
+ "source": "https://github.com/hyperf/http-message/tree/v2.2.33"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/http-server",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/http-server.git",
+ "reference": "0f1f22d408de82c9f8fb3f2cf57457e319210798"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/http-server/v2.2.33/hyperf-http-server-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/http-server/zipball/0f1f22d408de82c9f8fb3f2cf57457e319210798",
"reference": "0f1f22d408de82c9f8fb3f2cf57457e319210798",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2182,11 +3228,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\HttpServer\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2194,6 +3240,7 @@
"Hyperf\\HttpServer\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2206,16 +3253,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/logger",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/logger.git",
+ "reference": "f19929efaeca4aba2b91e7452f4f1b3245bfac51"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/logger/v2.2.33/hyperf-logger-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/logger/zipball/f19929efaeca4aba2b91e7452f4f1b3245bfac51",
"reference": "f19929efaeca4aba2b91e7452f4f1b3245bfac51",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2230,11 +3294,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Logger\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2242,6 +3306,7 @@
"Hyperf\\Logger\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2252,16 +3317,33 @@
"logger",
"php"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/macroable",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/macroable.git",
+ "reference": "e4e1b3ed614a5a9d4c24a48b0b3a554eb712af9f"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/macroable/v2.2.33/hyperf-macroable-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/macroable/zipball/e4e1b3ed614a5a9d4c24a48b0b3a554eb712af9f",
"reference": "e4e1b3ed614a5a9d4c24a48b0b3a554eb712af9f",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -2277,6 +3359,7 @@
"Hyperf\\Macroable\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2288,27 +3371,44 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/memory",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/memory.git",
+ "reference": "8adfac46a0f52385a4ad2e8bc4f956c34cb6f25e"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/memory/v2.2.33/hyperf-memory-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/memory/zipball/8adfac46a0f52385a4ad2e8bc4f956c34cb6f25e",
"reference": "8adfac46a0f52385a4ad2e8bc4f956c34cb6f25e",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Memory\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2316,6 +3416,7 @@
"Hyperf\\Memory\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2327,16 +3428,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/metric",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/metric.git",
+ "reference": "3f5cfb5bc477821df4fd7ba248b8ae21ad4eeb6e"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/metric/v2.2.33/hyperf-metric-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/metric/zipball/3f5cfb5bc477821df4fd7ba248b8ae21ad4eeb6e",
"reference": "3f5cfb5bc477821df4fd7ba248b8ae21ad4eeb6e",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2359,11 +3477,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Metric\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2371,6 +3489,7 @@
"Hyperf\\Metric\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2383,16 +3502,31 @@
"prometheus",
"statsd"
],
+ "support": {
+ "issues": "https://github.com/hyperf/metric/issues",
+ "source": "https://github.com/hyperf/metric/tree/v2.2.33"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/model-listener",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/model-listener.git",
+ "reference": "0ac64b517db0d9e192650cd70f81a2962cd54e63"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/model-listener/v2.2.33/hyperf-model-listener-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/model-listener/zipball/0ac64b517db0d9e192650cd70f81a2962cd54e63",
"reference": "0ac64b517db0d9e192650cd70f81a2962cd54e63",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2405,11 +3539,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\ModelListener\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2417,6 +3551,7 @@
"Hyperf\\ModelListener\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2428,16 +3563,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/nsq",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/nsq.git",
+ "reference": "4f0e74b7d6391aec6d85172201091d9d285061cc"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/nsq/v2.2.33/hyperf-nsq-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/nsq/zipball/4f0e74b7d6391aec6d85172201091d9d285061cc",
"reference": "4f0e74b7d6391aec6d85172201091d9d285061cc",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-bcmath": "*",
@@ -2451,11 +3603,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Nsq\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2463,6 +3615,7 @@
"Hyperf\\Nsq\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2474,16 +3627,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/pool",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/pool.git",
+ "reference": "b66965453f404f09570a166e9c103a074d2dbd4e"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/pool/v2.2.33/hyperf-pool-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/pool/zipball/b66965453f404f09570a166e9c103a074d2dbd4e",
"reference": "b66965453f404f09570a166e9c103a074d2dbd4e",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2493,11 +3663,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Pool\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2505,6 +3675,7 @@
"Hyperf\\Pool\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2516,16 +3687,33 @@
"php",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/process",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/process.git",
+ "reference": "a93b2a4bf0455e3f639649046705e7b3b6ccd137"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/process/v2.2.33/hyperf-process-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/process/zipball/a93b2a4bf0455e3f639649046705e7b3b6ccd137",
"reference": "a93b2a4bf0455e3f639649046705e7b3b6ccd137",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2541,11 +3729,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Process\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2553,6 +3741,7 @@
"Hyperf\\Process\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2563,16 +3752,33 @@
"php",
"process"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/redis",
"version": "v2.2.37",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/redis.git",
+ "reference": "89f6c0063c69dc27adb094277947af30d2e59ad0"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/redis/v2.2.37/hyperf-redis-v2.2.37.zip",
+ "url": "https://api.github.com/repos/hyperf/redis/zipball/89f6c0063c69dc27adb094277947af30d2e59ad0",
"reference": "89f6c0063c69dc27adb094277947af30d2e59ad0",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-redis": "*",
@@ -2588,11 +3794,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Redis\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2600,6 +3806,7 @@
"Hyperf\\Redis\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2611,16 +3818,33 @@
"pool",
"redis"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2023-02-04T09:57:22+00:00"
},
{
"name": "hyperf/server",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/server.git",
+ "reference": "1d3364520e37777a7ed83d8bc1597da42f8d6c1b"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/server/v2.2.33/hyperf-server-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/server/zipball/1d3364520e37777a7ed83d8bc1597da42f8d6c1b",
"reference": "1d3364520e37777a7ed83d8bc1597da42f8d6c1b",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2637,11 +3861,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Server\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2649,6 +3873,7 @@
"Hyperf\\Server\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2660,16 +3885,33 @@
"server",
"swoole"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/snowflake",
"version": "v2.2.33.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/snowflake.git",
+ "reference": "7e982676083761f3eb8f9c5267cd2c7e1253917b"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/snowflake/v2.2.33.1/hyperf-snowflake-v2.2.33.1.zip",
+ "url": "https://api.github.com/repos/hyperf/snowflake/zipball/7e982676083761f3eb8f9c5267cd2c7e1253917b",
"reference": "7e982676083761f3eb8f9c5267cd2c7e1253917b",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2682,11 +3924,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Snowflake\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2694,6 +3936,7 @@
"Hyperf\\Snowflake\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2703,16 +3946,33 @@
"php",
"snowflake"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-05-30T11:55:54+00:00"
},
{
"name": "hyperf/translation",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/translation.git",
+ "reference": "66c018e6e1605a446db212b0d3905e1d816dba77"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/translation/v2.2.33/hyperf-translation-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/translation/zipball/66c018e6e1605a446db212b0d3905e1d816dba77",
"reference": "66c018e6e1605a446db212b0d3905e1d816dba77",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hyperf/contract": "~2.2.0",
@@ -2723,11 +3983,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Translation\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2738,6 +3998,7 @@
"Hyperf\\Translation\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2746,16 +4007,31 @@
"hyperf",
"translation"
],
+ "support": {
+ "issues": "https://github.com/hyperf/translation/issues",
+ "source": "https://github.com/hyperf/translation/tree/v2.2.33"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "hyperf/utils",
"version": "v2.2.34",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/utils.git",
+ "reference": "9c8519392166a6c8057cc52f7d02e1ac638581f5"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/utils/v2.2.34/hyperf-utils-v2.2.34.zip",
+ "url": "https://api.github.com/repos/hyperf/utils/zipball/9c8519392166a6c8057cc52f7d02e1ac638581f5",
"reference": "9c8519392166a6c8057cc52f7d02e1ac638581f5",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"doctrine/inflector": "^2.0",
@@ -2790,6 +4066,7 @@
"Hyperf\\Utils\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2801,16 +4078,33 @@
"swoole",
"utils"
],
+ "support": {
+ "docs": "https://hyperf.wiki",
+ "issues": "https://github.com/hyperf/hyperf/issues",
+ "pull-request": "https://github.com/hyperf/hyperf/pulls",
+ "source": "https://github.com/hyperf/hyperf"
+ },
"time": "2022-07-21T05:42:54+00:00"
},
{
"name": "hyperf/validation",
"version": "v2.2.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hyperf/validation.git",
+ "reference": "d4513923ed4cac88b4b5368bc6497b460465c1e0"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/hyperf/validation/v2.2.33/hyperf-validation-v2.2.33.zip",
+ "url": "https://api.github.com/repos/hyperf/validation/zipball/d4513923ed4cac88b4b5368bc6497b460465c1e0",
"reference": "d4513923ed4cac88b4b5368bc6497b460465c1e0",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"egulias/email-validator": "^3.0",
@@ -2830,11 +4124,11 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- },
"hyperf": {
"config": "Hyperf\\Validation\\ConfigProvider"
+ },
+ "branch-alias": {
+ "dev-master": "2.2-dev"
}
},
"autoload": {
@@ -2842,6 +4136,7 @@
"Hyperf\\Validation\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2850,27 +4145,43 @@
"hyperf",
"validation"
],
+ "support": {
+ "issues": "https://github.com/hyperf/validation/issues",
+ "source": "https://github.com/hyperf/validation/tree/v2.2.33"
+ },
"time": "2022-05-24T13:10:54+00:00"
},
{
"name": "jean85/pretty-package-versions",
- "version": "2.0.5",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
+ "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/jean85/pretty-package-versions/2.0.5/jean85-pretty-package-versions-2.0.5.zip",
- "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
- "shasum": ""
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/4d7aa5dab42e2a76d99559706022885de0e18e1a",
+ "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "composer-runtime-api": "^2.0.0",
- "php": "^7.1|^8.0"
+ "composer-runtime-api": "^2.1.0",
+ "php": "^7.4|^8.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.17",
+ "friendsofphp/php-cs-fixer": "^3.2",
"jean85/composer-provided-replaced-stub-package": "^1.0",
- "phpstan/phpstan": "^0.12.66",
- "phpunit/phpunit": "^7.5|^8.5|^9.4",
- "vimeo/psalm": "^4.3"
+ "phpstan/phpstan": "^2.0",
+ "phpunit/phpunit": "^7.5|^8.5|^9.6",
+ "rector/rector": "^2.0",
+ "vimeo/psalm": "^4.3 || ^5.0"
},
"type": "library",
"extra": {
@@ -2883,6 +4194,7 @@
"Jean85\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2899,16 +4211,31 @@
"release",
"versions"
],
- "time": "2021-10-08T21:21:46+00:00"
+ "support": {
+ "issues": "https://github.com/Jean85/pretty-package-versions/issues",
+ "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.1"
+ },
+ "time": "2025-03-19T14:43:43+00:00"
},
{
"name": "jetbrains/phpstorm-attributes",
- "version": "1.0",
+ "version": "1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/JetBrains/phpstorm-attributes.git",
+ "reference": "64de815a4509c29e00d5e3474087fd24c171afc2"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/jetbrains/phpstorm-attributes/1.0/jetbrains-phpstorm-attributes-1.0.zip",
- "reference": "a7a83ae5df4dd3c0875484483de19de8edf60a9f",
- "shasum": ""
+ "url": "https://api.github.com/repos/JetBrains/phpstorm-attributes/zipball/64de815a4509c29e00d5e3474087fd24c171afc2",
+ "reference": "64de815a4509c29e00d5e3474087fd24c171afc2",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"type": "library",
"autoload": {
@@ -2916,6 +4243,7 @@
"JetBrains\\PhpStorm\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
@@ -2931,19 +4259,34 @@
"jetbrains",
"phpstorm"
],
- "time": "2020-11-17T11:09:47+00:00"
+ "support": {
+ "issues": "https://youtrack.jetbrains.com/newIssue?project=WI",
+ "source": "https://github.com/JetBrains/phpstorm-attributes/tree/1.2"
+ },
+ "time": "2024-10-11T10:46:19+00:00"
},
{
"name": "justinrainbow/json-schema",
- "version": "5.2.12",
+ "version": "5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jsonrainbow/json-schema.git",
+ "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/justinrainbow/json-schema/5.2.12/justinrainbow-json-schema-5.2.12.zip",
- "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60",
- "shasum": ""
+ "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
+ "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
@@ -2954,16 +4297,12 @@
"bin/validate-json"
],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"JsonSchema\\": "src/JsonSchema/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -2991,28 +4330,43 @@
"json",
"schema"
],
- "time": "2022-04-13T08:02:27+00:00"
+ "support": {
+ "issues": "https://github.com/jsonrainbow/json-schema/issues",
+ "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0"
+ },
+ "time": "2024-07-06T21:00:26+00:00"
},
{
"name": "laminas/laminas-mime",
- "version": "2.10.0",
+ "version": "2.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-mime.git",
+ "reference": "08cc544778829b7d68d27a097885bd6e7130135e"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/laminas/laminas-mime/2.10.0/laminas-laminas-mime-2.10.0.zip",
- "reference": "62a899a7c9100889c2d2386b1357003a2cb52fa9",
- "shasum": ""
+ "url": "https://api.github.com/repos/laminas/laminas-mime/zipball/08cc544778829b7d68d27a097885bd6e7130135e",
+ "reference": "08cc544778829b7d68d27a097885bd6e7130135e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"laminas/laminas-stdlib": "^2.7 || ^3.0",
- "php": "^7.3 || ~8.0.0 || ~8.1.0"
+ "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
},
"conflict": {
"zendframework/zend-mime": "*"
},
"require-dev": {
- "laminas/laminas-coding-standard": "~2.2.1",
- "laminas/laminas-mail": "^2.12",
- "phpunit/phpunit": "^9.5"
+ "laminas/laminas-coding-standard": "~2.4.0",
+ "laminas/laminas-mail": "^2.19.0",
+ "phpunit/phpunit": "~9.5.25"
},
"suggest": {
"laminas/laminas-mail": "Laminas\\Mail component"
@@ -3023,6 +4377,7 @@
"Laminas\\Mime\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3032,30 +4387,54 @@
"laminas",
"mime"
],
- "time": "2022-08-30T09:38:41+00:00"
+ "support": {
+ "chat": "https://laminas.dev/chat",
+ "docs": "https://docs.laminas.dev/laminas-mime/",
+ "forum": "https://discourse.laminas.dev",
+ "issues": "https://github.com/laminas/laminas-mime/issues",
+ "rss": "https://github.com/laminas/laminas-mime/releases.atom",
+ "source": "https://github.com/laminas/laminas-mime"
+ },
+ "funding": [
+ {
+ "url": "https://funding.communitybridge.org/projects/laminas-project",
+ "type": "community_bridge"
+ }
+ ],
+ "time": "2023-11-02T16:47:19+00:00"
},
{
"name": "laminas/laminas-stdlib",
- "version": "3.13.0",
+ "version": "3.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-stdlib.git",
+ "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/laminas/laminas-stdlib/3.13.0/laminas-laminas-stdlib-3.13.0.zip",
- "reference": "66a6d03c381f6c9f1dd988bf8244f9afb9380d76",
- "shasum": ""
+ "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/8974a1213be42c3e2f70b2c27b17f910291ab2f4",
+ "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": "^7.4 || ~8.0.0 || ~8.1.0"
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
},
"conflict": {
"zendframework/zend-stdlib": "*"
},
"require-dev": {
- "laminas/laminas-coding-standard": "~2.3.0",
- "phpbench/phpbench": "^1.2.6",
- "phpstan/phpdoc-parser": "^0.5.4",
- "phpunit/phpunit": "^9.5.23",
- "psalm/plugin-phpunit": "^0.17.0",
- "vimeo/psalm": "^4.26"
+ "laminas/laminas-coding-standard": "^3.0",
+ "phpbench/phpbench": "^1.3.1",
+ "phpunit/phpunit": "^10.5.38",
+ "psalm/plugin-phpunit": "^0.19.0",
+ "vimeo/psalm": "^5.26.1"
},
"type": "library",
"autoload": {
@@ -3063,6 +4442,7 @@
"Laminas\\Stdlib\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3072,16 +4452,41 @@
"laminas",
"stdlib"
],
- "time": "2022-08-24T13:56:50+00:00"
+ "support": {
+ "chat": "https://laminas.dev/chat",
+ "docs": "https://docs.laminas.dev/laminas-stdlib/",
+ "forum": "https://discourse.laminas.dev",
+ "issues": "https://github.com/laminas/laminas-stdlib/issues",
+ "rss": "https://github.com/laminas/laminas-stdlib/releases.atom",
+ "source": "https://github.com/laminas/laminas-stdlib"
+ },
+ "funding": [
+ {
+ "url": "https://funding.communitybridge.org/projects/laminas-project",
+ "type": "community_bridge"
+ }
+ ],
+ "time": "2024-10-29T13:46:07+00:00"
},
{
"name": "league/flysystem",
"version": "1.1.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/league/flysystem/1.1.10/league-flysystem-1.1.10.zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1",
"reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-fileinfo": "*",
@@ -3121,6 +4526,7 @@
"League\\Flysystem\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3150,25 +4556,46 @@
"sftp",
"storage"
],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem/issues",
+ "source": "https://github.com/thephpleague/flysystem/tree/1.1.10"
+ },
+ "funding": [
+ {
+ "url": "https://offset.earth/frankdejonge",
+ "type": "other"
+ }
+ ],
"time": "2022-10-04T09:16:37+00:00"
},
{
"name": "league/mime-type-detection",
- "version": "1.11.0",
+ "version": "1.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/league/mime-type-detection/1.11.0/league-mime-type-detection-1.11.0.zip",
- "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
- "shasum": ""
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-fileinfo": "*",
- "php": "^7.2 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.2",
"phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3"
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
},
"type": "library",
"autoload": {
@@ -3176,6 +4603,7 @@
"League\\MimeTypeDetection\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3186,16 +4614,41 @@
}
],
"description": "Mime-type detection for Flysystem",
- "time": "2022-04-17T13:12:02+00:00"
+ "support": {
+ "issues": "https://github.com/thephpleague/mime-type-detection/issues",
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-28T23:22:08+00:00"
},
{
"name": "lmc/http-constants",
"version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/lmc-eu/http-constants.git",
+ "reference": "8cb0fbffdafdf0c0c42e05935fb09cc588633d48"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/lmc/http-constants/1.2.0/lmc-http-constants-1.2.0.zip",
+ "url": "https://api.github.com/repos/lmc-eu/http-constants/zipball/8cb0fbffdafdf0c0c42e05935fb09cc588633d48",
"reference": "8cb0fbffdafdf0c0c42e05935fb09cc588633d48",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2 || ^8.0"
@@ -3212,6 +4665,7 @@
"Lmc\\HttpConstants\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3222,16 +4676,31 @@
"request",
"response"
],
+ "support": {
+ "issues": "https://github.com/lmc-eu/http-constants/issues",
+ "source": "https://github.com/lmc-eu/http-constants/tree/main"
+ },
"time": "2020-09-01T11:14:36+00:00"
},
{
"name": "monolog/monolog",
"version": "2.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "4192345e260f1d51b365536199744b987e160edc"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/monolog/monolog/2.5.0/monolog-monolog-2.5.0.zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4192345e260f1d51b365536199744b987e160edc",
"reference": "4192345e260f1d51b365536199744b987e160edc",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2",
@@ -3284,6 +4753,7 @@
"Monolog\\": "src/Monolog"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3301,16 +4771,41 @@
"logging",
"psr-3"
],
+ "support": {
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/2.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
"time": "2022-04-08T15:43:54+00:00"
},
{
"name": "myclabs/php-enum",
"version": "1.8.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/php-enum.git",
+ "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/myclabs/php-enum/1.8.4/myclabs-php-enum-1.8.4.zip",
+ "url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483",
"reference": "a867478eae49c9f59ece437ae7f9506bfaa27483",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-json": "*",
@@ -3330,6 +4825,7 @@
"stubs/Stringable.php"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3344,30 +4840,60 @@
"keywords": [
"enum"
],
+ "support": {
+ "issues": "https://github.com/myclabs/php-enum/issues",
+ "source": "https://github.com/myclabs/php-enum/tree/1.8.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/mnapoli",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum",
+ "type": "tidelift"
+ }
+ ],
"time": "2022-08-04T09:53:51+00:00"
},
{
"name": "nesbot/carbon",
- "version": "2.66.0",
+ "version": "2.73.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon.git",
+ "reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/nesbot/carbon/2.66.0/nesbot-carbon-2.66.0.zip",
- "reference": "496712849902241f04902033b0441b269effe001",
- "shasum": ""
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/9228ce90e1035ff2f0db84b40ec2e023ed802075",
+ "reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
+ "carbonphp/carbon-doctrine-types": "*",
"ext-json": "*",
"php": "^7.1.8 || ^8.0",
+ "psr/clock": "^1.0",
"symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.16",
"symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
},
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.1.4",
- "doctrine/orm": "^2.7",
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
- "ondrejmirtes/better-reflection": "*",
+ "ondrejmirtes/better-reflection": "<6",
"phpmd/phpmd": "^2.9",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12.99 || ^1.7.14",
@@ -3380,10 +4906,6 @@
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
- },
"laravel": {
"providers": [
"Carbon\\Laravel\\ServiceProvider"
@@ -3393,6 +4915,10 @@
"includes": [
"extension.neon"
]
+ },
+ "branch-alias": {
+ "dev-2.x": "2.x-dev",
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -3400,6 +4926,7 @@
"Carbon\\": "src/Carbon/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3421,16 +4948,46 @@
"datetime",
"time"
],
- "time": "2023-01-29T18:53:47+00:00"
+ "support": {
+ "docs": "https://carbon.nesbot.com/docs",
+ "issues": "https://github.com/briannesbitt/Carbon/issues",
+ "source": "https://github.com/briannesbitt/Carbon"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon#sponsor",
+ "type": "opencollective"
+ },
+ {
+ "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-01-08T20:10:23+00:00"
},
{
"name": "nette/php-generator",
"version": "v3.6.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/php-generator.git",
+ "reference": "d31782f7bd2ae84ad06f863391ec3fb77ca4d0a6"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/nette/php-generator/v3.6.9/nette-php-generator-v3.6.9.zip",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/d31782f7bd2ae84ad06f863391ec3fb77ca4d0a6",
"reference": "d31782f7bd2ae84ad06f863391ec3fb77ca4d0a6",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"nette/utils": "^3.1.2",
@@ -3456,6 +5013,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0-only",
@@ -3479,19 +5037,34 @@
"php",
"scaffolding"
],
+ "support": {
+ "issues": "https://github.com/nette/php-generator/issues",
+ "source": "https://github.com/nette/php-generator/tree/v3.6.9"
+ },
"time": "2022-10-04T11:49:47+00:00"
},
{
"name": "nette/utils",
- "version": "v3.2.9",
+ "version": "v3.2.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/nette/utils/v3.2.9/nette-utils-v3.2.9.zip",
- "reference": "c91bac3470c34b2ecd5400f6e6fdf0b64a836a5c",
- "shasum": ""
+ "url": "https://api.github.com/repos/nette/utils/zipball/a4175c62652f2300c8017fb7e640f9ccb11648d2",
+ "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.2 <8.3"
+ "php": ">=7.2 <8.4"
},
"conflict": {
"nette/di": "<3.0.6"
@@ -3522,6 +5095,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0-only",
@@ -3555,16 +5129,31 @@
"utility",
"validation"
],
- "time": "2023-01-18T03:26:20+00:00"
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v3.2.10"
+ },
+ "time": "2023-07-30T15:38:18+00:00"
},
{
"name": "nikic/fast-route",
"version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/FastRoute.git",
+ "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/nikic/fast-route/v1.3.0/nikic-fast-route-v1.3.0.zip",
+ "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
"reference": "181d480e08d9476e61381e04a71b34dc0432e812",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=5.4.0"
@@ -3581,6 +5170,7 @@
"FastRoute\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3595,24 +5185,39 @@
"router",
"routing"
],
+ "support": {
+ "issues": "https://github.com/nikic/FastRoute/issues",
+ "source": "https://github.com/nikic/FastRoute/tree/master"
+ },
"time": "2018-02-13T20:26:39+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.15.4",
+ "version": "v4.19.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/nikic/php-parser/v4.15.4/nikic-php-parser-v4.15.4.zip",
- "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
- "shasum": ""
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2",
+ "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.1"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"bin": [
"bin/php-parse"
@@ -3628,6 +5233,7 @@
"PhpParser\\": "lib/PhpParser"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3641,23 +5247,40 @@
"parser",
"php"
],
- "time": "2023-03-05T19:49:14+00:00"
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4"
+ },
+ "time": "2024-09-29T15:01:53+00:00"
},
{
"name": "paragonie/constant_time_encoding",
- "version": "v2.6.3",
+ "version": "v3.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/constant_time_encoding.git",
+ "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/paragonie/constant_time_encoding/v2.6.3/paragonie-constant_time_encoding-v2.6.3.zip",
- "reference": "58c3f47f650c94ec05a151692652a868995d2938",
- "shasum": ""
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
+ "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": "^7|^8"
+ "php": "^8"
},
"require-dev": {
- "phpunit/phpunit": "^6|^7|^8|^9",
- "vimeo/psalm": "^1|^2|^3|^4"
+ "infection/infection": "^0",
+ "nikic/php-fuzzer": "^0",
+ "phpunit/phpunit": "^9|^10|^11",
+ "vimeo/psalm": "^4|^5|^6"
},
"type": "library",
"autoload": {
@@ -3665,6 +5288,7 @@
"ParagonIE\\ConstantTime\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3697,16 +5321,32 @@
"hex2bin",
"rfc4648"
],
- "time": "2022-06-14T06:56:20+00:00"
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "source": "https://github.com/paragonie/constant_time_encoding"
+ },
+ "time": "2025-09-24T15:06:41+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v9.99.100",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/random_compat.git",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/paragonie/random_compat/v9.99.100/paragonie-random_compat-v9.99.100.zip",
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">= 7"
@@ -3719,6 +5359,7 @@
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3736,16 +5377,32 @@
"pseudorandom",
"random"
],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/random_compat/issues",
+ "source": "https://github.com/paragonie/random_compat"
+ },
"time": "2020-10-15T08:29:30+00:00"
},
{
"name": "php-amqplib/php-amqplib",
"version": "v3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-amqplib/php-amqplib.git",
+ "reference": "5c537cb724f2e181183c202e63f4303935344c5f"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/php-amqplib/php-amqplib/v3.4.0/php-amqplib-php-amqplib-v3.4.0.zip",
+ "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/5c537cb724f2e181183c202e63f4303935344c5f",
"reference": "5c537cb724f2e181183c202e63f4303935344c5f",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-mbstring": "*",
@@ -3776,6 +5433,7 @@
"PhpAmqpLib\\": "PhpAmqpLib/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1-or-later"
],
@@ -3807,16 +5465,31 @@
"queue",
"rabbitmq"
],
+ "support": {
+ "issues": "https://github.com/php-amqplib/php-amqplib/issues",
+ "source": "https://github.com/php-amqplib/php-amqplib/tree/v3.4.0"
+ },
"time": "2022-10-18T20:52:02+00:00"
},
{
"name": "php-di/phpdoc-reader",
"version": "2.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHP-DI/PhpDocReader.git",
+ "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/php-di/phpdoc-reader/2.2.1/php-di-phpdoc-reader-2.2.1.zip",
+ "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c",
"reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2.0"
@@ -3831,6 +5504,7 @@
"PhpDocReader\\": "src/PhpDocReader"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3839,29 +5513,44 @@
"phpdoc",
"reflection"
],
+ "support": {
+ "issues": "https://github.com/PHP-DI/PhpDocReader/issues",
+ "source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1"
+ },
"time": "2020-10-12T12:39:22+00:00"
},
{
"name": "phpoption/phpoption",
- "version": "1.9.1",
+ "version": "1.9.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/phpoption/phpoption/1.9.1/phpoption-phpoption-1.9.1.zip",
- "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e",
- "shasum": ""
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2.5 || ^8.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
"dev-master": "1.9-dev"
@@ -3872,6 +5561,7 @@
"PhpOption\\": "src/PhpOption/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
@@ -3894,19 +5584,44 @@
"php",
"type"
],
- "time": "2023-02-25T19:38:58+00:00"
+ "support": {
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:41:07+00:00"
},
{
"name": "phpseclib/phpseclib",
- "version": "3.0.19",
+ "version": "3.0.43",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpseclib/phpseclib.git",
+ "reference": "709ec107af3cb2f385b9617be72af8cf62441d02"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/phpseclib/phpseclib/3.0.19/phpseclib-phpseclib-3.0.19.zip",
- "reference": "cc181005cf548bfd8a4896383bb825d859259f95",
- "shasum": ""
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/709ec107af3cb2f385b9617be72af8cf62441d02",
+ "reference": "709ec107af3cb2f385b9617be72af8cf62441d02",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "paragonie/constant_time_encoding": "^1|^2",
+ "paragonie/constant_time_encoding": "^1|^2|^3",
"paragonie/random_compat": "^1.4|^2.0|^9.99.99",
"php": ">=5.6.1"
},
@@ -3929,6 +5644,7 @@
"phpseclib3\\": "phpseclib/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3980,16 +5696,45 @@
"x.509",
"x509"
],
- "time": "2023-03-05T17:13:09+00:00"
+ "support": {
+ "issues": "https://github.com/phpseclib/phpseclib/issues",
+ "source": "https://github.com/phpseclib/phpseclib/tree/3.0.43"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/terrafrost",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpseclib",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-12-14T21:12:59+00:00"
},
{
"name": "promphp/prometheus_client_php",
"version": "v2.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PromPHP/prometheus_client_php.git",
+ "reference": "5d27b6d84900d9b3208b5b6bf88d10ed0dc7a154"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/promphp/prometheus_client_php/v2.2.2/promphp-prometheus_client_php-v2.2.2.zip",
+ "url": "https://api.github.com/repos/PromPHP/prometheus_client_php/zipball/5d27b6d84900d9b3208b5b6bf88d10ed0dc7a154",
"reference": "5d27b6d84900d9b3208b5b6bf88d10ed0dc7a154",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-json": "*",
@@ -4026,6 +5771,7 @@
"Prometheus\\": "src/Prometheus/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
@@ -4036,19 +5782,34 @@
}
],
"description": "Prometheus instrumentation library for PHP applications.",
+ "support": {
+ "issues": "https://github.com/PromPHP/prometheus_client_php/issues",
+ "source": "https://github.com/PromPHP/prometheus_client_php/tree/v2.2.2"
+ },
"time": "2021-03-05T08:54:14+00:00"
},
{
"name": "psr/cache",
- "version": "1.0.1",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/cache/1.0.1/psr-cache-1.0.1.zip",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": ""
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
@@ -4061,13 +5822,14 @@
"Psr\\Cache\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
@@ -4076,16 +5838,84 @@
"psr",
"psr-6"
],
- "time": "2016-08-06T20:24:11+00:00"
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ },
+ "time": "2021-02-03T23:26:27+00:00"
+ },
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
},
{
"name": "psr/container",
"version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/container/2.0.2/psr-container-2.0.2.zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.4.0"
@@ -4101,6 +5931,7 @@
"Psr\\Container\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4119,16 +5950,31 @@
"container-interop",
"psr"
],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
"time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/event-dispatcher",
"version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/event-dispatcher/1.0.0/psr-event-dispatcher-1.0.0.zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
"reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2.0"
@@ -4144,6 +5990,7 @@
"Psr\\EventDispatcher\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4159,20 +6006,35 @@
"psr",
"psr-14"
],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
"time": "2019-01-08T18:20:26+00:00"
},
{
"name": "psr/http-client",
- "version": "1.0.1",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-client/1.0.1/psr-http-client-1.0.1.zip",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "shasum": ""
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0"
+ "psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -4185,13 +6047,14 @@
"Psr\\Http\\Client\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP clients",
@@ -4202,20 +6065,34 @@
"psr",
"psr-18"
],
- "time": "2020-06-29T06:28:15+00:00"
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
},
{
"name": "psr/http-factory",
- "version": "1.0.1",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-factory/1.0.1/psr-http-factory-1.0.1.zip",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "shasum": ""
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.0.0",
- "psr/http-message": "^1.0"
+ "psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -4228,13 +6105,14 @@
"Psr\\Http\\Message\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interfaces for PSR-7 HTTP message factories",
@@ -4248,16 +6126,30 @@
"request",
"response"
],
- "time": "2019-04-30T12:38:16+00:00"
+ "support": {
+ "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ },
+ "time": "2023-04-10T20:10:41+00:00"
},
{
"name": "psr/http-message",
"version": "1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-message/1.1/psr-http-message-1.1.zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2 || ^8.0"
@@ -4273,6 +6165,7 @@
"Psr\\Http\\Message\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4292,20 +6185,34 @@
"request",
"response"
],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/1.1"
+ },
"time": "2023-04-04T09:50:52+00:00"
},
{
"name": "psr/http-server-handler",
- "version": "1.0.1",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-server-handler.git",
+ "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-server-handler/1.0.1/psr-http-server-handler-1.0.1.zip",
- "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7",
- "shasum": ""
+ "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4",
+ "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.0",
- "psr/http-message": "^1.0"
+ "psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -4318,13 +6225,14 @@
"Psr\\Http\\Server\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP server-side request handler",
@@ -4339,20 +6247,34 @@
"response",
"server"
],
- "time": "2018-10-30T16:46:14+00:00"
+ "support": {
+ "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2"
+ },
+ "time": "2023-04-10T20:06:20+00:00"
},
{
"name": "psr/http-server-middleware",
- "version": "1.0.1",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-server-middleware.git",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-server-middleware/1.0.1/psr-http-server-middleware-1.0.1.zip",
- "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5",
- "shasum": ""
+ "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.0",
- "psr/http-message": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0",
"psr/http-server-handler": "^1.0"
},
"type": "library",
@@ -4366,13 +6288,14 @@
"Psr\\Http\\Server\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP server-side middleware",
@@ -4386,31 +6309,47 @@
"request",
"response"
],
- "time": "2018-10-30T17:12:04+00:00"
+ "support": {
+ "issues": "https://github.com/php-fig/http-server-middleware/issues",
+ "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2"
+ },
+ "time": "2023-04-11T06:14:47+00:00"
},
{
"name": "psr/log",
- "version": "1.1.4",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/log/1.1.4/psr-log-1.1.4.zip",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
- "shasum": ""
+ "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
+ "Psr\\Log\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4427,16 +6366,30 @@
"psr",
"psr-3"
],
- "time": "2021-05-03T11:20:27+00:00"
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/2.0.0"
+ },
+ "time": "2021-07-14T16:41:46+00:00"
},
{
"name": "psr/simple-cache",
"version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/simple-cache/1.0.1/psr-simple-cache-1.0.1.zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=5.3.0"
@@ -4452,6 +6405,7 @@
"Psr\\SimpleCache\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4469,16 +6423,30 @@
"psr-16",
"simple-cache"
],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/master"
+ },
"time": "2017-10-23T01:57:42+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/ralouphie/getallheaders/3.0.3/ralouphie-getallheaders-3.0.3.zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=5.6"
@@ -4493,6 +6461,7 @@
"src/getallheaders.php"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4503,22 +6472,38 @@
}
],
"description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "react/promise",
- "version": "v2.9.0",
+ "version": "v3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/react/promise/v2.9.0/react-promise-v2.9.0.zip",
- "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910",
- "shasum": ""
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=5.4.0"
+ "php": ">=7.1.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
+ "phpstan/phpstan": "1.10.39 || 1.4.10",
+ "phpunit/phpunit": "^9.6 || ^7.5"
},
"type": "library",
"autoload": {
@@ -4529,6 +6514,7 @@
"React\\Promise\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4559,23 +6545,44 @@
"promise",
"promises"
],
- "time": "2022-02-11T10:27:51+00:00"
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-24T10:39:05+00:00"
},
{
"name": "roave/dont",
- "version": "1.1.0",
+ "version": "1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/Dont.git",
+ "reference": "e40b8fbeb9c0b076eedd54dae2e1b27bfad74930"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/roave/dont/1.1.0/roave-dont-1.1.0.zip",
- "reference": "a74fd73b22eb17afea40eadbdc3fd1074fb7d2ba",
- "shasum": ""
+ "url": "https://api.github.com/repos/Roave/Dont/zipball/e40b8fbeb9c0b076eedd54dae2e1b27bfad74930",
+ "reference": "e40b8fbeb9c0b076eedd54dae2e1b27bfad74930",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": "^7.1"
+ "php": "~8.0.0 || ~8.1.0 || ~8.2.0"
},
"require-dev": {
- "infection/infection": "^0.12.0",
- "phpunit/phpunit": "^7.5 || ^8.0"
+ "infection/infection": "^0.26.16",
+ "phpunit/phpunit": "^9.5.26"
},
"type": "library",
"autoload": {
@@ -4583,6 +6590,7 @@
"Dont\\": "src/Dont"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4599,22 +6607,37 @@
"defensive programming",
"strictness"
],
- "time": "2019-04-16T10:22:01+00:00"
+ "support": {
+ "issues": "https://github.com/Roave/Dont/issues",
+ "source": "https://github.com/Roave/Dont/tree/1.6.0"
+ },
+ "time": "2022-12-06T14:04:48+00:00"
},
{
"name": "seld/jsonlint",
- "version": "1.9.0",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/seld/jsonlint/1.9.0/seld-jsonlint-1.9.0.zip",
- "reference": "4211420d25eba80712bff236a98960ef68b866b7",
- "shasum": ""
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2",
+ "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.3 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan": "^1.11",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
},
"bin": [
@@ -4626,6 +6649,7 @@
"Seld\\JsonLint\\": "src/Seld/JsonLint/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4633,7 +6657,7 @@
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
+ "homepage": "https://seld.be"
}
],
"description": "JSON Linter",
@@ -4643,16 +6667,41 @@
"parser",
"validator"
],
- "time": "2022-04-01T13:37:23+00:00"
+ "support": {
+ "issues": "https://github.com/Seldaek/jsonlint/issues",
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-11T14:55:45+00:00"
},
{
"name": "seld/phar-utils",
"version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/phar-utils.git",
+ "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/seld/phar-utils/1.2.1/seld-phar-utils-1.2.1.zip",
+ "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
"reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=5.3"
@@ -4668,6 +6717,7 @@
"Seld\\PharUtils\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4681,16 +6731,31 @@
"keywords": [
"phar"
],
+ "support": {
+ "issues": "https://github.com/Seldaek/phar-utils/issues",
+ "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1"
+ },
"time": "2022-08-31T10:31:18+00:00"
},
{
"name": "seld/signal-handler",
- "version": "2.0.1",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/signal-handler.git",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/seld/signal-handler/2.0.1/seld-signal-handler-2.0.1.zip",
- "reference": "f69d119511dc0360440cdbdaa71829c149b7be75",
- "shasum": ""
+ "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2.0"
@@ -4714,6 +6779,7 @@
"Seld\\Signal\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4732,15 +6798,24 @@
"sigterm",
"unix"
],
- "time": "2022-07-20T18:31:45+00:00"
+ "support": {
+ "issues": "https://github.com/Seldaek/signal-handler/issues",
+ "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2"
+ },
+ "time": "2023-09-03T09:24:00+00:00"
},
{
"name": "singularity/hdk-core",
- "version": "0.1.6",
+ "version": "0.1.10",
"source": {
"type": "git",
- "url": "http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore.git",
- "reference": "def9f0469db606cb6a29ee85162011079a340dd4"
+ "url": "https://nest.doylee.cn/HDK/hdk-core",
+ "reference": "0.1.10"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://nest.doylee.cn/api/packages/HDK/composer/files/singularity%2Fhdk-core/0.1.10/singularity-hdk-core.0.1.10.zip",
+ "shasum": "e20e1d4ce08c3ca84271c5e6f753d51b798203ce"
},
"require": {
"composer/composer": ">=2.0",
@@ -4770,6 +6845,7 @@
"firebase/php-jwt": "^6.3",
"friendsofphp/php-cs-fixer": "^3.13",
"guzzlehttp/guzzle": "^7.5",
+ "hyperf/crontab": "<=3.0.9 || >3.0.13 <3.1",
"hyperf/session": "^2.2",
"hyperf/validation": "^2.2",
"pestphp/pest": "^1.22",
@@ -4807,24 +6883,6 @@
"Singularity\\HDK\\Test\\Core\\": "tests/"
}
},
- "scripts": {
- "post-root-package-install": [],
- "test": [
- "vendor/bin/pest $1"
- ],
- "cs-fix": [
- "vendor/bin/php-cs-fixer fix $1 --rules=@PSR12 --allow-risky=yes"
- ],
- "analyse": [
- "vendor/bin/phpstan analyse $1"
- ],
- "ci": [
- "@analyse publish/ src/ tests/",
- "@cs-fix",
- "@test --ci",
- "echo CI Success"
- ]
- },
"license": [
"MIT"
],
@@ -4835,16 +6893,27 @@
}
],
"description": "Common Hyperf Development Kit",
- "time": "2023-03-21T03:02:49+00:00"
+ "time": "2025-09-26T17:31:38+08:00"
},
{
"name": "symfony/console",
"version": "v5.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "535846c7ee6bc4dd027ca0d93220601456734b10"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/console/v5.4.11/symfony-console-v5.4.11.zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/535846c7ee6bc4dd027ca0d93220601456734b10",
"reference": "535846c7ee6bc4dd027ca0d93220601456734b10",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2.5",
@@ -4890,6 +6959,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4911,28 +6981,56 @@
"console",
"terminal"
],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.4.11"
+ },
+ "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": "2022-07-22T10:42:43+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/deprecation-contracts/v2.5.2/symfony-deprecation-contracts-v2.5.2.zip",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -4940,6 +7038,7 @@
"function.php"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4955,22 +7054,52 @@
],
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
- "time": "2022-01-02T09:53:40+00:00"
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
+ },
+ "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": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v5.4.21",
+ "version": "v7.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/filesystem/v5.4.21/symfony-filesystem-v5.4.21.zip",
- "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "~1.8"
+ },
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -4981,6 +7110,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4996,16 +7126,44 @@
],
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
- "time": "2023-02-14T08:03:56+00:00"
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v7.3.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": "2024-10-25T15:15:23+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.21",
+ "version": "v5.4.45",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "63741784cd7b9967975eec610b256eed3ede022b"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/finder/v5.4.21/symfony-finder-v5.4.21.zip",
- "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b",
+ "reference": "63741784cd7b9967975eec610b256eed3ede022b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.2.5",
@@ -5021,6 +7179,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5036,25 +7195,50 @@
],
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
- "time": "2023-02-16T09:33:00+00:00"
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.4.45"
+ },
+ "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": "2024-09-28T13:32:08+00:00"
},
{
"name": "symfony/polyfill-apcu",
- "version": "v1.27.0",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-apcu.git",
+ "reference": "dec55f5d339e084daaf839104726c022ddc3c593"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-apcu/v1.27.0/symfony-polyfill-apcu-v1.27.0.zip",
- "reference": "6e7f6ed2168779a2b3927e606a9768860a8bdfa0",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/dec55f5d339e084daaf839104726c022ddc3c593",
+ "reference": "dec55f5d339e084daaf839104726c022ddc3c593",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5068,6 +7252,7 @@
"Symfony\\Polyfill\\Apcu\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5090,19 +7275,47 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-apcu/tree/v1.31.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": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-ctype/v1.27.0/symfony-polyfill-ctype-v1.27.0.zip",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -5112,12 +7325,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5128,6 +7338,7 @@
"Symfony\\Polyfill\\Ctype\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5149,31 +7360,56 @@
"polyfill",
"portable"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.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": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-intl-grapheme/v1.27.0/symfony-polyfill-intl-grapheme-v1.27.0.zip",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5184,6 +7420,7 @@
"Symfony\\Polyfill\\Intl\\Grapheme\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5207,33 +7444,57 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.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": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-intl-idn/v1.27.0/symfony-polyfill-intl-idn-v1.27.0.zip",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3",
+ "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5244,6 +7505,7 @@
"Symfony\\Polyfill\\Intl\\Idn\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5271,31 +7533,56 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.32.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": "2024-09-10T14:38:51+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-intl-normalizer/v1.27.0/symfony-polyfill-intl-normalizer-v1.27.0.zip",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5309,6 +7596,7 @@
"Resources/stubs"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5332,19 +7620,48 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.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": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-mbstring/v1.27.0/symfony-polyfill-mbstring-v1.27.0.zip",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "ext-iconv": "*",
+ "php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -5354,12 +7671,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5370,6 +7684,7 @@
"Symfony\\Polyfill\\Mbstring\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5392,81 +7707,53 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.27.0",
- "dist": {
- "type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-php72/v1.27.0/symfony-polyfill-php72-v1.27.0.zip",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
- "shasum": ""
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
},
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
+ "funding": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
},
{
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-12-23T08:48:59+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-php73/v1.27.0/symfony-polyfill-php73-v1.27.0.zip",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5480,6 +7767,7 @@
"Resources/stubs"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5501,28 +7789,53 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.32.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": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-php80/v1.27.0/symfony-polyfill-php80-v1.27.0.zip",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5536,6 +7849,7 @@
"Resources/stubs"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5561,28 +7875,53 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.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": "2025-01-02T08:10:11+00:00"
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.27.0",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-php81/v1.27.0/symfony-polyfill-php81-v1.27.0.zip",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5596,6 +7935,7 @@
"Resources/stubs"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5617,20 +7957,47 @@
"portable",
"shim"
],
- "time": "2022-11-03T14:55:06+00:00"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.32.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": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/process",
- "version": "v5.4.22",
+ "version": "v7.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/process/v5.4.22/symfony-process-v5.4.22.zip",
- "reference": "4b850da0cc3a2a9181c1ed407adbca4733dc839b",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
+ "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -5641,6 +8008,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5656,35 +8024,72 @@
],
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
- "time": "2023-03-06T21:29:33+00:00"
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v7.3.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": "2025-04-17T09:11:12+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v1.1.2",
+ "version": "v3.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/service-contracts/v1.1.2/symfony-service-contracts-v1.1.2.zip",
- "reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": "^7.1.3"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
- "suggest": {
- "psr/container": "",
- "symfony/service-implementation": ""
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
- "dev-master": "1.1-dev"
+ "dev-main": "3.5-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5708,33 +8113,61 @@
"interoperability",
"standards"
],
- "time": "2019-05-28T07:50:59+00:00"
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
+ },
+ "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": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/string",
- "version": "v5.4.22",
+ "version": "v6.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "73e2c6966a5aef1d4892873ed5322245295370c6"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/string/v5.4.22/symfony-string-v5.4.22.zip",
- "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6",
+ "reference": "73e2c6966a5aef1d4892873ed5322245295370c6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": ">=3.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^6.2|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5748,6 +8181,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5771,52 +8205,78 @@
"utf-8",
"utf8"
],
- "time": "2023-03-14T06:11:53+00:00"
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v6.4.21"
+ },
+ "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": "2025-04-18T15:23:29+00:00"
},
{
"name": "symfony/translation",
- "version": "v5.4.22",
+ "version": "v6.4.23",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "de8afa521e04a5220e9e58a1dc99971ab7cac643"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/translation/v5.4.22/symfony-translation-v5.4.22.zip",
- "reference": "9a401392f01bc385aa42760eff481d213a0cc2ba",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/translation/zipball/de8afa521e04a5220e9e58a1dc99971ab7cac643",
+ "reference": "de8afa521e04a5220e9e58a1dc99971ab7cac643",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^2.3"
+ "symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
- "symfony/config": "<4.4",
- "symfony/console": "<5.3",
- "symfony/dependency-injection": "<5.0",
- "symfony/http-kernel": "<5.0",
- "symfony/twig-bundle": "<5.0",
- "symfony/yaml": "<4.4"
+ "symfony/config": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/yaml": "<5.4"
},
"provide": {
- "symfony/translation-implementation": "2.3"
+ "symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
- "symfony/http-kernel": "^5.0|^6.0",
- "symfony/intl": "^4.4|^5.0|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/service-contracts": "^1.1.2|^2|^3",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log-implementation": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5830,6 +8290,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5845,38 +8306,67 @@
],
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
- "time": "2023-03-27T16:07:23+00:00"
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v6.4.23"
+ },
+ "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": "2025-06-26T21:24:02+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/translation-contracts/v2.5.2/symfony-translation-contracts-v2.5.2.zip",
- "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
- "shasum": ""
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/translation-implementation": ""
+ "php": ">=8.1"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5900,16 +8390,44 @@
"interoperability",
"standards"
],
- "time": "2022-06-27T16:58:25+00:00"
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
+ },
+ "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": "2024-09-25T14:20:29+00:00"
},
{
"name": "teapot/status-code",
"version": "v1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/teapot-php/status-code.git",
+ "reference": "7aaba4364645ebb9d3a36267c9b3a32206d3042b"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/teapot/status-code/v1.1.2/teapot-status-code-v1.1.2.zip",
+ "url": "https://api.github.com/repos/teapot-php/status-code/zipball/7aaba4364645ebb9d3a36267c9b3a32206d3042b",
"reference": "7aaba4364645ebb9d3a36267c9b3a32206d3042b",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.4 || ^7.0 || ^8.0"
@@ -5923,6 +8441,7 @@
"Teapot\\StatusCode\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5937,30 +8456,45 @@
"keywords": [
"http"
],
+ "support": {
+ "issues": "https://github.com/teapot-php/status-code/issues",
+ "source": "https://github.com/teapot-php/status-code/tree/v1.1.2"
+ },
"time": "2020-11-03T17:14:32+00:00"
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.5.0",
+ "version": "v5.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/vlucas/phpdotenv/v5.5.0/vlucas-phpdotenv-v5.5.0.zip",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
- "shasum": ""
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"suggest": {
"ext-filter": "Required to use the boolean validator."
@@ -5969,10 +8503,10 @@
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
- "dev-master": "5.5-dev"
+ "dev-master": "5.6-dev"
}
},
"autoload": {
@@ -5980,6 +8514,7 @@
"Dotenv\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -6001,16 +8536,41 @@
"env",
"environment"
],
- "time": "2022-10-16T01:01:54+00:00"
+ "support": {
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:52:34+00:00"
},
{
"name": "xxtime/flysystem-aliyun-oss",
"version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/xxtime/flysystem-aliyun-oss.git",
+ "reference": "ae873b5919076157b9cfeaf39d2f56d2dbb39ee9"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/xxtime/flysystem-aliyun-oss/1.5.0/xxtime-flysystem-aliyun-oss-1.5.0.zip",
+ "url": "https://api.github.com/repos/xxtime/flysystem-aliyun-oss/zipball/ae873b5919076157b9cfeaf39d2f56d2dbb39ee9",
"reference": "ae873b5919076157b9cfeaf39d2f56d2dbb39ee9",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"aliyuncs/oss-sdk-php": "~2.3",
@@ -6023,6 +8583,7 @@
"Xxtime\\Flysystem\\Aliyun\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -6041,16 +8602,33 @@
"aliyun-oss",
"flysystem-aliyun-oss"
],
+ "support": {
+ "email": "joe@xxtime.com",
+ "issues": "https://github.com/xxtime/flysystem-aliyun-oss/issues",
+ "source": "https://github.com/xxtime/flysystem-aliyun-oss/tree/1.5.0",
+ "wiki": "https://github.com/xxtime"
+ },
"time": "2019-11-12T07:57:34+00:00"
},
{
"name": "yadakhov/insert-on-duplicate-key",
"version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yadakhov/insert-on-duplicate-key.git",
+ "reference": "69da752259142490459035334f3750e37d6ce7fa"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/yadakhov/insert-on-duplicate-key/v1.3.0/yadakhov-insert-on-duplicate-key-v1.3.0.zip",
+ "url": "https://api.github.com/repos/yadakhov/insert-on-duplicate-key/zipball/69da752259142490459035334f3750e37d6ce7fa",
"reference": "69da752259142490459035334f3750e37d6ce7fa",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require-dev": {
"illuminate/database": "^8.35",
@@ -6062,6 +8640,7 @@
"Yadakhov\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -6079,16 +8658,31 @@
"eloquent",
"mysql"
],
+ "support": {
+ "issues": "https://github.com/yadakhov/insert-on-duplicate-key/issues",
+ "source": "https://github.com/yadakhov/insert-on-duplicate-key/tree/v1.3.0"
+ },
"time": "2021-04-01T19:13:35+00:00"
},
{
"name": "zoujingli/ip2region",
"version": "v1.0.13",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zoujingli/ip2region.git",
+ "reference": "c02c74571ad665745e57db5d04efa165e543fade"
+ },
"dist": {
"type": "zip",
- "url": "https://mirrors.cloud.tencent.com/repository/composer/zoujingli/ip2region/v1.0.13/zoujingli-ip2region-v1.0.13.zip",
+ "url": "https://api.github.com/repos/zoujingli/ip2region/zipball/c02c74571ad665745e57db5d04efa165e543fade",
"reference": "c02c74571ad665745e57db5d04efa165e543fade",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=5.3"
@@ -6099,6 +8693,7 @@
"Ip2Region.php"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
@@ -6114,21 +8709,155 @@
"keywords": [
"Ip2Region"
],
+ "support": {
+ "issues": "https://github.com/zoujingli/ip2region/issues",
+ "source": "https://github.com/zoujingli/ip2region/tree/v1.0.13"
+ },
"time": "2023-03-13T05:18:05+00:00"
}
],
- "packages-dev": [],
+ "packages-dev": [
+ {
+ "name": "phpstan/phpstan",
+ "version": "2.1.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "96dde49e967c0c22812bcfa7bda4ff82c09f3b0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/96dde49e967c0c22812bcfa7bda4ff82c09f3b0c",
+ "reference": "96dde49e967c0c22812bcfa7bda4ff82c09f3b0c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
+ },
+ "bin": [
+ "phpstan",
+ "phpstan.phar"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "keywords": [
+ "dev",
+ "static analysis"
+ ],
+ "support": {
+ "docs": "https://phpstan.org/user-guide/getting-started",
+ "forum": "https://github.com/phpstan/phpstan/discussions",
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "security": "https://github.com/phpstan/phpstan/security/policy",
+ "source": "https://github.com/phpstan/phpstan-src"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ondrejmirtes",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phpstan",
+ "type": "github"
+ }
+ ],
+ "time": "2025-04-16T13:19:18+00:00"
+ },
+ {
+ "name": "rector/rector",
+ "version": "2.0.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/rectorphp/rector.git",
+ "reference": "059b827cc648929711606e9824337e41e2f9ed92"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/rectorphp/rector/zipball/059b827cc648929711606e9824337e41e2f9ed92",
+ "reference": "059b827cc648929711606e9824337e41e2f9ed92",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "phpstan/phpstan": "^2.1.9"
+ },
+ "conflict": {
+ "rector/rector-doctrine": "*",
+ "rector/rector-downgrade-php": "*",
+ "rector/rector-phpunit": "*",
+ "rector/rector-symfony": "*"
+ },
+ "suggest": {
+ "ext-dom": "To manipulate phpunit.xml via the custom-rule command"
+ },
+ "bin": [
+ "bin/rector"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Instant Upgrade and Automated Refactoring of any PHP code",
+ "keywords": [
+ "automation",
+ "dev",
+ "migration",
+ "refactoring"
+ ],
+ "support": {
+ "issues": "https://github.com/rectorphp/rector/issues",
+ "source": "https://github.com/rectorphp/rector/tree/2.0.11"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/tomasvotruba",
+ "type": "github"
+ }
+ ],
+ "time": "2025-03-28T10:25:17+00:00"
+ }
+ ],
"aliases": [],
"minimum-stability": "dev",
- "stability-flags": [],
+ "stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
- "php": ">=7.4",
+ "php": ">=8.2",
"ext-json": "*",
"ext-pdo": "*",
"ext-swoole": ">=4.4"
},
- "platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "platform-dev": {},
+ "plugin-api-version": "2.6.0"
}
diff --git a/rector.php b/rector.php
new file mode 100644
index 0000000..2d0982c
--- /dev/null
+++ b/rector.php
@@ -0,0 +1,30 @@
+paths([
+ __DIR__ . '/src', // 替换为你项目代码的路径,例如:/app, /backend 等
+ // __DIR__ . '/tests', // 如果你想升级测试代码,也加入
+ ]);
+
+ // 2. 一次性应用所有规则到 PHP 8.2 (推荐用于大型升级)
+ $rectorConfig->sets([
+ // 这将包含从 7.4 到 8.1 的所有升级规则,以及 8.2 的所有新规则
+ LevelSetList::UP_TO_PHP_82,
+ // 建议同时加入一些代码质量改进的规则
+ SetList::DEAD_CODE, // 移除无用代码
+ ]);
+
+ // 可选:跳过某些文件或规则
+ // $rectorConfig->skip([
+ // // 例如:跳过特定文件
+ // // __DIR__ . '/src/Legacy/old_file.php',
+ // ]);
+};
\ No newline at end of file
diff --git a/scripts/docker-env.sh b/scripts/docker-env.sh
index 9ef8fd5..89cfe32 100755
--- a/scripts/docker-env.sh
+++ b/scripts/docker-env.sh
@@ -7,4 +7,4 @@ docker run \
-v "$(pwd)":/srv/www \
-v ~/.ssh:/root/.ssh \
-v ~/.gitconfig:/root/.gitconfig \
- harbor.luxcreo.cn/library/hyperf:7.4-swoole /bin/ash
+ harbor.luxcreo.cn/library/hyperf:8.2-swoole /bin/ash
diff --git a/src/admin/src/Controller/AdminAbstractController.php b/src/admin/src/Controller/AdminAbstractController.php
index e613a19..d8967ac 100755
--- a/src/admin/src/Controller/AdminAbstractController.php
+++ b/src/admin/src/Controller/AdminAbstractController.php
@@ -36,7 +36,7 @@ abstract class AdminAbstractController extends AbstractController
public function getRecordHistory()
{
$history_versions = $this->getEntity()->lastVersion($this->previous_version_number);
- $history_versions = array_node_append($history_versions, 'user_id', 'username', function ($uids) {
+ return array_node_append($history_versions, 'user_id', 'username', function ($uids) {
$ret = User::query()->select(['id', 'username'])->whereIn('id', $uids)->get();
if (!$ret) {
return [];
@@ -49,14 +49,11 @@ abstract class AdminAbstractController extends AbstractController
}
return $ret;
});
- return $history_versions;
}
/**
* 新版本检查
*
- * @param int $id
- * @param int $last_ver_id
*
* @return array
*/
diff --git a/src/admin/src/Controller/LogController.php b/src/admin/src/Controller/LogController.php
index ab2283a..e2eca3e 100755
--- a/src/admin/src/Controller/LogController.php
+++ b/src/admin/src/Controller/LogController.php
@@ -94,7 +94,7 @@ class LogController extends AdminAbstractController
'width' => '480px',
'render' => function ($field, $row) {
if (!is_array($row['detail_json'])) {
- $row['detail_json'] = json_decode($row['detail_json'], true);
+ $row['detail_json'] = json_decode((string) $row['detail_json'], true);
}
return $row['detail_json']['description'] ?? '';
@@ -112,7 +112,7 @@ class LogController extends AdminAbstractController
'width' => '200px',
'render' => function ($field, $row) {
if (!is_array($row['detail_json'])) {
- $row['detail_json'] = json_decode($row['detail_json'], true);
+ $row['detail_json'] = json_decode((string) $row['detail_json'], true);
}
return $row['detail_json']['remark'] ?? '';
diff --git a/src/admin/src/Controller/MenuController.php b/src/admin/src/Controller/MenuController.php
index c5e3291..a7ec17b 100755
--- a/src/admin/src/Controller/MenuController.php
+++ b/src/admin/src/Controller/MenuController.php
@@ -252,13 +252,11 @@ class MenuController extends AdminAbstractController
'tabs' => function() {
$conf = \HyperfAdmin\Admin\Service\CommonConfig::getValByName('website_config');
$system_module = $conf['system_module'] ?? [];
- return array_map(function ($item) {
- return [
- 'label' => $item['label'],
- 'value' => $item['name'],
- 'icon' => $item['icon']
- ];
- }, $system_module);
+ return array_map(fn($item) => [
+ 'label' => $item['label'],
+ 'value' => $item['name'],
+ 'icon' => $item['icon']
+ ], $system_module);
},
'rowActions' => [
[
@@ -382,9 +380,9 @@ class MenuController extends AdminAbstractController
}
return $item;
- }, array_filter(explode(',', $record['permission'])));
+ }, array_filter(explode(',', (string) $record['permission'])));
}
- $scaffold_action = json_decode($record['scaffold_action'], true);
+ $scaffold_action = json_decode((string) $record['scaffold_action'], true);
$record['scaffold_action'] = $scaffold_action ? array_keys($scaffold_action) : [];
$record['pid'] = (new Menu())->getPathNodeIds($id);
}
@@ -395,7 +393,7 @@ class MenuController extends AdminAbstractController
if ($data['path'] == '#' || $data['path'] == '') {
$this->exception('菜单路由地址不能为空或"#"', ErrorCode::CODE_ERR_PARAM);
}
- $paths = array_filter(explode('/', $data['path']));
+ $paths = array_filter(explode('/', (string) $data['path']));
if (count($paths) > 5) {
$this->exception('路由地址层级过深>5,请设置精简一些', ErrorCode::CODE_ERR_PARAM);
}
@@ -423,14 +421,14 @@ class MenuController extends AdminAbstractController
protected function afterSave($pk_val, $data, $entity)
{
// 更新预置的脚手架权限
- $scaffold_action = json_decode($entity->scaffold_action, true);
+ $scaffold_action = json_decode((string) $entity->scaffold_action, true);
$action_keys = $scaffold_action ? array_keys($scaffold_action) : [];
$need_del_ids = $scaffold_action ? array_values($scaffold_action) : [];
$router_ids = [];
if (!empty($data['scaffold_action'])) {
$need_del_ids = collect($scaffold_action)->except($data['scaffold_action'])->values()->toArray();
$scaffold_action = collect($scaffold_action)->only($data['scaffold_action'])->toArray();
- $paths = array_filter(explode('/', $data['path']));
+ $paths = array_filter(explode('/', (string) $data['path']));
array_pop($paths);
$prefix = implode('/', $paths);
foreach ($data['scaffold_action'] as $k => $action) {
@@ -530,7 +528,7 @@ class MenuController extends AdminAbstractController
$route_list = $routes;
}
foreach ($route_list as $route => $v) {
- $route = is_string($route) ? rtrim($route) : rtrim($v[0]->route);
+ $route = is_string($route) ? rtrim($route) : rtrim((string) $v[0]->route);
$route_key = "$http_method::{$route}";
if (in_array($route_key, $conf)) {
continue;
@@ -555,7 +553,7 @@ class MenuController extends AdminAbstractController
}
$right_options = [];
foreach ($conf as $route) {
- [$http_method, $uri] = explode("::", $route, 2);
+ [$http_method, $uri] = explode("::", (string) $route, 2);
$dispatcher = container(DispatcherFactory::class)->getDispatcher('http');
$route_info = $dispatcher->dispatch($http_method, $uri);
if (!empty($route_info[1]->callback[0])) {
diff --git a/src/admin/src/Controller/RoleController.php b/src/admin/src/Controller/RoleController.php
index 6d63802..ee2dcec 100755
--- a/src/admin/src/Controller/RoleController.php
+++ b/src/admin/src/Controller/RoleController.php
@@ -132,7 +132,7 @@ class RoleController extends AdminAbstractController
protected function afterSave($pk_val, $data)
{
- $data['permissions'] = json_decode($data['permissions'], true);
+ $data['permissions'] = json_decode((string) $data['permissions'], true);
if (empty($data['permissions'])) {
return true;
}
diff --git a/src/admin/src/Controller/SystemController.php b/src/admin/src/Controller/SystemController.php
index 8b8a9b5..9d1179e 100755
--- a/src/admin/src/Controller/SystemController.php
+++ b/src/admin/src/Controller/SystemController.php
@@ -29,9 +29,7 @@ class SystemController extends AdminAbstractController
if (isset($config['system_module']) && !$this->auth_service->isSupperAdmin()) {
$user_id = $this->auth_service->get('id');
$modules = $this->permission_service->getModules($user_id);
- $config['system_module'] = array_filter($config['system_module'], function ($item) use ($modules) {
- return in_array($item['name'], $modules);
- });
+ $config['system_module'] = array_filter($config['system_module'], fn($item) => in_array($item['name'], $modules));
}
return $this->success($config);
@@ -46,9 +44,7 @@ class SystemController extends AdminAbstractController
$kw = $this->request->input('kw', '');
$routes = $this->permission_service->getSystemRouteOptions();
- $routes = array_filter($routes, function ($item) use ($kw) {
- return Str::contains($item['value'], $kw);
- });
+ $routes = array_filter($routes, fn($item) => Str::contains($item['value'], $kw));
return $this->success(array_values($routes));
}
diff --git a/src/admin/src/Controller/UserController.php b/src/admin/src/Controller/UserController.php
index cc5fa15..ff11c8e 100755
--- a/src/admin/src/Controller/UserController.php
+++ b/src/admin/src/Controller/UserController.php
@@ -90,9 +90,7 @@ class UserController extends AdminAbstractController
'type' => 'date_range',
],
],
- 'hasOne' => function ($field, $row) {
- return 'hyperf_admin.'.env('HYPERF_ADMIN_DB_NAME').'.user_role:user_id,role_id';
- },
+ 'hasOne' => fn($field, $row) => 'hyperf_admin.'.env('HYPERF_ADMIN_DB_NAME').'.user_role:user_id,role_id',
'table' => [
'columns' => [
'id',
@@ -100,9 +98,7 @@ class UserController extends AdminAbstractController
'username',
[
'field' => 'mobile',
- 'render' => function ($field, $row) {
- return data_desensitization($field, 3, 4);
- },
+ 'render' => fn($field, $row) => data_desensitization($field, 3, 4),
],
['field' => 'avatar', 'render' => 'avatarRender'],
'email',
@@ -235,12 +231,12 @@ class UserController extends AdminAbstractController
public function passwordHash($password)
{
- return sha1(md5($password) . md5(config('password.salt')));
+ return sha1(md5((string) $password) . md5((string) config('password.salt')));
}
public function logout()
{
- $user = $this->auth_service->logout();
+ $this->auth_service->logout();
return $this->success();
}
@@ -259,9 +255,7 @@ class UserController extends AdminAbstractController
$task = new ExportTasks();
$task->name = $this->request->input('name');
$task->list_api = $url;
- $task->filters = array_filter($this->request->input('filters'), function ($item) {
- return $item !== '';
- });
+ $task->filters = array_filter($this->request->input('filters'), fn($item) => $item !== '');
$task->operator_id = $this->userId() ?? 0;
if ((new ExportService())->getFirstSameTask($task->list_api, $task->filters, $task->operator_id)) { // 如果当天已经有相同过滤条件且还未成功生成文件的任务
return $this->success([], '已经有相同的任务,请勿重复导出');
diff --git a/src/admin/src/Install/InstallCommand.php b/src/admin/src/Install/InstallCommand.php
index 0304a19..c76fcf6 100755
--- a/src/admin/src/Install/InstallCommand.php
+++ b/src/admin/src/Install/InstallCommand.php
@@ -22,7 +22,7 @@ class InstallCommand extends HyperfCommand
$sql = file_get_contents(__DIR__ . '/install.sql');
- $re = Db::connection('hyperf_admin')->getPdo()->exec($sql);
+ Db::connection('hyperf_admin')->getPdo()->exec($sql);
$this->output->success('hyperf-admin db install success');
}
diff --git a/src/admin/src/Install/UpdateCommand.php b/src/admin/src/Install/UpdateCommand.php
index bddd15a..a6905a9 100755
--- a/src/admin/src/Install/UpdateCommand.php
+++ b/src/admin/src/Install/UpdateCommand.php
@@ -36,7 +36,7 @@ class UpdateCommand extends HyperfCommand
$sql = file_get_contents($update_sql_file);
- $re = Db::connection('hyperf_admin')->getPdo()->exec($sql);
+ Db::connection('hyperf_admin')->getPdo()->exec($sql);
$this->output->success('hyperf-admin db update success');
diff --git a/src/admin/src/Middleware/PermissionMiddleware.php b/src/admin/src/Middleware/PermissionMiddleware.php
index bfe99c8..d8c3de1 100755
--- a/src/admin/src/Middleware/PermissionMiddleware.php
+++ b/src/admin/src/Middleware/PermissionMiddleware.php
@@ -116,8 +116,6 @@ class PermissionMiddleware extends CoreMiddleware
}
/**
- * @param int $code
- * @param string|null $message
*
* @return \Psr\Http\Message\ResponseInterface
*/
@@ -152,7 +150,7 @@ class PermissionMiddleware extends CoreMiddleware
} else {
$body = '';
}
- $ak = str_replace('ha ', '', explode(':', $client_token)[0] ?? '');
+ $ak = str_replace('ha ', '', explode(':', (string) $client_token)[0] ?? '');
$sk = config('client_user')[$ak] ?? '';
$auth = new AKSK($ak, $sk);
$token = $auth->token($method, $path, $host, $query, $content_type, $body);
diff --git a/src/admin/src/Model/GlobalConfig.php b/src/admin/src/Model/GlobalConfig.php
index 278cbef..d0a98cf 100755
--- a/src/admin/src/Model/GlobalConfig.php
+++ b/src/admin/src/Model/GlobalConfig.php
@@ -57,7 +57,7 @@ class GlobalConfig extends BaseModel
if(empty($item)) {
return $default;
}
- $config = json_decode($item[0]['value'], true);
+ $config = json_decode((string) $item[0]['value'], true);
if(is_null($config)) {
return $default;
}
@@ -76,8 +76,8 @@ class GlobalConfig extends BaseModel
public static function setConfig($name, $value, $ext = [], $raw = true)
{
$namespace = '';
- if(($pos = strpos($name, '.')) !== false) {
- $namespace = substr($name, 0, $pos);
+ if(($pos = strpos((string) $name, '.')) !== false) {
+ $namespace = substr((string) $name, 0, $pos);
}
if($raw) {
$value = json_encode($value);
diff --git a/src/admin/src/Model/User.php b/src/admin/src/Model/User.php
index 7b16b21..8c536bb 100755
--- a/src/admin/src/Model/User.php
+++ b/src/admin/src/Model/User.php
@@ -70,7 +70,7 @@ class User extends BaseModel
public function getRolesAttribute($value)
{
- return explode(',', $value);
+ return explode(',', (string) $value);
}
public function setRolesAttribute($value)
diff --git a/src/admin/src/Model/Versionable.php b/src/admin/src/Model/Versionable.php
index 71050b1..166a678 100755
--- a/src/admin/src/Model/Versionable.php
+++ b/src/admin/src/Model/Versionable.php
@@ -53,7 +53,7 @@ trait Versionable
public function getMorphClass()
{
- if (strpos($this->getTable(), '.') !== false) {
+ if (str_contains($this->getTable(), '.')) {
return $this->getTable();
}
return $this->getConnectionName() . '.' . $this->getTable();
@@ -89,8 +89,6 @@ trait Versionable
/**
* 监听saved事件保存表更数据
- *
- * @param Saved $event
*/
public function saved(Saved $event)
{
@@ -119,8 +117,6 @@ trait Versionable
/**
* 记录数据版本前先记录请求
- *
- * @return RequestLog
*/
private function processRequest(): RequestLog
{
@@ -152,7 +148,7 @@ trait Versionable
{
$keep = $this->keep_version_count ?? 100;
$count = $this->versions()->count();
- if ($keep > 0 && $count > $keep) {
+ if ($count > $keep) {
$this->versions()->limit($count - $keep)->delete();
}
}
@@ -170,7 +166,6 @@ trait Versionable
/**
* 前几个版本
*
- * @param int $previous
*
* @return mixed
*/
diff --git a/src/admin/src/Service/ExportService.php b/src/admin/src/Service/ExportService.php
index 6d25137..8ed1ef0 100755
--- a/src/admin/src/Service/ExportService.php
+++ b/src/admin/src/Service/ExportService.php
@@ -80,7 +80,7 @@ class ExportService
}
$task->fill(['status' => ExportTasks::STATUS_PROCESSING])->save();
$list_api = 'http://127.0.0.1:' . config('server.servers.0.port') . $task->list_api;
- $query['_page'] = ($query['_page'] ?? 1);
+ $query['_page'] ??= 1;
$size = 100;
$query['_size'] = $size;
$query = array_merge($query, $task->filters);
@@ -95,9 +95,7 @@ class ExportService
$info_api = 'http://127.0.0.1:' . config('server.servers.0.port') . '/' . $subject . '/info';
}
$info = Guzzle::get($info_api, [], $headers);
- $table_headers = array_filter($info['payload']['tableHeader'], function ($item) {
- return $item['hidden'] ?? true;
- });
+ $table_headers = array_filter($info['payload']['tableHeader'], fn($item) => $item['hidden'] ?? true);
$table_headers_str = [];
foreach($table_headers as $item) {
$table_headers_str[] = $item['title'];
@@ -166,9 +164,8 @@ class ExportService
}
$arr = array_map(function ($item) {
$item = csv_big_num($item);
- $item = preg_replace('/\\n/', ' ', $item);
- return $item;
+ return preg_replace('/\\n/', ' ', (string) $item);
}, $arr);
return implode(',', array_map(function ($item) {
diff --git a/src/admin/src/Service/GlobalConfig.php b/src/admin/src/Service/GlobalConfig.php
index aa58ef3..e59833b 100755
--- a/src/admin/src/Service/GlobalConfig.php
+++ b/src/admin/src/Service/GlobalConfig.php
@@ -9,8 +9,8 @@ class GlobalConfig
public static function setConfig($name, $value, $ext = [], $raw = true)
{
$namespace = '';
- if(($pos = strpos($name, '.')) !== false) {
- $namespace = substr($name, 0, $pos);
+ if(($pos = strpos((string) $name, '.')) !== false) {
+ $namespace = substr((string) $name, 0, $pos);
}
if($raw) {
$value = json_encode($value);
diff --git a/src/admin/src/Service/Menu.php b/src/admin/src/Service/Menu.php
index 3526c33..c549a55 100755
--- a/src/admin/src/Service/Menu.php
+++ b/src/admin/src/Service/Menu.php
@@ -14,11 +14,7 @@ class Menu
{
$query = $this->query();
if (!empty($menu_ids)) {
- $query->where(function ($query) use ($menu_ids) {
- return $query->whereIn('id', $menu_ids)->orWhere(function ($query) use ($menu_ids) {
- return $query->where('is_menu', 0)->whereIn('pid', $menu_ids);
- });
- });
+ $query->where(fn($query) => $query->whereIn('id', $menu_ids)->orWhere(fn($query) => $query->where('is_menu', 0)->whereIn('pid', $menu_ids)));
}
$query = $query->select([
'id',
diff --git a/src/admin/src/Service/OperatorLogService.php b/src/admin/src/Service/OperatorLogService.php
index 7b16bd6..e66a94b 100755
--- a/src/admin/src/Service/OperatorLogService.php
+++ b/src/admin/src/Service/OperatorLogService.php
@@ -31,11 +31,11 @@ class OperatorLogService
try {
// 页面url和名称
$page_url = request()->header('page-url');
- $parse_url = parse_url($page_url);
+ $parse_url = parse_url((string) $page_url);
$fragment = $parse_url['fragment'] ?? '/'; // 抽出#后面的部分
$fragments = explode('?', $fragment); // 去掉querystring
$page_url = array_shift($fragments);
- $page_name = urldecode(request()->header('page-name', '')); // 页面名称
+ $page_name = urldecode((string) request()->header('page-name', '')); // 页面名称
$relation_ids = json_encode($ids, JSON_UNESCAPED_UNICODE); // 如果没有版本启用,则只记录操作的id
// 关联id-版本id记录
if(is_string($model) && $model) {
diff --git a/src/admin/src/Service/PermissionService.php b/src/admin/src/Service/PermissionService.php
index ecbf8c2..774b954 100755
--- a/src/admin/src/Service/PermissionService.php
+++ b/src/admin/src/Service/PermissionService.php
@@ -53,7 +53,7 @@ class PermissionService
if (!is_array($callback)) {
continue;
}
- $route = is_string($route) ? rtrim($route) : rtrim($v[0]->route);
+ $route = is_string($route) ? rtrim($route) : rtrim((string) $v[0]->route);
$route_key = "$http_method::{$route}";
$options[] = [
'value' => $route_key,
@@ -127,7 +127,7 @@ class PermissionService
if (empty($role_ids)) {
return [];
}
- $routes = RoleMenu::query()->distinct(true)->select(['router_id'])->whereIn('role_id', $role_ids)->get()->toArray();
+ $routes = RoleMenu::query()->distinct()->select(['router_id'])->whereIn('role_id', $role_ids)->get()->toArray();
return $routes ? array_column($routes, 'router_id') : [];
}
@@ -193,7 +193,7 @@ class PermissionService
$resources = [];
foreach ($list as $route) {
if (Str::contains($route['permission'], '::')) {
- $permissions = array_filter(explode(',', $route['permission']));
+ $permissions = array_filter(explode(',', (string) $route['permission']));
foreach ($permissions as $permission) {
[
$http_method,
@@ -206,7 +206,7 @@ class PermissionService
}
} else {
// 这段代码为兼容老的数据
- $paths = array_filter(explode('/', $route['path']));
+ $paths = array_filter(explode('/', (string) $route['path']));
$suffix = array_pop($paths);
$prefix = implode('/', $paths);
if ($suffix == 'list') {
@@ -245,7 +245,7 @@ class PermissionService
])->value('value')[$field] ?? [];
$data = [];
foreach ($open_apis as $route) {
- [$http_method, $uri] = explode("::", $route, 2);
+ [$http_method, $uri] = explode("::", (string) $route, 2);
$data[] = compact('http_method', 'uri');
}
@@ -256,13 +256,12 @@ class PermissionService
{
$cache_key = $this->getPermissionCacheKey($user_id);
$options = [
- 'routeParser' => 'FastRoute\\RouteParser\\Std',
- 'dataGenerator' => 'FastRoute\\DataGenerator\\GroupCountBased',
- 'dispatcher' => 'FastRoute\\Dispatcher\\GroupCountBased',
- 'routeCollector' => 'FastRoute\\RouteCollector',
+ 'routeParser' => \FastRoute\RouteParser\Std::class,
+ 'dataGenerator' => \FastRoute\DataGenerator\GroupCountBased::class,
+ 'dispatcher' => \FastRoute\Dispatcher\GroupCountBased::class,
+ 'routeCollector' => \FastRoute\RouteCollector::class,
];
if (!$dispatch_data = json_decode(Redis::get($cache_key), true)) {
- /** @var RouteCollector $routeCollector */
$route_collector = new $options['routeCollector'](new $options['routeParser'], new $options['dataGenerator']);
$this->processUserResource($route_collector, $user_id, $auth_type);
$dispatch_data = $route_collector->getData();
@@ -359,7 +358,7 @@ class PermissionService
protected function prepareHandler($handler): array
{
if (is_string($handler)) {
- if (strpos($handler, '@') !== false) {
+ if (str_contains($handler, '@')) {
return explode('@', $handler);
}
diff --git a/src/alert-manager/src/AlertJob.php b/src/alert-manager/src/AlertJob.php
index bd08842..6883b4a 100644
--- a/src/alert-manager/src/AlertJob.php
+++ b/src/alert-manager/src/AlertJob.php
@@ -10,12 +10,8 @@ use HyperfAdmin\RuleEngine\Context\TimeContext;
class AlertJob extends Job
{
- public $params;
-
- public function __construct($params)
+ public function __construct(public $params)
{
- // 这里最好是普通数据,不要使用携带 IO 的对象,比如 PDO 对象
- $this->params = $params;
}
public function handle()
diff --git a/src/alert-manager/src/AlertService.php b/src/alert-manager/src/AlertService.php
index f82deb1..a0c1866 100644
--- a/src/alert-manager/src/AlertService.php
+++ b/src/alert-manager/src/AlertService.php
@@ -22,8 +22,6 @@ class AlertService
*
* @param $params 数据
* @param int $delay 延时时间 单位秒
- *
- * @return bool
*/
public function push($params, int $delay = 0): bool
{
diff --git a/src/base-utils/src/AKSK.php b/src/base-utils/src/AKSK.php
index b4fbf51..4b749ea 100644
--- a/src/base-utils/src/AKSK.php
+++ b/src/base-utils/src/AKSK.php
@@ -6,14 +6,8 @@ namespace HyperfAdmin\BaseUtils;
*/
class AKSK
{
- private $access_key;
-
- private $secret_key;
-
- public function __construct($access_key, $secret_key)
+ public function __construct(private $access_key, private $secret_key)
{
- $this->access_key = $access_key;
- $this->secret_key = $secret_key;
}
public function token($method, $path, $host, $query, $content_type, $body)
@@ -40,7 +34,7 @@ class AKSK
private function digest($secret, $data)
{
- return hash_hmac('sha1', $data, $secret, true);
+ return hash_hmac('sha1', (string) $data, (string) $secret, true);
}
private function sign($secret, $data)
diff --git a/src/base-utils/src/AliyunOSS.php b/src/base-utils/src/AliyunOSS.php
index 07597c3..ffe2f16 100644
--- a/src/base-utils/src/AliyunOSS.php
+++ b/src/base-utils/src/AliyunOSS.php
@@ -128,14 +128,14 @@ class AliyunOSS
$conditions[] = [
'starts-with',
'$key',
- rtrim($dir, '/') . '/',
+ rtrim((string) $dir, '/') . '/',
];
}
$base64_policy = base64_encode(json_encode([
'expiration' => $expiration,
'conditions' => $conditions,
]));
- $signature = base64_encode(hash_hmac('sha1', $base64_policy, $this->access_key_secret, true));
+ $signature = base64_encode(hash_hmac('sha1', $base64_policy, (string) $this->access_key_secret, true));
return [
'OSSAccessKeyId' => $this->access_key,
@@ -144,7 +144,7 @@ class AliyunOSS
'Signature' => $signature,
'expire' => $end,
'dir' => $dir, //这个参数是设置用户上传指定的前缀
- 'cdn' => $this->cdn ? rtrim($this->cdn, '/') : '',
+ 'cdn' => $this->cdn ? rtrim((string) $this->cdn, '/') : '',
];
}
}
diff --git a/src/base-utils/src/Guzzle.php b/src/base-utils/src/Guzzle.php
index 2a6ece2..5c2f5e3 100644
--- a/src/base-utils/src/Guzzle.php
+++ b/src/base-utils/src/Guzzle.php
@@ -9,8 +9,6 @@ use GuzzleHttp\Cookie\CookieJar;
class Guzzle
{
/**
- * @param array $config
- *
* @return Client
*/
public static function create(array $config = [])
@@ -39,9 +37,9 @@ class Guzzle
$client = self::create([
'timeout' => $headers['timeout'] ?? 10.0,
]);
- $method = strtoupper($method);
+ $method = strtoupper((string) $method);
$options = [];
- $headers['charset'] = $headers['charset'] ?? 'UTF-8';
+ $headers['charset'] ??= 'UTF-8';
$options['headers'] = $headers;
if($method == 'GET' && $params) {
$options['query'] = $params;
@@ -49,7 +47,7 @@ class Guzzle
if($method == 'POST') {
$options['headers']['Content-Type'] = $headers['Content-Type'] ?? 'application/json';
if($options['headers']['Content-Type'] == 'application/json' && $params) {
- $options['body'] = \GuzzleHttp\json_encode($params ? $params : (object)[]);
+ $options['body'] = \GuzzleHttp\json_encode($params ?: (object)[]);
}
if($options['headers']['Content-Type'] == 'application/x-www-form-urlencoded' && $params) {
$options['form_params'] = $params;
@@ -92,9 +90,7 @@ class Guzzle
try {
$options['headers']['X-No-Proxy'] = true;
- $options['headers'] = array_merge($options['headers'], array_map(function ($item) {
- return $item[0];
- }, request_header()));
+ $options['headers'] = array_merge($options['headers'], array_map(fn($item) => $item[0], request_header()));
foreach ($options['headers'] as $key => $val) {
$new_key = implode('-', array_map('ucfirst', explode('-', $key)));
@@ -102,7 +98,7 @@ class Guzzle
unset($options['headers'][$key]);
}
- $parse =parse_url($url);
+ $parse =parse_url((string) $url);
$domain = isset($parse['port']) ? $parse['host'] . ':' . $parse['port'] : $parse['host'];
$options['cookies'] = CookieJar::fromArray(cookie(), $domain);
@@ -116,16 +112,11 @@ class Guzzle
$options['form_params'] = $form_data;
}
- $request = retry(3, function () use ($client, $request, $url, $options) {
- return $client->request($request->getMethod(), $url, $options);
- }, 50);
+ $request = retry(3, fn() => $client->request($request->getMethod(), $url, $options), 50);
$content = $request->getBody()->getContents();
$logger->info('proxy_success', compact('url', 'options'));
return my_json_decode($content);
- } catch (\GuzzleHttp\Exception\GuzzleException $e) {
- $logger->error('proxy_fail', compact('url', 'options', 'e'));
- throw new \Exception("proxy exception {$e}", 500);
- } catch (\Throwable $e) {
+ } catch (\GuzzleHttp\Exception\GuzzleException|\Throwable $e) {
$logger->error('proxy_fail', compact('url', 'options', 'e'));
throw new \Exception("proxy exception {$e}", 500);
}
diff --git a/src/base-utils/src/Helper/array.php b/src/base-utils/src/Helper/array.php
index 30b77c1..aa1963b 100644
--- a/src/base-utils/src/Helper/array.php
+++ b/src/base-utils/src/Helper/array.php
@@ -268,7 +268,7 @@ if(!function_exists('array_remove')) {
if(!function_exists('array_get_node')) {
function array_get_node($key, $arr = [])
{
- $path = explode('.', $key);
+ $path = explode('.', (string) $key);
foreach($path as $key) {
$key = trim($key);
if(empty($arr) || !isset($arr[$key])) {
diff --git a/src/base-utils/src/Helper/common.php b/src/base-utils/src/Helper/common.php
index 4f7ca61..9a8c06a 100644
--- a/src/base-utils/src/Helper/common.php
+++ b/src/base-utils/src/Helper/common.php
@@ -183,11 +183,11 @@ if (!function_exists('encrypt')) {
{
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";
//$nh = rand(0,64);
- $nh = strlen($txt) % 65;
+ $nh = strlen((string) $txt) % 65;
$ch = $chars[$nh];
$mdKey = md5($key . $ch);
$mdKey = substr($mdKey, $nh % 8, $nh % 8 + 7);
- $txt = base64_encode($txt);
+ $txt = base64_encode((string) $txt);
$tmp = '';
$i = 0;
$j = 0;
@@ -239,7 +239,7 @@ if (!function_exists('is_valid_date')) {
if (!function_exists('str_var_replace')) {
function str_var_replace($str, $data)
{
- preg_match_all('/{([\s\S]*?)}/', $str, $match);
+ preg_match_all('/{([\s\S]*?)}/', (string) $str, $match);
$values = [];
$vars = [];
foreach (($match && $match[1] ? $match[1] : []) as $item) {
@@ -256,7 +256,7 @@ if (!function_exists('convert_memory')) {
{
$unit = ['b', 'kb', 'mb', 'gb', 'tb', 'pb'];
- return @round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
+ return @round($size / 1024 ** $i = floor(log($size, 1024)), 2) . ' ' . $unit[$i];
}
}
@@ -277,7 +277,7 @@ if (!function_exists('read_file')) {
if (!function_exists('get_extension')) {
function get_extension($file)
{
- return substr(strrchr($file, '.'), 1);
+ return substr(strrchr((string) $file, '.'), 1);
}
}
@@ -363,7 +363,7 @@ if (!function_exists('http_build_url')) {
if (!function_exists('replace_url_query')) {
function replace_url_query($url, array $query)
{
- $parse = parse_url($url);
+ $parse = parse_url((string) $url);
parse_str($parse['query'], $p);
$parse['query'] = urldecode(http_build_query(array_merge($p, $query)));
@@ -425,7 +425,7 @@ if (!function_exists('my_json_decode')) {
if (!$json) {
return $default;
}
- $json = preg_replace('@//[^"]+?$@mui', '', $json);
+ $json = preg_replace('@//[^"]+?$@mui', '', (string) $json);
$json = preg_replace('@^\s*//.*?$@mui', '', $json);
$json = $json ? @json_decode($json, true) : $default;
if (is_null($json)) {
@@ -524,10 +524,10 @@ if (!function_exists('generate_random_str')) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$random_str = '';
for ($i = 0; $i < $length; $i++) {
- $random_str .= $characters[rand(0, strlen($characters) - 1)];
+ $random_str .= $characters[random_int(0, strlen($characters) - 1)];
}
- return trim($prefix) . $random_str;
+ return trim((string) $prefix) . $random_str;
}
}
@@ -537,7 +537,7 @@ if (!function_exists('get_dir_filename')) {
$handler = opendir($dir);
$files = [];
while (($filename = readdir($handler)) !== false) {
- $filter_extension = $extension === '' ? true : strpos($filename, $extension);
+ $filter_extension = $extension === '' ? true : strpos($filename, (string) $extension);
if (!($filename !== "." && $filename !== ".." && $filter_extension)) {
continue;
}
@@ -556,34 +556,33 @@ if (!function_exists('get_dir_filename')) {
if (!function_exists('sp_encrypt')) {
function sp_encrypt($plaintext, $key)
{
- $key = substr(sha1($key, true), 0, 16);
+ $key = substr(sha1((string) $key, true), 0, 16);
$iv = openssl_random_pseudo_bytes(16);
$ciphertext = openssl_encrypt($plaintext, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
- $ciphertext_base64 = urlsafe_b64encode($iv . $ciphertext);
- return $ciphertext_base64;
+ return urlsafe_b64encode($iv . $ciphertext);
}
}
if (!function_exists('sp_decrypt')) {
function sp_decrypt($ciphertext_base64, $key)
{
- $key = substr(sha1($key, true), 0, 16);
+ $key = substr(sha1((string) $key, true), 0, 16);
$ciphertext_dec = urlsafe_b64decode($ciphertext_base64);
$iv_size = 16;
- $iv_dec = substr($ciphertext_dec, 0, $iv_size);
- $ciphertext_dec = substr($ciphertext_dec, $iv_size);
- $plaintext_dec = openssl_decrypt($ciphertext_dec, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv_dec);
+ $iv_dec = substr((string) $ciphertext_dec, 0, $iv_size);
+ $ciphertext_dec = substr((string) $ciphertext_dec, $iv_size);
- return $plaintext_dec;
+ return openssl_decrypt($ciphertext_dec, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv_dec);
}
}
if (!function_exists('urlsafe_b64encode')) {
function urlsafe_b64encode($string)
{
- $data = base64_encode($string);
- $data = str_replace([
+ $data = base64_encode((string) $string);
+
+ return str_replace([
'+',
'/',
// '=',
@@ -592,8 +591,6 @@ if (!function_exists('urlsafe_b64encode')) {
'_',
// '',
], $data);
-
- return $data;
}
}
@@ -662,7 +659,6 @@ if (!function_exists('cookie')) {
/**
* 快捷方式,返回 request 相关 cookie
*
- * @param string $key
*
* @return mixed
*/
@@ -684,7 +680,6 @@ if (!function_exists('request_header')) {
/**
* 快捷方式,返回 request 相关 header
*
- * @param string $key
*
* @return mixed
*/
@@ -754,10 +749,10 @@ if (!function_exists('is_cli')) {
if (!function_exists('xml2array')) {
function xml2array($xml_string, $key = '')
{
- if (strpos($xml_string, '<') === false) {
+ if (!str_contains((string) $xml_string, '<')) {
return [];
}
- $array = (array)@simplexml_load_string($xml_string, 'SimpleXMLElement', LIBXML_NOCDATA);
+ $array = (array)@simplexml_load_string((string) $xml_string, 'SimpleXMLElement', LIBXML_NOCDATA);
if (!$key) {
return $array;
}
@@ -804,7 +799,7 @@ if (!function_exists('now')) {
if (!function_exists('is_json_str')) {
function is_json_str($string)
{
- json_decode($string);
+ json_decode((string) $string);
return (json_last_error() == JSON_ERROR_NONE);
}
}
diff --git a/src/base-utils/src/Helper/system.php b/src/base-utils/src/Helper/system.php
index d09d67d..0c5880d 100644
--- a/src/base-utils/src/Helper/system.php
+++ b/src/base-utils/src/Helper/system.php
@@ -123,17 +123,16 @@ if (!function_exists('filesystem_private_url')) {
}
$filesystem = make(FilesystemFactory::class)->get($bucket);
if (Str::startsWith($save_file_path, 'http')) {
- $save_file_path = parse_url($save_file_path)['path'];
+ $save_file_path = parse_url((string) $save_file_path)['path'];
$parts = explode('/', $save_file_path);
unset($parts[0]);
$save_file_path = implode('/', $parts);
}
- $save_file_path = preg_replace('@^oss/@', '', $save_file_path);
+ $save_file_path = preg_replace('@^oss/@', '', (string) $save_file_path);
try {
switch (config("file.storage.{$bucket}.driver")) {
case \Hyperf\Filesystem\Adapter\LocalAdapterFactory::class:
return config("file.storage.{$bucket}.cdn") . $save_file_path;
- break;
case \Hyperf\Filesystem\Adapter\AliyunOssAdapterFactory::class;
$adapter = $filesystem->getAdapter();
if (method_exists($adapter, 'signUrl')) {
@@ -188,11 +187,7 @@ if (!function_exists('process_list_filter')) {
$processes = [];
}
if (is_array($ignore)) {
- $processes = array_filter($processes, function ($item) use ($ignore) {
- return !Str::startsWith($item, array_map(function ($each) {
- return Str::replaceLast('*', '', $each);
- }, $ignore));
- });
+ $processes = array_filter($processes, fn($item) => !Str::startsWith($item, array_map(fn($each) => Str::replaceLast('*', '', $each), $ignore)));
}
}
if ($active = $rule['active'] ?? []) {
diff --git a/src/base-utils/src/JWT.php b/src/base-utils/src/JWT.php
index 73bf7ab..6ac6f25 100644
--- a/src/base-utils/src/JWT.php
+++ b/src/base-utils/src/JWT.php
@@ -37,9 +37,8 @@ class JWT
}
$base64_header = self::base64UrlEncode(json_encode(self::$header, JSON_UNESCAPED_UNICODE));
$base64_payload = self::base64UrlEncode(json_encode($payload, JSON_UNESCAPED_UNICODE));
- $token = $base64_header . '.' . $base64_payload . '.' . self::signature($base64_header . '.' . $base64_payload, self::$key, self::$header['alg']);
- return $token;
+ return $base64_header . '.' . $base64_payload . '.' . self::signature($base64_header . '.' . $base64_payload, self::$key, self::$header['alg']);
}
/**
@@ -116,9 +115,7 @@ class JWT
* HMACSHA256签名 https://jwt.io/ 中HMACSHA256签名实现
*
* @param string $input 为base64UrlEncode(header).".".base64UrlEncode(payload)
- * @param string $key
* @param string $alg 算法方式
- *
* @return mixed
*/
private static function signature(string $input, string $key, string $alg = 'HS256')
diff --git a/src/base-utils/src/Listener/DbQueryExecutedListener.php b/src/base-utils/src/Listener/DbQueryExecutedListener.php
index 1aa101c..71ff93b 100644
--- a/src/base-utils/src/Listener/DbQueryExecutedListener.php
+++ b/src/base-utils/src/Listener/DbQueryExecutedListener.php
@@ -15,9 +15,6 @@ class DbQueryExecutedListener implements ListenerInterface
];
}
- /**
- * @param object $event
- */
public function process(object $event)
{
if($event instanceof QueryExecuted) {
@@ -73,9 +70,7 @@ class DbQueryExecutedListener implements ListenerInterface
/**
* 获取sql类型
*
- * @param string $sql
*
- * @return string
*/
protected function getSqlType(string $sql): string
{
diff --git a/src/base-utils/src/Model/BaseModel.php b/src/base-utils/src/Model/BaseModel.php
index d1afc54..8a623ef 100644
--- a/src/base-utils/src/Model/BaseModel.php
+++ b/src/base-utils/src/Model/BaseModel.php
@@ -35,7 +35,7 @@ class BaseModel extends Model
*/
public function where2query($where, $query = null)
{
- $query = $query ?? $this->newQuery();
+ $query ??= $this->newQuery();
if (!$where) {
return $query;
}
@@ -43,9 +43,7 @@ class BaseModel extends Model
unset($where['__logic']);
foreach ($where as $key => $item) {
if (is_numeric($key) && is_array($item)) {
- $query->where(function ($query) use ($item) {
- return $this->where2query($item, $query);
- }, null, null, $boolean);
+ $query->where(fn($query) => $this->where2query($item, $query), null, null, $boolean);
continue;
}
if (!is_array($item)) {
@@ -105,20 +103,20 @@ class BaseModel extends Model
$where = [];
$kw = request()->input('kw');
if ($kw) {
- if (preg_match_all('/^\d+$/', $kw)) {
+ if (preg_match_all('/^\d+$/', (string) $kw)) {
$where[$id_key] = $kw;
- } elseif (preg_match_all('/^\d+?,/', $kw)) {
- $where[$id_key] = explode(',', $kw);
+ } elseif (preg_match_all('/^\d+?,/', (string) $kw)) {
+ $where[$id_key] = explode(',', (string) $kw);
} else {
$where[$name_key] = ['like' => "%{$kw}%"];
}
}
$id = request()->input('id');
if ($id) {
- if (preg_match_all('/^\d+$/', $id)) {
+ if (preg_match_all('/^\d+$/', (string) $id)) {
$where[$id_key] = $id;
- } elseif (preg_match_all('/^\d+?,/', $id)) {
- $where[$id_key] = explode(',', $id);
+ } elseif (preg_match_all('/^\d+?,/', (string) $id)) {
+ $where[$id_key] = explode(',', (string) $id);
}
}
if (!$default_query && !$where) {
@@ -126,7 +124,7 @@ class BaseModel extends Model
}
$where['__logic'] = $logic;
$where = array_merge($where, $extra_where);
- $attr['limit'] = $attr['limit'] ?? 100;
+ $attr['limit'] ??= 100;
return $this->list($where, $attr)->toArray();
}
diff --git a/src/base-utils/src/Model/EsBaseModel.php b/src/base-utils/src/Model/EsBaseModel.php
index 22229ad..f75a61c 100644
--- a/src/base-utils/src/Model/EsBaseModel.php
+++ b/src/base-utils/src/Model/EsBaseModel.php
@@ -276,7 +276,7 @@ class EsBaseModel
];
try {
return $this->client->get($params);
- } catch (\Exception $e) {
+ } catch (\Exception) {
return false;
}
}
@@ -491,7 +491,7 @@ class EsBaseModel
foreach ($val_tile as $operator => $each) {
if (isset($this->operator_map[$operator])) {
$mapping_date_format = $this->mapping['properties'][$key]['format'] ?? null;
- $query['bool']['filter']['bool']['must'][$index]['range'][$key][$this->operator_map[$operator]] = $is_time_field ? date($mapping_date_format ? $this->transDateFormat($mapping_date_format) : "Y-m-d\TH:i:s", strtotime($each)) : $each;
+ $query['bool']['filter']['bool']['must'][$index]['range'][$key][$this->operator_map[$operator]] = $is_time_field ? date($mapping_date_format ? $this->transDateFormat($mapping_date_format) : "Y-m-d\TH:i:s", strtotime((string) $each)) : $each;
}
}
continue;
@@ -500,9 +500,7 @@ class EsBaseModel
if (is_array($val)) {
$query['bool']['filter']['bool']['must'][] = [
'terms' => [
- $key => array_map(function ($each) {
- return is_numeric($each) ? $each * 1 : $each;
- }, $val),
+ $key => array_map(fn($each) => is_numeric($each) ? $each * 1 : $each, $val),
],
];
continue;
diff --git a/src/base-utils/src/Redis/Redis.php b/src/base-utils/src/Redis/Redis.php
index d2256a8..2037e98 100644
--- a/src/base-utils/src/Redis/Redis.php
+++ b/src/base-utils/src/Redis/Redis.php
@@ -12,17 +12,14 @@ use HyperfAdmin\BaseUtils\Log;
*/
class Redis
{
- private $pool;
-
/**
* @var \Redis
*/
private $redis;
- public function __construct($pool = 'default')
+ public function __construct(private $pool = 'default')
{
- $this->pool = $pool;
- $this->redis = container(RedisFactory::class)->get($pool);
+ $this->redis = container(RedisFactory::class)->get($this->pool);
}
public static function conn($pool = 'default')
@@ -73,8 +70,6 @@ class Redis
}
/**
- * @param string $name
- * @param int $expired
* @param mixed $callable
*
* @return array|null
@@ -84,7 +79,7 @@ class Redis
if ($this->redis->exists($name)) {
Log::get('redis')->info(sprintf('get %s from cache', $name));
- return json_decode($this->redis->get($name), true);
+ return json_decode((string) $this->redis->get($name), true);
}
$data = call($callable);
if ($data) {
diff --git a/src/base-utils/src/Redis/RedisArray.php b/src/base-utils/src/Redis/RedisArray.php
index 466d664..3ce9741 100644
--- a/src/base-utils/src/Redis/RedisArray.php
+++ b/src/base-utils/src/Redis/RedisArray.php
@@ -25,7 +25,7 @@ class RedisArray implements \ArrayAccess
{
$val = $this->redis->hGet($this->name, (string)$offset);
if(is_json_str($val)) {
- return json_decode($val, true);
+ return json_decode((string) $val, true);
}
return $val;
diff --git a/src/base-utils/src/Redis/RedisQueue.php b/src/base-utils/src/Redis/RedisQueue.php
index d7ee8b4..c054165 100644
--- a/src/base-utils/src/Redis/RedisQueue.php
+++ b/src/base-utils/src/Redis/RedisQueue.php
@@ -5,10 +5,6 @@ use Hyperf\Redis\RedisFactory;
class RedisQueue
{
- protected $cluster = 'default';
-
- protected $queue_name = 'redis_queue_default';
-
protected $queue_wait_ack_suffix = 'wait_ack';
protected $wait_timeout = 10;
@@ -20,11 +16,9 @@ class RedisQueue
*/
protected $redis;
- public function __construct($queue_name, $cluster = 'default')
+ public function __construct(protected $queue_name, protected $cluster = 'default')
{
- $this->queue_name = $queue_name;
- $this->cluster = $cluster;
- $this->redis = container(RedisFactory::class)->get($cluster);
+ $this->redis = container(RedisFactory::class)->get($this->cluster);
}
public function length($name = '')
@@ -65,8 +59,8 @@ class RedisQueue
}
$msg = $this->getOne($this->queue_name, $filter);
if($msg) {
- $msg_id = md5($msg);
- $data = json_decode($msg, true);
+ $msg_id = md5((string) $msg);
+ $data = json_decode((string) $msg, true);
$ret = array_merge($data, ['_queue_msg_id' => $msg_id]);
$this->redis->rPush($this->getAckQueueName(), json_encode(array_merge($ret, ['_time' => time()])));
@@ -87,7 +81,7 @@ class RedisQueue
}
foreach(range(0, $len - 1) as $index) {
$ele = $this->redis->lIndex($queue_name, $index);
- $ele_array = json_decode($ele, true);
+ $ele_array = json_decode((string) $ele, true);
if(array_intersect($ele_array, $filter)) {
$this->redis->lRem($queue_name, $ele, 1);
@@ -132,7 +126,7 @@ class RedisQueue
{
$list = $this->redis->lRange($this->getAckQueueName(), 0, -1);
foreach($list as &$item) {
- $item = json_decode($item, true);
+ $item = json_decode((string) $item, true);
}
unset($item);
diff --git a/src/base-utils/src/Scaffold/Controller/AbstractController.php b/src/base-utils/src/Scaffold/Controller/AbstractController.php
index a92d207..3473a6c 100644
--- a/src/base-utils/src/Scaffold/Controller/AbstractController.php
+++ b/src/base-utils/src/Scaffold/Controller/AbstractController.php
@@ -77,9 +77,7 @@ abstract class AbstractController extends Controller
*/
public function info()
{
- $tableHeader = array_values(array_filter($this->getListHeader(), function ($item) {
- return !($item['hidden'] ?? false);
- }));
+ $tableHeader = array_values(array_filter($this->getListHeader(), fn($item) => !($item['hidden'] ?? false)));
$filter = $this->getListFilters();
$actions = $this->options['table']['rowActions'] ?? [];
$actions = $this->buttonConfigConvert($actions);
@@ -125,7 +123,7 @@ abstract class AbstractController extends Controller
foreach ($config as $key => $item) {
$buttons[$key]['text'] = $item['text'] ?? '';
$buttons[$key]['type'] = isset($item['target']) ? $item['type'] ?? 'jump' : (isset($item['rules']) ? 'form' : (isset($item['api']) ? 'api' : 'jump'));
- $buttons[$key]['target'] = isset($item['target']) ? $item['target'] : (isset($item['api']) ? $item['api'] : ($item['action'] ?? ''));
+ $buttons[$key]['target'] = $item['target'] ?? $item['api'] ?? $item['action'] ?? '';
$buttons[$key]['props'] = isset($item['target']) ? $item['props'] ?? [] : [
'icon' => $item['icon'] ?? '',
'circle' => $item['circle'] ?? false,
@@ -160,11 +158,7 @@ abstract class AbstractController extends Controller
$page = $this->request->input('_page', 1);
$size = $this->request->input('_size', 20);
$table_options = $this->getListHeader();
- $columns = array_unique(array_values(array_map(function ($item) {
- return explode('.', $item)[0];
- }, array_column(array_filter($table_options, function ($each) {
- return isset($each['virtual_field']) ? !$each['virtual_field'] : true;
- }), 'field'))));
+ $columns = array_unique(array_values(array_map(fn($item) => explode('.', (string) $item)[0], array_column(array_filter($table_options, fn($each) => isset($each['virtual_field']) ? !$each['virtual_field'] : true), 'field'))));
$filter_options = $this->getListFilters();
$filters = [];
if (!empty($filter_options)) {
@@ -184,23 +178,13 @@ abstract class AbstractController extends Controller
}
$conditions = $this->options['where'] ?? [];
foreach ($filters as $field => $value) {
- switch ($filter_options[$field]['search_type'] ?? '') {
- case 'between':
- $conditions[$field] = ['between' => $value];
- break;
- case 'full_like':
- $conditions[$field] = ['like' => "%{$value}%"];
- break;
- case 'suffix_like':
- $conditions[$field] = ['like' => "{$value}%"];
- break;
- case 'prefix_like':
- $conditions[$field] = ['like' => "%{$value}"];
- break;
- default:
- $conditions[$field] = $value;
- break;
- }
+ $conditions[$field] = match ($filter_options[$field]['search_type'] ?? '') {
+ 'between' => ['between' => $value],
+ 'full_like' => ['like' => "%{$value}%"],
+ 'suffix_like' => ['like' => "{$value}%"],
+ 'prefix_like' => ['like' => "%{$value}"],
+ default => $value,
+ };
}
$order_by = $this->options['order_by'] ?? '';
$group_by = $this->options['group_by'] ?? '';
@@ -322,7 +306,7 @@ abstract class AbstractController extends Controller
$ret = Db::connection($pool)->table("{$db}.{$table}")->whereIn($foreign_key, $where)->get($columns)->toArray();
array_change_v2k($ret, $foreign_key);
foreach ($list as &$item) {
- $append = isset($ret[$item[$local_key]]) ? $ret[$item[$local_key]] : $default;
+ $append = $ret[$item[$local_key]] ?? $default;
unset($append[$foreign_key]);
$item = array_merge($item, $append);
}
@@ -352,7 +336,7 @@ abstract class AbstractController extends Controller
$ret = Db::connection($pool)->table("{$db}.{$table}")->whereIn($foreign_key, $where)->get($columns)->toArray();
$ret = array_group_by($ret, $foreign_key);
foreach ($list as &$item) {
- $group = isset($ret[$item[$local_key]]) ? $ret[$item[$local_key]] : $default;
+ $group = $ret[$item[$local_key]] ?? $default;
$append = [];
foreach (array_keys($default) as $field) {
$append[$field] = array_values(array_unique(array_filter(array_column($group, $field))));
@@ -366,7 +350,7 @@ abstract class AbstractController extends Controller
public function explodeHasStr($has_str)
{
- $check = preg_match('/([a-zA-Z_0-9]+\.)?([a-zA-Z_0-9]+)\.([a-zA-Z_0-9]+):([a-zA-Z_0-9]+->)?([a-zA-Z_,0-9 ]+)/', $has_str, $match);
+ $check = preg_match('/([a-zA-Z_0-9]+\.)?([a-zA-Z_0-9]+)\.([a-zA-Z_0-9]+):([a-zA-Z_0-9]+->)?([a-zA-Z_,0-9 ]+)/', (string) $has_str, $match);
if ($check === 0) {
return false;
}
@@ -377,11 +361,9 @@ abstract class AbstractController extends Controller
$table,
$local_key,
$foreign_key,
- ] = array_map(function ($item) {
- return str_replace(['.', '->'], '', $item);
- }, $match);
- $pool = $pool ? $pool : 'default';
- $local_key = $local_key ? $local_key : 'id';
+ ] = array_map(fn($item) => str_replace(['.', '->'], '', $item), $match);
+ $pool = $pool ?: 'default';
+ $local_key = $local_key ?: 'id';
$columns = explode(',', $foreign_key);
if (!$columns) {
return false;
@@ -389,7 +371,7 @@ abstract class AbstractController extends Controller
$foreign_key = $columns[0];
$default = [];
foreach ($columns as $each) {
- $default[trim(preg_replace('/[\w ]+as +/i', '', trim($each)))] = null;
+ $default[trim((string) preg_replace('/[\w ]+as +/i', '', trim($each)))] = null;
}
return array_values(compact('pool', 'db', 'table', 'local_key', 'foreign_key', 'columns', 'default'));
}
@@ -397,11 +379,7 @@ abstract class AbstractController extends Controller
public function getTreeNodeChilds($id)
{
$tableOptions = $this->getListHeader();
- $columns = array_unique(array_values(array_map(function ($item) {
- return explode('.', $item)[0];
- }, array_column(array_filter($tableOptions, function ($each) {
- return isset($each['virtual_field']) ? !$each['virtual_field'] : true;
- }), 'field'))));
+ $columns = array_unique(array_values(array_map(fn($item) => explode('.', (string) $item)[0], array_column(array_filter($tableOptions, fn($each) => isset($each['virtual_field']) ? !$each['virtual_field'] : true), 'field'))));
$order_by = $this->options['order_by'] ?? '';
$attr['select'] = $columns;
$order_by && $attr['order_by'] = $order_by;
@@ -677,13 +655,9 @@ abstract class AbstractController extends Controller
public function getFields()
{
$form = $this->formOptionsConvert();
- $form = array_filter($form, function ($item) {
- return !($item['virtual_field'] ?? false);
- });
+ $form = array_filter($form, fn($item) => !($item['virtual_field'] ?? false));
$fields = array_column($form, 'field');
- $fields = array_map(function ($item) {
- return explode('.', $item)[0];
- }, $fields);
+ $fields = array_map(fn($item) => explode('.', (string) $item)[0], $fields);
return array_unique($fields);
}
@@ -700,7 +674,7 @@ abstract class AbstractController extends Controller
$filter_options = [];
foreach ($this->options['filter'] as $key => $item) {
$filter_option_key = is_array($item) ? $key : str_replace('%', '', $item);
- $field_extra = explode('|', $filter_option_key);
+ $field_extra = explode('|', (string) $filter_option_key);
$field = $field_extra[0];
$form_option = [];
if (isset($form_fields[$field]) && isset($form_options[$form_fields[$field]])) {
@@ -726,7 +700,7 @@ abstract class AbstractController extends Controller
if (Str::startsWith($item, '%') !== false && Str::endsWith($item, '%') !== false) {
$search_type = 'full_like';
}
- if (strpos(($filter_options[$filter_option_key]['type'] ?? ''), 'range') !== false) {
+ if (str_contains(($filter_options[$filter_option_key]['type'] ?? ''), 'range')) {
$search_type = 'between';
}
$filter_options[$filter_option_key]['search_type'] = $search_type;
@@ -803,7 +777,7 @@ abstract class AbstractController extends Controller
}
$form = [];
foreach ($formOption as $key => $val) {
- $field_extra = explode('|', $key);
+ $field_extra = explode('|', (string) $key);
$field = $field_extra[0];
$title = $field_extra[1] ?? $field_extra[0];
$biz = [];
@@ -817,7 +791,7 @@ abstract class AbstractController extends Controller
continue;
}
$rule = $biz['rule'] ?? '';
- $rules = is_array($rule) ? $rule : explode('|', $rule);
+ $rules = is_array($rule) ? $rule : explode('|', (string) $rule);
$_form = [
'title' => $title,
'field' => $field,
@@ -831,15 +805,15 @@ abstract class AbstractController extends Controller
$_form['value'] = (array)$_form['value'];
break;
case 'image':
- $biz['props']['limit'] = $biz['props']['limit'] ?? 1;
+ $biz['props']['limit'] ??= 1;
break;
case 'select':
if (isset($biz['props']['selectApi']) && $_form['value']) {
- $biz['options'] = select_options($biz['props']['selectApi'], is_array($_form['value']) ? $_form['value'] : explode(',', $_form['value']));
+ $biz['options'] = select_options($biz['props']['selectApi'], is_array($_form['value']) ? $_form['value'] : explode(',', (string) $_form['value']));
}
// fixme sub-form value 不好取, 先默认查一次
if (isset($biz['props']['selectApi']) && $depth) {
- $biz['options'] = select_options($biz['props']['selectApi'], is_array($_form['value']) ? $_form['value'] : explode(',', $_form['value']));
+ $biz['options'] = select_options($biz['props']['selectApi'], is_array($_form['value']) ? $_form['value'] : explode(',', (string) $_form['value']));
}
break;
default:
@@ -943,7 +917,7 @@ abstract class AbstractController extends Controller
*/
public function getFormRules($options = null)
{
- $formOptions = $options ? $options : ($this->options['form'] ?? []);
+ $formOptions = $options ?: $this->options['form'] ?? [];
$rules = [];
foreach ($formOptions as $key => $val) {
if (is_array($val) && ($val['form'] ?? true) === false) {
@@ -978,7 +952,7 @@ abstract class AbstractController extends Controller
$data_source = $this->request->all();
$pk_val = $data_source[$pk] ?? null;
foreach ($rules as &$val) {
- $rule_parts = is_array($val) ? $val : explode('|', $val);
+ $rule_parts = is_array($val) ? $val : explode('|', (string) $val);
foreach ($rule_parts as &$rule) {
if ($pk_val && is_string($rule) && Str::startsWith($rule, 'unique')) {
// unique rule without itself in update
@@ -1088,7 +1062,7 @@ abstract class AbstractController extends Controller
$up = $this->request->all();
$up_fields = array_keys($up);
foreach ($rules as $key => $val) {
- $field_extra = explode('|', $key);
+ $field_extra = explode('|', (string) $key);
$field = $field_extra[0];
if (!in_array($field, $up_fields)) {
unset($rules[$key]);
@@ -1117,7 +1091,6 @@ abstract class AbstractController extends Controller
*
* @param string $message
* @param int $code
- * @param \Throwable $previous
*
* @return void
* @throws \Exception
@@ -1141,7 +1114,7 @@ abstract class AbstractController extends Controller
{
$validates = [];
foreach ($rules as $item) {
- $parts = explode(':', $item);
+ $parts = explode(':', (string) $item);
$rule = array_shift($parts);
switch ($rule) {
case 'required':
@@ -1232,9 +1205,7 @@ abstract class AbstractController extends Controller
$filters = [];
if ($filter_options = $this->getListFilters()) {
array_change_v2k($filter_options, 'field');
- $filters = array_filter($this->request->inputs(array_keys($filter_options)), function ($item) {
- return !in_array($item, [null, '']);
- });
+ $filters = array_filter($this->request->inputs(array_keys($filter_options)), fn($item) => !in_array($item, [null, '']));
}
$list = [];
if (is_array($notices)) {
@@ -1289,7 +1260,7 @@ abstract class AbstractController extends Controller
{
$const = [];
if ($model = $this->model_class ?? '') {
- $const = constant($model . '::' . strtoupper($field)) ?? [];
+ $const = constant($model . '::' . strtoupper((string) $field)) ?? [];
}
$options = [];
foreach ($const as $k => $v) {
@@ -1305,8 +1276,6 @@ abstract class AbstractController extends Controller
/**
* 新版本检查
*
- * @param int $id
- * @param int $last_ver_id
*
* @return array
*/
diff --git a/src/base-utils/src/Scaffold/Controller/Controller.php b/src/base-utils/src/Scaffold/Controller/Controller.php
index 305a7bb..b57874e 100644
--- a/src/base-utils/src/Scaffold/Controller/Controller.php
+++ b/src/base-utils/src/Scaffold/Controller/Controller.php
@@ -82,7 +82,7 @@ abstract class Controller
protected function getCalledSource($get_arr = false)
{
$uri = $this->getRequestUri();
- $parts = array_filter(explode('/', $uri));
+ $parts = array_filter(explode('/', (string) $uri));
if ($get_arr) {
return array_values($parts);
}
@@ -98,9 +98,7 @@ abstract class Controller
/**
* 返回成功的请求
*
- * @param array $data
* @param string $message
- *
* @return array
*/
public function success(array $data = [], $message = '操作成功')
@@ -115,8 +113,6 @@ abstract class Controller
}
/**
- * @param int $code
- * @param string|null $message
*
* @return array
*/
diff --git a/src/base-utils/src/classmap/OssAdapter.php b/src/base-utils/src/classmap/OssAdapter.php
index c9e322e..91dca43 100644
--- a/src/base-utils/src/classmap/OssAdapter.php
+++ b/src/base-utils/src/classmap/OssAdapter.php
@@ -47,26 +47,21 @@ class OssAdapter extends AbstractAdapter
$isCName = false;
$token = null;
$this->supports = new Supports();
- try {
- $this->bucket = $config['bucket'];
- empty($config['endpoint']) ? null : $this->endpoint = $config['endpoint'];
- empty($config['timeout']) ? $config['timeout'] = 3600 : null;
- empty($config['connectTimeout']) ? $config['connectTimeout'] = 10 : null;
-
- if (!empty($config['isCName'])) {
- $isCName = true;
- }
- if (!empty($config['token'])) {
- $token = $config['token'];
- }
- $this->oss = new OssClient(
- $config['accessId'], $config['accessSecret'], $this->endpoint, $isCName, $token
- );
- $this->oss->setTimeout($config['timeout']);
- $this->oss->setConnectTimeout($config['connectTimeout']);
- } catch (Exception $e) {
- throw $e;
+ $this->bucket = $config['bucket'];
+ empty($config['endpoint']) ? null : $this->endpoint = $config['endpoint'];
+ empty($config['timeout']) ? $config['timeout'] = 3600 : null;
+ empty($config['connectTimeout']) ? $config['connectTimeout'] = 10 : null;
+ if (!empty($config['isCName'])) {
+ $isCName = true;
}
+ if (!empty($config['token'])) {
+ $token = $config['token'];
+ }
+ $this->oss = new OssClient(
+ $config['accessId'], $config['accessSecret'], $this->endpoint, $isCName, $token
+ );
+ $this->oss->setTimeout($config['timeout']);
+ $this->oss->setConnectTimeout($config['connectTimeout']);
}
/**
@@ -214,7 +209,6 @@ class OssAdapter extends AbstractAdapter
* Create a directory.
*
* @param string $dirname directory name
- * @param Config $config
*
* @return array|false
*/
@@ -422,7 +416,6 @@ class OssAdapter extends AbstractAdapter
/**
* Get OSS Options
- * @param Config $config
* @return array
*/
private function getOssOptions(Config $config)
diff --git a/src/base-utils/src/classmap/ProviderConfig.php b/src/base-utils/src/classmap/ProviderConfig.php
index 1a2af3b..6d1ca8e 100644
--- a/src/base-utils/src/classmap/ProviderConfig.php
+++ b/src/base-utils/src/classmap/ProviderConfig.php
@@ -22,15 +22,13 @@ class ProviderConfig
{
if (!static::$providerConfigs) {
$providers = Composer::getMergedExtra('hyperf')['config'] ?? [];
- $handel = function ($arr) {
- return array_map(function ($item) {
- $explode = explode('@', $item);
- return [
- 'provider' => $explode[0],
- 'weight' => $explode[1] ?? 0,
- ];
- }, $arr);
- };
+ $handel = (fn($arr) => array_map(function ($item) {
+ $explode = explode('@', $item);
+ return [
+ 'provider' => $explode[0],
+ 'weight' => $explode[1] ?? 0,
+ ];
+ }, $arr));
$package = $handel($providers);
array_change_v2k($package, 'provider');
@@ -43,9 +41,7 @@ class ProviderConfig
}
$providers = array_values($package);
- usort($providers, function ($a, $b) {
- return intval($a['weight'] > $b['weight']);
- });
+ usort($providers, fn($a, $b) => intval($a['weight'] > $b['weight']));
$providers = array_column($providers, 'provider');
static::$providerConfigs = static::loadProviders($providers);
}
diff --git a/src/base-utils/src/config/routes.php b/src/base-utils/src/config/routes.php
index 89e0b1e..4e1dc02 100644
--- a/src/base-utils/src/config/routes.php
+++ b/src/base-utils/src/config/routes.php
@@ -3,9 +3,7 @@
use Hyperf\HttpServer\Router\Router;
// 健康检查
-Router::get('/ping', function () {
- return [
- 'code' => 200,
- 'message' => 'ok',
- ];
-});
+Router::get('/ping', fn() => [
+ 'code' => 200,
+ 'message' => 'ok',
+]);
diff --git a/src/config-center/src/Controller/ConfigCenterController.php b/src/config-center/src/Controller/ConfigCenterController.php
index 3b44404..d7b6a6d 100644
--- a/src/config-center/src/Controller/ConfigCenterController.php
+++ b/src/config-center/src/Controller/ConfigCenterController.php
@@ -94,7 +94,7 @@ class ConfigCenterController extends AdminAbstractController
public function beforeFormResponse($id, &$data)
{
- $data['owner_uids'] = array_filter(array_map('intval', explode(',', $data['owner_uids'])));
+ $data['owner_uids'] = array_filter(array_map('intval', explode(',', (string) $data['owner_uids'])));
}
public function beforeSave($id, &$data)
diff --git a/src/config-center/src/Install/InstallCommand.php b/src/config-center/src/Install/InstallCommand.php
index f5a6cb1..f389524 100644
--- a/src/config-center/src/Install/InstallCommand.php
+++ b/src/config-center/src/Install/InstallCommand.php
@@ -22,7 +22,7 @@ class InstallCommand extends HyperfCommand
$sql = file_get_contents(__DIR__ . '/install.sql');
- $re = Db::connection('config_center')->getPdo()->exec($sql);
+ Db::connection('config_center')->getPdo()->exec($sql);
$this->output->success('config_center db install success');
}
diff --git a/src/cron-center/src/CommandJobAbstract.php b/src/cron-center/src/CommandJobAbstract.php
index 2b91b89..a2a3f12 100644
--- a/src/cron-center/src/CommandJobAbstract.php
+++ b/src/cron-center/src/CommandJobAbstract.php
@@ -55,7 +55,7 @@ class CommandJobAbstract extends HyperfCommand
$callback = function () {
try {
$this->beforeRun();
- call([$this, 'handle']);
+ call($this->handle(...));
$this->afterRun();
} catch (\Throwable $throwable) {
$this->onError($throwable);
diff --git a/src/cron-center/src/Controller/CronNodeController.php b/src/cron-center/src/Controller/CronNodeController.php
index f6851ab..b66d799 100644
--- a/src/cron-center/src/Controller/CronNodeController.php
+++ b/src/cron-center/src/Controller/CronNodeController.php
@@ -51,7 +51,7 @@ class CronNodeController extends AbstractController
CronNodes::STATUS_LOSS => 'danger',
],
'render' => function ($status, $row) {
- if ((time() - strtotime($row['updated_at'])) > 60) {
+ if ((time() - strtotime((string) $row['updated_at'])) > 60) {
return CronNodes::STATUS_LOSS;
}
diff --git a/src/cron-center/src/Controller/CrontabController.php b/src/cron-center/src/Controller/CrontabController.php
index e5c1abc..6a61e68 100644
--- a/src/cron-center/src/Controller/CrontabController.php
+++ b/src/cron-center/src/Controller/CrontabController.php
@@ -168,9 +168,7 @@ class CrontabController extends AbstractController
'运行次数: {state.counter}',
],
],
- 'render' => function () {
- return '悬浮查看';
- },
+ 'render' => fn() => '悬浮查看',
],
],
'rowActions' => [
@@ -207,7 +205,7 @@ class CrontabController extends AbstractController
public function beforeFormResponse($id, &$record)
{
- $record['bind_nodes'] = array_map('intval', explode(',', $record['bind_nodes']));
+ $record['bind_nodes'] = array_map('intval', explode(',', (string) $record['bind_nodes']));
}
public function trigger($id)
diff --git a/src/cron-center/src/CronManager.php b/src/cron-center/src/CronManager.php
index 3bb41ff..0b0630a 100644
--- a/src/cron-center/src/CronManager.php
+++ b/src/cron-center/src/CronManager.php
@@ -13,13 +13,10 @@ class CronManager
*/
private $config;
- private $db;
-
public function __construct()
{
$container = ApplicationContext::getContainer();
$this->config = $container->get(ConfigInterface::class);
- $this->db = $this->getConn();
}
public function addConfig()
@@ -71,9 +68,9 @@ class CronManager
}
$list = $query->where('status', 1)->where('is_deleted', 0)->get()->toArray();
foreach ($list as &$item) {
- $item['config'] = json_decode($item['config'], true);
- $item['state'] = json_decode($item['state'], true);
- $item['alert_rule'] = json_decode($item['alert_rule'], true);
+ $item['config'] = json_decode((string) $item['config'], true);
+ $item['state'] = json_decode((string) $item['state'], true);
+ $item['alert_rule'] = json_decode((string) $item['alert_rule'], true);
unset($item);
}
@@ -106,7 +103,7 @@ class CronManager
if (!$job) {
return false;
}
- $job['config'] = json_decode($job['config'], true);
+ $job['config'] = json_decode((string) $job['config'], true);
return $this->convertCrontab($job);
}
@@ -127,9 +124,8 @@ class CronManager
->setSingleton($item['singleton'] ?? true)
->setOnOneServer($item['on_one_server'] ?? true)
->setCallback($callback);
- break;
case 'class':
- $class = explode('::', $config['execute']);
+ $class = explode('::', (string) $config['execute']);
$callback = [$class[0], 'run', $config['params']];
return (new Crontab)->setId($item['id'])
@@ -138,7 +134,6 @@ class CronManager
->setSingleton($item['singleton'] ?? true)
->setOnOneServer($item['on_one_server'] ?? false)
->setCallback($callback);
- break;
case 'gateway':
$callback = [
'api' => $config['api'],
@@ -154,7 +149,6 @@ class CronManager
->setSingleton($item['singleton'] ?? true)
->setOnOneServer($item['on_one_server'] ?? false)
->setCallback($callback);
- break;
default:
return false;
}
@@ -214,7 +208,7 @@ class CronManager
{
$state = $this->getConn()->table('cron_jobs')->find($id)['state'];
- return $state ? json_decode($state, true) : [];
+ return $state ? json_decode((string) $state, true) : [];
}
public function setJobState($id, $data)
diff --git a/src/cron-center/src/CrontabDispatcherProcess.php b/src/cron-center/src/CrontabDispatcherProcess.php
index ebfac67..681f1ea 100644
--- a/src/cron-center/src/CrontabDispatcherProcess.php
+++ b/src/cron-center/src/CrontabDispatcherProcess.php
@@ -58,7 +58,7 @@ class CrontabDispatcherProcess extends ProcessCrontabDispatcherProcess
$crontabs = $this->getCrontabs();
$this->logger->info(sprintf('Crontab dispatcher the %s time, jobs total %s', $this->counter, count($crontabs)));
$last = time();
- foreach ($crontabs ?? [] as $key => $crontab) {
+ foreach ($crontabs ?? [] as $crontab) {
$time = $this->parser->parse($crontab->getRule(), $last);
if ($time) {
foreach ($time as $t) {
diff --git a/src/cron-center/src/Executor.php b/src/cron-center/src/Executor.php
index 33754dd..5229adb 100644
--- a/src/cron-center/src/Executor.php
+++ b/src/cron-center/src/Executor.php
@@ -14,17 +14,14 @@ use Symfony\Component\Console\Output\NullOutput;
class Executor extends StrategyExecutor
{
- private $manager;
-
public function __construct(ContainerInterface $container)
{
parent::__construct($container);
- $this->manager = new CronManager();
}
public function execute(Crontab $crontab)
{
- if (!($crontab instanceof Crontab) || !$crontab->getCallback()) {
+ if (!$crontab->getCallback()) {
return false;
}
$handle = $crontab->getType() . 'Handle';
@@ -90,9 +87,7 @@ class Executor extends StrategyExecutor
public function evalHandle(Crontab $crontab)
{
- return function () use ($crontab) {
- return eval($crontab->getCallback());
- };
+ return fn() => eval($crontab->getCallback());
}
protected function runInSingleton(Crontab $crontab, Closure $runnable): Closure
diff --git a/src/cron-center/src/Install/InstallCommand.php b/src/cron-center/src/Install/InstallCommand.php
index b9a2ef9..974f457 100644
--- a/src/cron-center/src/Install/InstallCommand.php
+++ b/src/cron-center/src/Install/InstallCommand.php
@@ -22,7 +22,7 @@ class InstallCommand extends HyperfCommand
$sql = file_get_contents(__DIR__ . '/install.sql');
- $re = Db::connection('cron_center')->getPdo()->exec($sql);
+ Db::connection('cron_center')->getPdo()->exec($sql);
$this->output->success('cron_center db install success');
}
diff --git a/src/data-focus/src/Controller/DsnController.php b/src/data-focus/src/Controller/DsnController.php
index 0706509..c524975 100644
--- a/src/data-focus/src/Controller/DsnController.php
+++ b/src/data-focus/src/Controller/DsnController.php
@@ -48,9 +48,7 @@ class DsnController extends AbstractController
[
'field' => 'create_uid',
'title' => '创建者',
- 'render' => function ($val, $row) {
- return $row['realname'];
- },
+ 'render' => fn($val, $row) => $row['realname'],
],
],
'rowActions' => [
diff --git a/src/data-focus/src/Install/InstallCommand.php b/src/data-focus/src/Install/InstallCommand.php
index 4780087..2a26c5a 100644
--- a/src/data-focus/src/Install/InstallCommand.php
+++ b/src/data-focus/src/Install/InstallCommand.php
@@ -22,7 +22,7 @@ class InstallCommand extends HyperfCommand
$sql = file_get_contents(__DIR__ . '/install.sql');
- $re = Db::connection('cron_center')->getPdo()->exec($sql);
+ Db::connection('cron_center')->getPdo()->exec($sql);
$this->output->success('data_focus db install success');
}
diff --git a/src/data-focus/src/Service/Dsn.php b/src/data-focus/src/Service/Dsn.php
index b9ba3f7..f7575c5 100644
--- a/src/data-focus/src/Service/Dsn.php
+++ b/src/data-focus/src/Service/Dsn.php
@@ -7,11 +7,8 @@ use HyperfAdmin\BaseUtils\Redis\Redis;
class Dsn
{
- private $config;
-
- public function __construct(ConfigInterface $config)
+ public function __construct(private readonly ConfigInterface $config)
{
- $this->config = $config;
}
public function initAll()
@@ -24,7 +21,7 @@ class Dsn
// todo decrypt
//$dsn_list = $this->config->decryptOne($dsn_list);
foreach($dsn_list as $dsn) {
- $method = 'add' . strtolower(DsnModel::$types[$dsn['type']]);
+ $method = 'add' . strtolower((string) DsnModel::$types[$dsn['type']]);
if(method_exists($this, $method)) {
$this->{$method}($dsn['name'], $dsn['config']);
}
@@ -51,7 +48,7 @@ class Dsn
if(!$dsn) {
return false;
}
- $method = $type . strtolower(DsnModel::$types[$dsn['type']]);
+ $method = $type . strtolower((string) DsnModel::$types[$dsn['type']]);
$this->{$method}($dsn['name'], $dsn['config']);
}
diff --git a/src/data-focus/src/Util/CodeRunner.php b/src/data-focus/src/Util/CodeRunner.php
index e0748c1..a6a066d 100644
--- a/src/data-focus/src/Util/CodeRunner.php
+++ b/src/data-focus/src/Util/CodeRunner.php
@@ -27,10 +27,10 @@ class CodeRunner
$result = [];
$errors = [];
$startTime = microtime(true);
- $namespace = sprintf("PHPSandbox_%s_%s", md5($code), (int)(microtime(true) * 1000));
+ $namespace = sprintf("PHPSandbox_%s_%s", md5((string) $code), (int)(microtime(true) * 1000));
$this->namespace = $namespace;
$this->runner->setNamespace($namespace);
- if(preg_match_all('/df_\w+/', $code, $m)) {
+ if(preg_match_all('/df_\w+/', (string) $code, $m)) {
$plugins = PluginFunction::query()
->where('status', PluginFunction::STATUS_YES)
->whereIn('func_name', array_unique($m[0]))
@@ -43,7 +43,7 @@ class CodeRunner
$code = implode("\n", $plugin_str) . $code;
}
try {
- if(preg_match_all('/<\?(?:php|=).*?\?>/msui', $code, $match)) {
+ if(preg_match_all('/<\?(?:php|=).*?\?>/msui', (string) $code, $match)) {
foreach($match[0] ?? [] as $part) {
$ret = $this->executePHPCode($part);
$wrap = null;
@@ -60,7 +60,7 @@ class CodeRunner
$code = str_replace($part, $replace, $code);
}
}
- if(preg_match_all('/\{{([^}]+)\}}/i', $code, $m)) {
+ if(preg_match_all('/\{{([^}]+)\}}/i', (string) $code, $m)) {
foreach($m[1] as $each) {
$ret = $this->pipFilter($each);
$code = Str::replaceArray('{{' . $each . '}}', [$ret], $code);
@@ -80,7 +80,7 @@ class CodeRunner
continue;
}
$type = $node->tag;
- $text = trim($node->innertext());
+ $text = trim((string) $node->innertext());
if($node->hasChildNodes()) {
throw new \Exception('一级标签不允许嵌套');
}
@@ -139,7 +139,7 @@ class CodeRunner
'type' => $part_type,
'chart' => (object)$this->getChartOptions($node->getAttribute('chart'), $data),
'col' => $this->getColOption($node->getAttribute('span') ?: $node->getAttribute('col')),
- 'show_table' => $node->hasAttribute('show_table') ? $node->getAttribute('show_table') == 'true' : false,
+ 'show_table' => $node->hasAttribute('show_table') && $node->getAttribute('show_table') == 'true',
'data' => (array)$data,
'tips' => $node->getAttribute('tips') ?: '',
'runtime' => [
@@ -159,9 +159,7 @@ class CodeRunner
return [
'result' => $result,
- 'errors' => array_map(function ($item) use ($namespace) {
- return Str::replaceArray($namespace . '\\', [''], $item);
- }, $errors),
+ 'errors' => array_map(fn($item) => Str::replaceArray($namespace . '\\', [''], $item), $errors),
'info' => [
'use_ms' => (int)(($endTime - $startTime) * 1000),
],
@@ -174,7 +172,7 @@ class CodeRunner
if(!$str) {
return [];
}
- $parts = explode('|', $str);
+ $parts = explode('|', (string) $str);
return array_map(function ($item) {
$tokens = preg_split('/[:,]/', $item);
@@ -258,9 +256,9 @@ class CodeRunner
];
}
if(Str::startsWith($conf, 'LineChart')) {
- $token = explode('|', $conf);
+ $token = explode('|', (string) $conf);
array_shift($token);
- $field = explode(',', array_shift($token));
+ $field = explode(',', (string) array_shift($token));
$x = array_shift($field);
$y = $field;
@@ -293,9 +291,9 @@ class CodeRunner
];
}
if(Str::startsWith($conf, 'ColumnChart')) {
- $token = explode('|', $conf);
+ $token = explode('|', (string) $conf);
array_shift($token);
- $field = explode(',', array_shift($token));
+ $field = explode(',', (string) array_shift($token));
$x = array_shift($field);
$y = $field;
@@ -326,7 +324,7 @@ class CodeRunner
public function pipFilter($str)
{
- $parts = explode('|', trim($str));
+ $parts = explode('|', trim((string) $str));
$first = array_shift($parts);
$code = "/msui', $code, $match)) {
+ if(preg_match('/<\?(?:php|=)(.*)?\?>/msui', (string) $code, $match)) {
$code = trim($match[1]);
}
if($this->namespace) {
@@ -142,7 +142,7 @@ class PHPSandbox
$this->validatorFunc($call);
}
- public function filterClass(Class_ $parserClass)
+ public function filterClass(Class_ $parserClass): never
{
$class = $parserClass->name->toString();
throw new SandboxException(sprintf('define class [%s] not allowed!', $class));
diff --git a/src/data-focus/src/Util/SimpleHtmlDom.php b/src/data-focus/src/Util/SimpleHtmlDom.php
index 9e7049c..77708a1 100644
--- a/src/data-focus/src/Util/SimpleHtmlDom.php
+++ b/src/data-focus/src/Util/SimpleHtmlDom.php
@@ -74,7 +74,7 @@ function file_get_html($url, $use_include_path = false, $context = null, $offset
if($context !== null) {
// Test if "Accept-Encoding: gzip" has been set in $context
$params = stream_context_get_params($context);
- if(isset($params['options']['http']['header']) && preg_match('/gzip/', $params['options']['http']['header']) !== false) {
+ if(isset($params['options']['http']['header']) && preg_match('/gzip/', (string) $params['options']['http']['header']) !== false) {
$contents = file_get_contents('compress.zlib://' . $url, $use_include_path, $context, $offset);
} else {
$contents = file_get_contents($url, $use_include_path, $context, $offset);
@@ -83,11 +83,11 @@ function file_get_html($url, $use_include_path = false, $context = null, $offset
$contents = file_get_contents($url, $use_include_path, null, $offset);
}
// test if the URL doesn't return a 200 status
- if(isset($http_response_header) && strpos($http_response_header[0], '200') === false) {
+ if(!str_contains($http_response_header[0], '200')) {
// has a 301 redirect header been sent?
$pattern = "/^Location:\s*(.*)$/i";
$location_headers = preg_grep($pattern, $http_response_header);
- if(!empty($location_headers) && preg_match($pattern, array_values($location_headers)[0], $matches)) {
+ if(!empty($location_headers) && preg_match($pattern, (string) array_values($location_headers)[0], $matches)) {
// set the URL to that returned via the redirect header and repeat this loop
$url = $matches[1];
$repeat = true;
@@ -95,7 +95,7 @@ function file_get_html($url, $use_include_path = false, $context = null, $offset
}
} while($repeat);
// stop processing if the header isn't a good responce
- if(isset($http_response_header) && strpos($http_response_header[0], '200') === false) {
+ if(!str_contains($http_response_header[0], '200')) {
return false;
}
// stop processing if the contents are too big
@@ -112,7 +112,7 @@ function file_get_html($url, $use_include_path = false, $context = null, $offset
function str_get_html($str, $lowercase = true, $forceTagsClosed = true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT)
{
$dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText);
- if(empty($str) || strlen($str) > MAX_FILE_SIZE) {
+ if(empty($str) || strlen((string) $str) > MAX_FILE_SIZE) {
$dom->clear();
return false;
@@ -135,7 +135,7 @@ function dump_html_tree($node, $show_attr = true, $deep = 0)
*
* @package PlaceLocalInclude
*/
-class simple_html_dom_node
+class simple_html_dom_node implements \Stringable
{
public $nodetype = HDOM_TYPE_TEXT;
@@ -147,19 +147,16 @@ class simple_html_dom_node
public $nodes = [];
- public $parent = null;
+ public $parent;
// The "info" array - see HDOM_INFO_... for what each element contains.
public $_ = [];
public $tag_start = 0;
- private $dom = null;
-
- function __construct($dom)
+ function __construct(private $dom)
{
- $this->dom = $dom;
- $dom->nodes[] = $this;
+ $this->dom->nodes[] = $this;
}
function __destruct()
@@ -167,9 +164,9 @@ class simple_html_dom_node
$this->clear();
}
- function __toString()
+ function __toString(): string
{
- return $this->outertext();
+ return (string) $this->outertext();
}
// clean up memory due to php5 circular references memory leak...
@@ -276,11 +273,8 @@ class simple_html_dom_node
if($idx === -1) {
return $this->children;
}
- if(isset($this->children[$idx])) {
- return $this->children[$idx];
- }
- return null;
+ return $this->children[$idx] ?? null;
}
// returns the first child of node
@@ -441,14 +435,13 @@ class simple_html_dom_node
case HDOM_TYPE_TEXT:
return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
case HDOM_TYPE_COMMENT:
- return '';
case HDOM_TYPE_UNKNOWN:
return '';
}
- if(strcasecmp($this->tag, 'script') === 0) {
+ if(strcasecmp((string) $this->tag, 'script') === 0) {
return '';
}
- if(strcasecmp($this->tag, 'style') === 0) {
+ if(strcasecmp((string) $this->tag, 'style') === 0) {
return '';
}
$ret = '';
@@ -472,9 +465,8 @@ class simple_html_dom_node
{
$ret = $this->innertext();
$ret = str_ireplace('', '', $ret);
- return $ret;
+ return str_replace(']]>', '', $ret);
}
// build node's text with tag
@@ -497,16 +489,11 @@ class simple_html_dom_node
if($val === true) {
$ret .= $key;
} else {
- switch($this->_[HDOM_INFO_QUOTE][$i]) {
- case HDOM_QUOTE_DOUBLE:
- $quote = '"';
- break;
- case HDOM_QUOTE_SINGLE:
- $quote = '\'';
- break;
- default:
- $quote = '';
- }
+ $quote = match ($this->_[HDOM_INFO_QUOTE][$i]) {
+ HDOM_QUOTE_DOUBLE => '"',
+ HDOM_QUOTE_SINGLE => '\'',
+ default => '',
+ };
$ret .= $key . $this->_[HDOM_INFO_SPACE][$i][1] . '=' . $this->_[HDOM_INFO_SPACE][$i][2] . $quote . $val . $quote;
}
}
@@ -564,7 +551,7 @@ class simple_html_dom_node
$idx = count($found) + $idx;
}
- return (isset($found[$idx])) ? $found[$idx] : null;
+ return $found[$idx] ?? null;
}
// seek for given conditions
@@ -640,7 +627,7 @@ class simple_html_dom_node
}
//PaperG - If lowercase is set, do a case insensitive test of the value of the selector.
if($lowercase) {
- $check = $this->match($exp, strtolower($val), strtolower($nodeKeyValue));
+ $check = $this->match($exp, strtolower((string) $val), strtolower((string) $nodeKeyValue));
} else {
$check = $this->match($exp, $val, $nodeKeyValue);
}
@@ -648,12 +635,12 @@ class simple_html_dom_node
$debugObject->debugLog(2, "after match: " . ($check ? "true" : "false"));
}
// handle multiple class
- if(!$check && strcasecmp($key, 'class') === 0) {
- foreach(explode(' ', $node->attr[$key]) as $k) {
+ if(!$check && strcasecmp((string) $key, 'class') === 0) {
+ foreach(explode(' ', (string) $node->attr[$key]) as $k) {
// Without this, there were cases where leading, trailing, or double spaces lead to our comparing blanks - bad form.
if(!empty($k)) {
if($lowercase) {
- $check = $this->match($exp, strtolower($val), strtolower($k));
+ $check = $this->match($exp, strtolower((string) $val), strtolower($k));
} else {
$check = $this->match($exp, $val, $k);
}
@@ -690,15 +677,15 @@ class simple_html_dom_node
case '!=':
return ($value !== $pattern);
case '^=':
- return preg_match("/^" . preg_quote($pattern, '/') . "/", $value);
+ return preg_match("/^" . preg_quote((string) $pattern, '/') . "/", (string) $value);
case '$=':
- return preg_match("/" . preg_quote($pattern, '/') . "$/", $value);
+ return preg_match("/" . preg_quote((string) $pattern, '/') . "$/", (string) $value);
case '*=':
if($pattern[0] == '/') {
- return preg_match($pattern, $value);
+ return preg_match($pattern, (string) $value);
}
- return preg_match("/" . $pattern . "/i", $value);
+ return preg_match("/" . $pattern . "/i", (string) $value);
}
return false;
@@ -718,7 +705,7 @@ class simple_html_dom_node
// farther study is required to determine of this should be documented or removed.
// $pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is";
$pattern = "/([\w\-:\*]*)(?:\#([\w\-]+)|\.([\w\-]+))?(?:\[@?(!?[\w\-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is";
- preg_match_all($pattern, trim($selector_string) . ' ', $matches, PREG_SET_ORDER);
+ preg_match_all($pattern, trim((string) $selector_string) . ' ', $matches, PREG_SET_ORDER);
if(is_object($debugObject)) {
$debugObject->debugLog(2, "Matches Array: ", $matches);
}
@@ -755,7 +742,7 @@ class simple_html_dom_node
// convert to lowercase
if($this->dom->lowercase) {
$tag = strtolower($tag);
- $key = strtolower($key);
+ $key = strtolower((string) $key);
}
//elements that do NOT have the specified attribute
if(isset($key[0]) && $key[0] === '!') {
@@ -780,18 +767,13 @@ class simple_html_dom_node
if(isset($this->attr[$name])) {
return $this->convert_text($this->attr[$name]);
}
- switch($name) {
- case 'outertext':
- return $this->outertext();
- case 'innertext':
- return $this->innertext();
- case 'plaintext':
- return $this->text();
- case 'xmltext':
- return $this->xmltext();
- default:
- return array_key_exists($name, $this->attr);
- }
+ return match ($name) {
+ 'outertext' => $this->outertext(),
+ 'innertext' => $this->innertext(),
+ 'plaintext' => $this->text(),
+ 'xmltext' => $this->xmltext(),
+ default => array_key_exists($name, $this->attr),
+ };
}
function __set($name, $value)
@@ -815,17 +797,13 @@ class simple_html_dom_node
function __isset($name)
{
- switch($name) {
- case 'outertext':
- return true;
- case 'innertext':
- return true;
- case 'plaintext':
- return true;
- }
-
- //no value attr: nowrap, checked selected...
- return (array_key_exists($name, $this->attr)) ? true : isset($this->attr[$name]);
+ return match ($name) {
+ 'outertext' => true,
+ 'innertext' => true,
+ 'plaintext' => true,
+ //no value attr: nowrap, checked selected...
+ default => (array_key_exists($name, $this->attr)) ? true : isset($this->attr[$name]),
+ };
}
function __unset($name)
@@ -846,27 +824,27 @@ class simple_html_dom_node
$sourceCharset = "";
$targetCharset = "";
if($this->dom) {
- $sourceCharset = strtoupper($this->dom->_charset);
- $targetCharset = strtoupper($this->dom->_target_charset);
+ $sourceCharset = strtoupper((string) $this->dom->_charset);
+ $targetCharset = strtoupper((string) $this->dom->_target_charset);
}
if(is_object($debugObject)) {
$debugObject->debugLog(3, "source charset: " . $sourceCharset . " target charaset: " . $targetCharset);
}
if(!empty($sourceCharset) && !empty($targetCharset) && (strcasecmp($sourceCharset, $targetCharset) != 0)) {
// Check if the reported encoding could have been incorrect and the text is actually already UTF-8
- if((strcasecmp($targetCharset, 'UTF-8') == 0) && ($this->is_utf8($text))) {
+ if((strcasecmp($targetCharset, 'UTF-8') == 0) && (static::is_utf8($text))) {
$converted_text = $text;
} else {
- $converted_text = iconv($sourceCharset, $targetCharset, $text);
+ $converted_text = iconv($sourceCharset, $targetCharset, (string) $text);
}
}
// Lets make sure that we don't have that silly BOM issue with any of the utf-8 text we output.
if($targetCharset == 'UTF-8') {
- if(substr($converted_text, 0, 3) == "\xef\xbb\xbf") {
- $converted_text = substr($converted_text, 3);
+ if(str_starts_with((string) $converted_text, "\xef\xbb\xbf")) {
+ $converted_text = substr((string) $converted_text, 3);
}
- if(substr($converted_text, -3) == "\xef\xbb\xbf") {
- $converted_text = substr($converted_text, 0, -3);
+ if(str_ends_with((string) $converted_text, "\xef\xbb\xbf")) {
+ $converted_text = substr((string) $converted_text, 0, -3);
}
}
@@ -885,7 +863,7 @@ class simple_html_dom_node
$c = 0;
$b = 0;
$bits = 0;
- $len = strlen($str);
+ $len = strlen((string) $str);
for($i = 0; $i < $len; $i++) {
$c = ord($str[$i]);
if($c > 128) {
@@ -1098,13 +1076,13 @@ class simple_html_dom_node
*
* @package PlaceLocalInclude
*/
-class simple_html_dom
+class simple_html_dom implements \Stringable
{
- public $root = null;
+ public $root;
public $nodes = [];
- public $callback = null;
+ public $callback;
public $lowercase = false;
@@ -1136,8 +1114,6 @@ class simple_html_dom
// Note that this is referenced by a child node, and so it needs to be public for that node to see this information.
public $_charset = '';
- public $_target_charset = '';
-
protected $default_br_text = "";
public $default_span_text = "";
@@ -1180,10 +1156,10 @@ class simple_html_dom
'option' => ['option' => 1],
];
- function __construct($str = null, $lowercase = true, $forceTagsClosed = true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT)
+ function __construct($str = null, $lowercase = true, $forceTagsClosed = true, public $_target_charset = DEFAULT_TARGET_CHARSET, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT)
{
if($str) {
- if(preg_match("/^http:\/\//i", $str) || is_file($str)) {
+ if(preg_match("/^http:\/\//i", (string) $str) || is_file($str)) {
$this->load_file($str);
} else {
$this->load($str, $lowercase, $stripRN, $defaultBRText, $defaultSpanText);
@@ -1193,7 +1169,6 @@ class simple_html_dom
if(!$forceTagsClosed) {
$this->optional_closing_array = [];
}
- $this->_target_charset = $target_charset;
}
function __destruct()
@@ -1316,7 +1291,7 @@ class simple_html_dom
{
$this->clear();
// set the length of content before we do anything to it.
- $this->size = strlen($str);
+ $this->size = strlen((string) $str);
// Save the original size of the html that we got in. It might be useful to someone.
$this->original_size = $this->size;
//before we save the string as the doc... strip out the \r \n's if we are told to.
@@ -1384,7 +1359,7 @@ class simple_html_dom
$debugObject->debugLog(2, 'meta content-type tag found' . $fullvalue);
}
if(!empty($fullvalue)) {
- $success = preg_match('/charset=(.+)/', $fullvalue, $matches);
+ $success = preg_match('/charset=(.+)/', (string) $fullvalue, $matches);
if($success) {
$charset = $matches[1];
} else {
@@ -1447,19 +1422,19 @@ class simple_html_dom
$this->skip($this->token_blank);
$tag = $this->copy_until_char('>');
// skip attributes in end tag
- if(($pos = strpos($tag, ' ')) !== false) {
- $tag = substr($tag, 0, $pos);
+ if(($pos = strpos((string) $tag, ' ')) !== false) {
+ $tag = substr((string) $tag, 0, $pos);
}
- $parent_lower = strtolower($this->parent->tag);
- $tag_lower = strtolower($tag);
+ $parent_lower = strtolower((string) $this->parent->tag);
+ $tag_lower = strtolower((string) $tag);
if($parent_lower !== $tag_lower) {
if(isset($this->optional_closing_tags[$parent_lower]) && isset($this->block_tags[$tag_lower])) {
$this->parent->_[HDOM_INFO_END] = 0;
$org_parent = $this->parent;
- while(($this->parent->parent) && strtolower($this->parent->tag) !== $tag_lower) {
+ while(($this->parent->parent) && strtolower((string) $this->parent->tag) !== $tag_lower) {
$this->parent = $this->parent->parent;
}
- if(strtolower($this->parent->tag) !== $tag_lower) {
+ if(strtolower((string) $this->parent->tag) !== $tag_lower) {
$this->parent = $org_parent; // restore origonal parent
if($this->parent->parent) {
$this->parent = $this->parent->parent;
@@ -1471,16 +1446,16 @@ class simple_html_dom
} elseif(($this->parent->parent) && isset($this->block_tags[$tag_lower])) {
$this->parent->_[HDOM_INFO_END] = 0;
$org_parent = $this->parent;
- while(($this->parent->parent) && strtolower($this->parent->tag) !== $tag_lower) {
+ while(($this->parent->parent) && strtolower((string) $this->parent->tag) !== $tag_lower) {
$this->parent = $this->parent->parent;
}
- if(strtolower($this->parent->tag) !== $tag_lower) {
+ if(strtolower((string) $this->parent->tag) !== $tag_lower) {
$this->parent = $org_parent; // restore origonal parent
$this->parent->_[HDOM_INFO_END] = $this->cursor;
return $this->as_text_node($tag);
}
- } elseif(($this->parent->parent) && strtolower($this->parent->parent->tag) === $tag_lower) {
+ } elseif(($this->parent->parent) && strtolower((string) $this->parent->parent->tag) === $tag_lower) {
$this->parent->_[HDOM_INFO_END] = 0;
$this->parent = $this->parent->parent;
} else {
@@ -1519,15 +1494,15 @@ class simple_html_dom
return true;
}
// text
- if($pos = strpos($tag, '<') !== false) {
- $tag = '<' . substr($tag, 0, -1);
+ if($pos = str_contains((string) $tag, '<')) {
+ $tag = '<' . substr((string) $tag, 0, -1);
$node->_[HDOM_INFO_TEXT] = $tag;
$this->link_nodes($node, false);
$this->char = $this->doc[--$this->pos]; // prev
return true;
}
- if(!preg_match("/^[\w\-:]+$/", $tag)) {
+ if(!preg_match("/^[\w\-:]+$/", (string) $tag)) {
$node->_[HDOM_INFO_TEXT] = '<' . $tag . $this->copy_until('<>');
if($this->char === '<') {
$this->link_nodes($node, false);
@@ -1544,11 +1519,11 @@ class simple_html_dom
}
// begin tag
$node->nodetype = HDOM_TYPE_ELEMENT;
- $tag_lower = strtolower($tag);
+ $tag_lower = strtolower((string) $tag);
$node->tag = ($this->lowercase) ? $tag_lower : $tag;
// handle optional closing tags
if(isset($this->optional_closing_tags[$tag_lower])) {
- while(isset($this->optional_closing_tags[$tag_lower][strtolower($this->parent->tag)])) {
+ while(isset($this->optional_closing_tags[$tag_lower][strtolower((string) $this->parent->tag)])) {
$this->parent->_[HDOM_INFO_END] = 0;
$this->parent = $this->parent->parent;
}
@@ -1583,7 +1558,7 @@ class simple_html_dom
$node->tag = 'text';
$node->attr = [];
$node->_[HDOM_INFO_END] = 0;
- $node->_[HDOM_INFO_TEXT] = substr($this->doc, $begin_tag_pos, $this->pos - $begin_tag_pos - 1);
+ $node->_[HDOM_INFO_TEXT] = substr((string) $this->doc, $begin_tag_pos, $this->pos - $begin_tag_pos - 1);
$this->pos -= 2;
$this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; // next
$this->link_nodes($node, false);
@@ -1594,7 +1569,7 @@ class simple_html_dom
$space[1] = $this->copy_skip($this->token_blank);
$name = $this->restore_noise($name);
if($this->lowercase) {
- $name = strtolower($name);
+ $name = strtolower((string) $name);
}
if($this->char === '=') {
$this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; // next
@@ -1621,7 +1596,7 @@ class simple_html_dom
$node->_[HDOM_INFO_END] = 0;
} else {
// reset parent
- if(!isset($this->self_closing_tags[strtolower($node->tag)])) {
+ if(!isset($this->self_closing_tags[strtolower((string) $node->tag)])) {
$this->parent = $node;
}
}
@@ -1695,31 +1670,31 @@ class simple_html_dom
protected function skip($chars)
{
- $this->pos += strspn($this->doc, $chars, $this->pos);
+ $this->pos += strspn((string) $this->doc, (string) $chars, $this->pos);
$this->char = ($this->pos < $this->size) ? $this->doc[$this->pos] : null; // next
}
protected function copy_skip($chars)
{
$pos = $this->pos;
- $len = strspn($this->doc, $chars, $pos);
+ $len = strspn((string) $this->doc, (string) $chars, $pos);
$this->pos += $len;
$this->char = ($this->pos < $this->size) ? $this->doc[$this->pos] : null; // next
if($len === 0) {
return '';
}
- return substr($this->doc, $pos, $len);
+ return substr((string) $this->doc, $pos, $len);
}
protected function copy_until($chars)
{
$pos = $this->pos;
- $len = strcspn($this->doc, $chars, $pos);
+ $len = strcspn((string) $this->doc, (string) $chars, $pos);
$this->pos += $len;
$this->char = ($this->pos < $this->size) ? $this->doc[$this->pos] : null; // next
- return substr($this->doc, $pos, $len);
+ return substr((string) $this->doc, $pos, $len);
}
protected function copy_until_char($char)
@@ -1727,8 +1702,8 @@ class simple_html_dom
if($this->char === null) {
return '';
}
- if(($pos = strpos($this->doc, $char, $this->pos)) === false) {
- $ret = substr($this->doc, $this->pos, $this->size - $this->pos);
+ if(($pos = strpos((string) $this->doc, (string) $char, $this->pos)) === false) {
+ $ret = substr((string) $this->doc, $this->pos, $this->size - $this->pos);
$this->char = null;
$this->pos = $this->size;
@@ -1741,7 +1716,7 @@ class simple_html_dom
$this->char = $this->doc[$pos];
$this->pos = $pos;
- return substr($this->doc, $pos_old, $pos - $pos_old);
+ return substr((string) $this->doc, $pos_old, $pos - $pos_old);
}
protected function copy_until_char_escape($char)
@@ -1751,8 +1726,8 @@ class simple_html_dom
}
$start = $this->pos;
while(1) {
- if(($pos = strpos($this->doc, $char, $start)) === false) {
- $ret = substr($this->doc, $this->pos, $this->size - $this->pos);
+ if(($pos = strpos((string) $this->doc, (string) $char, $start)) === false) {
+ $ret = substr((string) $this->doc, $this->pos, $this->size - $this->pos);
$this->char = null;
$this->pos = $this->size;
@@ -1769,7 +1744,7 @@ class simple_html_dom
$this->char = $this->doc[$pos];
$this->pos = $pos;
- return substr($this->doc, $pos_old, $pos - $pos_old);
+ return substr((string) $this->doc, $pos_old, $pos - $pos_old);
}
}
@@ -1781,7 +1756,7 @@ class simple_html_dom
if(is_object($debugObject)) {
$debugObject->debugLogEntry(1);
}
- $count = preg_match_all($pattern, $this->doc, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $count = preg_match_all($pattern, (string) $this->doc, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
for($i = $count - 1; $i > -1; --$i) {
$key = '___noise___' . sprintf('% 5d', count($this->noise) + 1000);
if(is_object($debugObject)) {
@@ -1792,7 +1767,7 @@ class simple_html_dom
$this->doc = substr_replace($this->doc, $key, $matches[$i][$idx][1], strlen($matches[$i][$idx][0]));
}
// reset the length of content
- $this->size = strlen($this->doc);
+ $this->size = strlen((string) $this->doc);
if($this->size > 0) {
$this->char = $this->doc[0];
}
@@ -1805,22 +1780,22 @@ class simple_html_dom
if(is_object($debugObject)) {
$debugObject->debugLogEntry(1);
}
- while(($pos = strpos($text, '___noise___')) !== false) {
+ while(($pos = strpos((string) $text, '___noise___')) !== false) {
// Sometimes there is a broken piece of markup, and we don't GET the pos+11 etc... token which indicates a problem outside of us...
- if(strlen($text) > $pos + 15) {
+ if(strlen((string) $text) > $pos + 15) {
$key = '___noise___' . $text[$pos + 11] . $text[$pos + 12] . $text[$pos + 13] . $text[$pos + 14] . $text[$pos + 15];
if(is_object($debugObject)) {
$debugObject->debugLog(2, 'located key of: ' . $key);
}
if(isset($this->noise[$key])) {
- $text = substr($text, 0, $pos) . $this->noise[$key] . substr($text, $pos + 16);
+ $text = substr((string) $text, 0, $pos) . $this->noise[$key] . substr((string) $text, $pos + 16);
} else {
// do this to prevent an infinite loop.
- $text = substr($text, 0, $pos) . 'UNDEFINED NOISE FOR KEY: ' . $key . substr($text, $pos + 16);
+ $text = substr((string) $text, 0, $pos) . 'UNDEFINED NOISE FOR KEY: ' . $key . substr((string) $text, $pos + 16);
}
} else {
// There is no valid key being given back to us... We must get rid of the ___noise___ or we will have a problem.
- $text = substr($text, 0, $pos) . 'NO NUMERIC NOISE KEY' . substr($text, $pos + 11);
+ $text = substr((string) $text, 0, $pos) . 'NO NUMERIC NOISE KEY' . substr((string) $text, $pos + 11);
}
}
@@ -1835,22 +1810,21 @@ class simple_html_dom
$debugObject->debugLogEntry(1);
}
foreach($this->noise as $noiseElement) {
- if(strpos($noiseElement, $text) !== false) {
+ if(str_contains((string) $noiseElement, (string) $text)) {
return $noiseElement;
}
}
}
- function __toString()
+ function __toString(): string
{
- return $this->root->innertext();
+ return (string) $this->root->innertext();
}
function __get($name)
{
switch($name) {
case 'outertext':
- return $this->root->innertext();
case 'innertext':
return $this->root->innertext();
case 'plaintext':
diff --git a/src/data-focus/src/Util/func.php b/src/data-focus/src/Util/func.php
index c9648fb..66efcd0 100644
--- a/src/data-focus/src/Util/func.php
+++ b/src/data-focus/src/Util/func.php
@@ -36,9 +36,7 @@ function df_db_query($sql, $pool)
df_set_context('last_sql', $sql);
df_collect('sql_logs', $sql);
if (is_array($ret)) {
- $ret = array_map(function ($item) {
- return (array)$item;
- }, $ret);
+ $ret = array_map(fn($item) => (array)$item, $ret);
}
return $ret;
@@ -89,7 +87,7 @@ function df_json_decode($json, $default = [])
if (!$json) {
return $default;
}
- $json = preg_replace('@//[^"]+?$@mui', '', $json);
+ $json = preg_replace('@//[^"]+?$@mui', '', (string) $json);
$json = preg_replace('@^\s*//.*?$@mui', '', $json);
$json = $json ? @json_decode($json, true) : $default;
if (is_null($json)) {
@@ -129,7 +127,7 @@ function df_collected_clear($key)
function df_dump(...$arg)
{
- foreach ($arg as $index => $value) {
+ foreach ($arg as $value) {
$dump = highlight_string("", true);
$dump = Str::replaceArray('<?php
', [''], $dump);
$dump = Str::replaceArray('?>', [''], $dump);
diff --git a/src/dev-tools/src/AbstractMaker.php b/src/dev-tools/src/AbstractMaker.php
index d9df885..e65cd55 100644
--- a/src/dev-tools/src/AbstractMaker.php
+++ b/src/dev-tools/src/AbstractMaker.php
@@ -25,10 +25,7 @@ abstract class AbstractMaker
$body = Str::replaceLast('}', '', $body);
$body = str::replaceArray(' ', [''], $body);
$method = new Method($from->getName());
- $method->setParameters(array_map([
- $this,
- 'fromParameterReflection',
- ], $from->getParameters()));
+ $method->setParameters(array_map($this->fromParameterReflection(...), $from->getParameters()));
$method->setStatic($from->isStatic());
$isInterface = $from->getDeclaringClass()->isInterface();
$method->setVisibility($from->isPrivate() ? ClassType::VISIBILITY_PRIVATE : ($from->isProtected() ? ClassType::VISIBILITY_PROTECTED : ($isInterface ? null : ClassType::VISIBILITY_PUBLIC)));
@@ -63,9 +60,7 @@ abstract class AbstractMaker
protected function pathToNamespace(string $path): string
{
- return implode('\\', array_map(function ($item) {
- return ucfirst($item);
- }, explode('/', $path)));
+ return implode('\\', array_map(fn($item) => ucfirst((string) $item), explode('/', $path)));
}
public function getBaseClass($save_path, $class_namespace, $class_name, $extend_class = null)
@@ -73,7 +68,7 @@ abstract class AbstractMaker
$namespace = new PhpNamespace($class_namespace);
$extend_class && $namespace->addUse($extend_class);
if(!file_exists($save_path)) {
- $dir = dirname($save_path);
+ $dir = dirname((string) $save_path);
if(!is_dir($dir)) {
@mkdir($dir, 0755, true);
}
@@ -126,8 +121,7 @@ abstract class AbstractMaker
$str .= str_repeat(' ', $deep * 4) . "{$k}{$val},\n";
}
}
- $str .= str_repeat(' ', ($deep - 1) * 4) . "]";
- return $str;
+ return $str . (str_repeat(' ', ($deep - 1) * 4) . "]");
}
}
diff --git a/src/dev-tools/src/Controller/DevController.php b/src/dev-tools/src/Controller/DevController.php
index 0158b40..8a40c9c 100644
--- a/src/dev-tools/src/Controller/DevController.php
+++ b/src/dev-tools/src/Controller/DevController.php
@@ -311,17 +311,12 @@ class DevController extends AbstractController
public function transType($type)
{
- switch ($type) {
- case 'datetime':
- return 'datetime';
- case 'bigint':
- return 'number';
- case 'text':
- return 'html';
- case 'enum':
- return 'radio';
- default:
- return 'input';
- }
+ return match ($type) {
+ 'datetime' => 'datetime',
+ 'bigint' => 'number',
+ 'text' => 'html',
+ 'enum' => 'radio',
+ default => 'input',
+ };
}
}
diff --git a/src/dev-tools/src/ControllerMaker.php b/src/dev-tools/src/ControllerMaker.php
index cfa5622..177dd30 100644
--- a/src/dev-tools/src/ControllerMaker.php
+++ b/src/dev-tools/src/ControllerMaker.php
@@ -10,7 +10,7 @@ class ControllerMaker extends AbstractMaker
{
public function make($model_class, $path, $config)
{
- $model_name = array_last(explode('\\', $model_class));
+ $model_name = array_last(explode('\\', (string) $model_class));
$controller_name = $model_name . 'Controller';
$class_namespace = $this->pathToNamespace($path);
$save_path = BASE_PATH . '/' . $path . '/' . $controller_name . '.php';
@@ -41,7 +41,7 @@ class ControllerMaker extends AbstractMaker
}
public function splitToRouteName($greatHumpStr){
- $arr = preg_split('/(?<=[a-z0-9])(?=[A-Z])/x', $greatHumpStr);
+ $arr = preg_split('/(?<=[a-z0-9])(?=[A-Z])/x', (string) $greatHumpStr);
return strtolower(implode("_", $arr));
}
diff --git a/src/dev-tools/src/ModelMaker.php b/src/dev-tools/src/ModelMaker.php
index 605da19..bfaabe6 100644
--- a/src/dev-tools/src/ModelMaker.php
+++ b/src/dev-tools/src/ModelMaker.php
@@ -76,31 +76,13 @@ class ModelMaker extends AbstractMaker
protected function formatDatabaseType(string $type): ?string
{
- switch($type) {
- case 'tinyint':
- case 'smallint':
- case 'mediumint':
- case 'int':
- case 'bigint':
- return 'integer';
- case 'decimal':
- case 'float':
- case 'double':
- case 'real':
- return 'float';
- case 'bool':
- case 'boolean':
- return 'boolean';
- case 'varchar':
- case 'text':
- case 'char':
- case 'tinytext':
- case 'longtext':
- case 'enum':
- return 'string';
- default:
- return $type;
- }
+ return match ($type) {
+ 'tinyint', 'smallint', 'mediumint', 'int', 'bigint' => 'integer',
+ 'decimal', 'float', 'double', 'real' => 'float',
+ 'bool', 'boolean' => 'boolean',
+ 'varchar', 'text', 'char', 'tinytext', 'longtext', 'enum' => 'string',
+ default => $type,
+ };
}
protected function formatPropertyType(string $type, ?string $cast): ?string
@@ -108,23 +90,16 @@ class ModelMaker extends AbstractMaker
if(!isset($cast)) {
$cast = $this->formatDatabaseType($type) ?? 'string';
}
- switch($cast) {
- case 'integer':
- return 'int';
- case 'date':
- case 'datetime':
- return '\Carbon\Carbon';
- case 'json':
- return 'array';
- }
-
- return $cast;
+ return match ($cast) {
+ 'integer' => 'int',
+ 'date', 'datetime' => \Carbon\Carbon::class,
+ 'json' => 'array',
+ default => $cast,
+ };
}
protected function formatColumns(array $columns): array
{
- return array_map(function ($item) {
- return array_change_key_case($item, CASE_LOWER);
- }, $columns);
+ return array_map(fn($item) => array_change_key_case($item, CASE_LOWER), $columns);
}
}
diff --git a/src/event-bus/src/BootProcessListener.php b/src/event-bus/src/BootProcessListener.php
index e956e9e..7a635c7 100644
--- a/src/event-bus/src/BootProcessListener.php
+++ b/src/event-bus/src/BootProcessListener.php
@@ -12,20 +12,8 @@ use Psr\Container\ContainerInterface;
class BootProcessListener implements ListenerInterface
{
- /**
- * @var ContainerInterface
- */
- private $container;
-
- /**
- * @var ConfigInterface
- */
- private $config;
-
- public function __construct(ContainerInterface $container, ConfigInterface $config)
+ public function __construct(private readonly ConfigInterface $config)
{
- $this->container = $container;
- $this->config = $config;
}
/**
diff --git a/src/event-bus/src/Controller/PushController.php b/src/event-bus/src/Controller/PushController.php
index f5bb244..d1a84fa 100644
--- a/src/event-bus/src/Controller/PushController.php
+++ b/src/event-bus/src/Controller/PushController.php
@@ -32,7 +32,6 @@ class PushController extends AbstractController
break;
default:
return $this->fail(ErrorCode::CODE_ERR_SYSTEM, 'not support queue type');
- break;
}
return $ret ? $this->success() : $this->fail(ErrorCode::CODE_ERR_SYSTEM, 'push message faile');
diff --git a/src/event-bus/src/Kafka.php b/src/event-bus/src/Kafka.php
index 72ee03e..3b2e1a3 100644
--- a/src/event-bus/src/Kafka.php
+++ b/src/event-bus/src/Kafka.php
@@ -18,18 +18,11 @@ class Kafka
// Set a rebalance callback to log partition assignments (optional)
$conf->setRebalanceCb(function (KafkaConsumer $kafka, $err, array $partitions = null) {
- switch($err) {
- case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS:
- $kafka->assign($partitions);
- break;
-
- case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS:
- $kafka->assign(null);
- break;
-
- default:
- throw new \Exception($err);
- }
+ match ($err) {
+ RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS => $kafka->assign($partitions),
+ RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS => $kafka->assign(null),
+ default => throw new \Exception($err),
+ };
});
// Configure the group.id. All consumer with the same group.id will consume
@@ -64,14 +57,11 @@ class Kafka
$handler($message->payload);
break;
case RD_KAFKA_RESP_ERR__PARTITION_EOF:
- // "No more messages; will wait for more\n";
- break;
case RD_KAFKA_RESP_ERR__TIMED_OUT:
// "Timed out\n";
break;
default:
throw new \Exception($message->errstr(), $message->err);
- break;
}
}
}
diff --git a/src/event-bus/src/OnPipeMessageListener.php b/src/event-bus/src/OnPipeMessageListener.php
index 30538b8..b3989ea 100644
--- a/src/event-bus/src/OnPipeMessageListener.php
+++ b/src/event-bus/src/OnPipeMessageListener.php
@@ -31,7 +31,7 @@ class OnPipeMessageListener implements ListenerInterface
if(Str::startsWith($msg['callback'], ['http://', 'https://'])) {
$guzzle = $container->get(ClientFactory::class)->create();
$response = $guzzle->request('GET', $msg['callback']);
- $ret = json_decode($response->getBody()->getContents());
+ $ret = json_decode((string) $response->getBody()->getContents());
} elseif(preg_match('/([\w+\\\\]+)@(\w+)/', $msg['callback'], $m)) {
$ret = call([make($m[1]), $m[2]], [$msg['arg']]);
} elseif(preg_match('/([\w+\\\\]+)::(\w+)/', $msg['callback'], $m)) {
diff --git a/src/event-bus/src/ProcessFactory.php b/src/event-bus/src/ProcessFactory.php
index 66d081f..482ae5e 100644
--- a/src/event-bus/src/ProcessFactory.php
+++ b/src/event-bus/src/ProcessFactory.php
@@ -22,16 +22,11 @@ class ProcessFactory
$this->serve = $serve;
$this->deliver_type = $params['deliver_type'] ?? 'single';
$this->callback = $params['callback'];
- switch($params['type']) {
- case 'amqp':
- return $this->makeAmqpProcess($params['options']);
- break;
- case 'kafka':
- return $this->makeKafkaProcess($params['options']);
- break;
- default:
- return false;
- }
+ return match ($params['type']) {
+ 'amqp' => $this->makeAmqpProcess($params['options']),
+ 'kafka' => $this->makeKafkaProcess($params['options']),
+ default => false,
+ };
}
public function makeAmqpProcess($options)
@@ -39,16 +34,13 @@ class ProcessFactory
$factory = $this;
$nums = $options['nums'] ?? 1;
$message = new class ($options, $factory) extends ConsumerMessage {
- public $factory;
-
- public function __construct($options, $factory)
+ public function __construct($options, public $factory)
{
foreach($options as $key => $val) {
if(property_exists($this, $key)) {
$this->$key = $val;
}
}
- $this->factory = $factory;
}
public function consume($data): string
@@ -101,16 +93,13 @@ class ProcessFactory
public $instance;
- public $factory;
-
- public function __construct($options, $factory)
+ public function __construct($options, public $factory)
{
$container = ApplicationContext::getContainer();
$this->instance = $options['instance'];
$this->topic = $options['topic'];
$this->group = $options['group'];
$this->name = 'event_bus:kafka_' . $this->group . '_' . $this->topic;
- $this->factory = $factory;
$this->nums = $options['nums'] ?? 1;
parent::__construct($container);
}
diff --git a/src/process-manager/src/AmqpConsumerManager.php b/src/process-manager/src/AmqpConsumerManager.php
index bca8cac..f5f9bd0 100644
--- a/src/process-manager/src/AmqpConsumerManager.php
+++ b/src/process-manager/src/AmqpConsumerManager.php
@@ -12,24 +12,14 @@ use Psr\Container\ContainerInterface;
class AmqpConsumerManager
{
- /**
- * @var ContainerInterface
- */
- private $container;
-
- public function __construct(ContainerInterface $container)
+ public function __construct(private readonly ContainerInterface $container)
{
- $this->container = $container;
}
public function run()
{
$classes = AnnotationCollector::getClassByAnnotation(ConsumerAnnotation::class);
$consumer_names = process_list_filter(array_keys($classes), config('process_manager.amqp_consumer', []));
- /**
- * @var string
- * @var ConsumerAnnotation $annotation
- */
foreach($classes as $class => $annotation) {
if(!in_array($class, $consumer_names)) {
continue;
@@ -59,16 +49,10 @@ class AmqpConsumerManager
*/
private $consumer;
- /**
- * @var ConsumerMessageInterface
- */
- private $consumerMessage;
-
- public function __construct(ContainerInterface $container, ConsumerMessageInterface $consumerMessage)
+ public function __construct(ContainerInterface $container, private readonly ConsumerMessageInterface $consumerMessage)
{
parent::__construct($container);
$this->consumer = $container->get(Consumer::class);
- $this->consumerMessage = $consumerMessage;
}
public function handle(): void
diff --git a/src/process-manager/src/BootProcessListener.php b/src/process-manager/src/BootProcessListener.php
index 0598e0f..26eba2c 100644
--- a/src/process-manager/src/BootProcessListener.php
+++ b/src/process-manager/src/BootProcessListener.php
@@ -13,20 +13,8 @@ use Psr\Container\ContainerInterface;
class BootProcessListener implements ListenerInterface
{
- /**
- * @var ContainerInterface
- */
- private $container;
-
- /**
- * @var ConfigInterface
- */
- private $config;
-
- public function __construct(ContainerInterface $container, ConfigInterface $config)
+ public function __construct(private readonly ContainerInterface $container, private readonly ConfigInterface $config)
{
- $this->container = $container;
- $this->config = $config;
}
/**
diff --git a/src/process-manager/src/NsqConsumerManager.php b/src/process-manager/src/NsqConsumerManager.php
index bd041d6..1c6e6ca 100644
--- a/src/process-manager/src/NsqConsumerManager.php
+++ b/src/process-manager/src/NsqConsumerManager.php
@@ -20,24 +20,14 @@ use Psr\EventDispatcher\EventDispatcherInterface;
class NsqConsumerManager
{
- /**
- * @var ContainerInterface
- */
- private $container;
-
- public function __construct(ContainerInterface $container)
+ public function __construct(private readonly ContainerInterface $container)
{
- $this->container = $container;
}
public function run()
{
$classes = AnnotationCollector::getClassByAnnotation(ConsumerAnnotation::class);
$consumer_names = process_list_filter(array_keys($classes), config('process_manager.nsq_consumer', []));
- /**
- * @var string
- * @var ConsumerAnnotation $annotation
- */
foreach($classes as $class => $annotation) {
if(!in_array($class, $consumer_names)) {
continue;
@@ -61,11 +51,6 @@ class NsqConsumerManager
private function createProcess(AbstractConsumer $consumer): AbstractProcess
{
return new class($this->container, $consumer) extends AbstractProcess {
- /**
- * @var AbstractConsumer
- */
- private $consumer;
-
/**
* @var \Hyperf\Nsq\Nsq
*/
@@ -81,14 +66,13 @@ class NsqConsumerManager
*/
private $config;
- public function __construct(ContainerInterface $container, AbstractConsumer $consumer)
+ public function __construct(ContainerInterface $container, private readonly AbstractConsumer $consumer)
{
parent::__construct($container);
- $this->consumer = $consumer;
$this->config = $container->get(ConfigInterface::class);
$this->subscriber = make(Nsq::class, [
'container' => $container,
- 'pool' => $consumer->getPool(),
+ 'pool' => $this->consumer->getPool(),
]);
if($container->has(EventDispatcherInterface::class)) {
$this->dispatcher = $container->get(EventDispatcherInterface::class);
diff --git a/src/rule-engine/src/ArrayHelper.php b/src/rule-engine/src/ArrayHelper.php
index 6076eaf..57ff730 100644
--- a/src/rule-engine/src/ArrayHelper.php
+++ b/src/rule-engine/src/ArrayHelper.php
@@ -61,7 +61,7 @@ class ArrayHelper
if($current === null) {
return false;
}
- $keys = explode('.', $key);
+ $keys = explode('.', (string) $key);
$target = &$arr;
$unset_key = array_pop($keys);
while($item = array_shift($keys)) {
diff --git a/src/rule-engine/src/BooleanOperation.php b/src/rule-engine/src/BooleanOperation.php
index cff1216..1c41125 100644
--- a/src/rule-engine/src/BooleanOperation.php
+++ b/src/rule-engine/src/BooleanOperation.php
@@ -3,15 +3,12 @@ namespace HyperfAdmin\RuleEngine;
class BooleanOperation
{
- protected $data = [];
-
protected $sets = [];
protected $info = [];
- public function __construct($data = [])
+ public function __construct(protected $data = [])
{
- $this->data = $data;
}
public function setContext($data)
@@ -122,8 +119,8 @@ class BooleanOperation
case 'between':
$rule = $this->toArr($rule_val);
if($this->isDateStr($rule[0])) {
- $rule[0] = strtotime($rule[0]);
- $rule[1] = strtotime($rule[1]);
+ $rule[0] = strtotime((string) $rule[0]);
+ $rule[1] = strtotime((string) $rule[1]);
}
return $current_val > $rule[0] && $current_val < $rule[1];
@@ -136,7 +133,7 @@ class BooleanOperation
case 'elapse between':
$rule = $this->toArr($rule_val);
if($this->isDateStr($rule[0])) {
- return (time() - $rule_val) > strtotime($rule[0]) && (time() - $rule_val) < strtotime($rule[1]);
+ return (time() - $rule_val) > strtotime((string) $rule[0]) && (time() - $rule_val) < strtotime((string) $rule[1]);
}
return (time() - $rule_val) > $rule[0] && (time() - $rule_val) < $rule[1];
@@ -154,11 +151,11 @@ class BooleanOperation
if(is_array($val)) {
return $val;
}
- if(strpos($val, ',')) {
- return explode(',', $val);
+ if(strpos((string) $val, ',')) {
+ return explode(',', (string) $val);
}
- if(strpos($val, '...')) {
- $parts = explode('...', $val);
+ if(strpos((string) $val, '...')) {
+ $parts = explode('...', (string) $val);
return range($parts[0], $parts[1]);
}
@@ -168,7 +165,7 @@ class BooleanOperation
protected function isDateStr($var)
{
- return preg_match('/[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]/', $var);
+ return preg_match('/[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]/', (string) $var);
}
protected function assignment($key, $operator, $right)
diff --git a/src/rule-engine/src/Context/Context.php b/src/rule-engine/src/Context/Context.php
index a6086ca..3a98f48 100644
--- a/src/rule-engine/src/Context/Context.php
+++ b/src/rule-engine/src/Context/Context.php
@@ -34,7 +34,7 @@ class Context implements \ArrayAccess
if(isset($this->custom_data[$offset])) {
return $this->custom_data[$offset];
}
- preg_match('/^([a-zA-Z._0-9]+)\((.*)\)$/', $offset, $m);
+ preg_match('/^([a-zA-Z._0-9]+)\((.*)\)$/', (string) $offset, $m);
$param = '';
if($m) {
$offset = $m[1];
@@ -53,12 +53,12 @@ class Context implements \ArrayAccess
}
$param = str_replace('.', "\001", $param);
if(isset($this->key_map[$offset])) {
- [$plugin_name, $key] = explode('.', $offset, 2);
+ [$plugin_name, $key] = explode('.', (string) $offset, 2);
return ArrayHelper::array_get($param ? "{$key}({$param})" : $key, $this->plugins[$plugin_name]);
}
foreach($this->plugins as $plugin) {
- $key = explode('.', $offset, 2)[0];
+ $key = explode('.', (string) $offset, 2)[0];
if(in_array($key, $plugin->keys())) {
return ArrayHelper::array_get($param ? "{$offset}($param)" : $offset, $plugin);
}
@@ -72,7 +72,7 @@ class Context implements \ArrayAccess
if(isset($this->custom_data[$offset])) {
return true;
}
- preg_match('/^([a-zA-Z._0-9]+)\((.*)\)$/', $offset, $m);
+ preg_match('/^([a-zA-Z._0-9]+)\((.*)\)$/', (string) $offset, $m);
if($m) {
$offset = $m[1];
}
@@ -80,7 +80,7 @@ class Context implements \ArrayAccess
return true;
}
foreach($this->plugins as $plugin) {
- $key = explode('.', $offset, 2)[0];
+ $key = explode('.', (string) $offset, 2)[0];
if(in_array($key, $plugin->keys())) {
return true;
}
diff --git a/src/rule-engine/src/Context/ContextPluginAbstract.php b/src/rule-engine/src/Context/ContextPluginAbstract.php
index 5aca872..04f833b 100644
--- a/src/rule-engine/src/Context/ContextPluginAbstract.php
+++ b/src/rule-engine/src/Context/ContextPluginAbstract.php
@@ -14,13 +14,13 @@ abstract class ContextPluginAbstract implements ContextPluginInterface, \ArrayAc
$methods = $ref->getMethods();
$keys = [];
foreach($methods as $method) {
- if(strpos($method->name, 'get') === 0) {
+ if(str_starts_with($method->name, 'get')) {
$keys[] = $this->camel2snake(str_replace('get', '', $method->name));
}
}
return $keys;
- } catch (\ReflectionException $e) {
+ } catch (\ReflectionException) {
return [];
}
}
@@ -37,7 +37,7 @@ abstract class ContextPluginAbstract implements ContextPluginInterface, \ArrayAc
public function camel2snake($str)
{
- preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!', $str, $matches);
+ preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!', (string) $str, $matches);
$ret = $matches[0];
foreach($ret as &$match) {
$match = $match == strtoupper($match) ? strtolower($match) : lcfirst($match);
diff --git a/src/rule-engine/src/Context/IpContext.php b/src/rule-engine/src/Context/IpContext.php
index def745d..d967cf3 100644
--- a/src/rule-engine/src/Context/IpContext.php
+++ b/src/rule-engine/src/Context/IpContext.php
@@ -23,7 +23,7 @@ class IpContext extends ContextPluginAbstract
try {
$region = $this->ip2Region->memorySearch($ip);
// 国家|区域|省份|城市|ISP
- $region = explode('|', $region['region']);
+ $region = explode('|', (string) $region['region']);
return [
'country' => $region[0],
@@ -32,7 +32,7 @@ class IpContext extends ContextPluginAbstract
'city' => $region[3],
'isp' => $region[4],
];
- } catch (\Exception $exception) {
+ } catch (\Exception) {
return false;
}
}
diff --git a/src/validation/src/Validation.php b/src/validation/src/Validation.php
index 91e0226..c1688f1 100644
--- a/src/validation/src/Validation.php
+++ b/src/validation/src/Validation.php
@@ -22,7 +22,7 @@ class Validation
public function check($rules, $data, $obj = null, $options = [])
{
foreach($data as $key => $val) {
- if(strpos($key, '.') !== false) {
+ if(str_contains((string) $key, '.')) {
Arr::set($data, $key, $val);
unset($data[$key]);
}
@@ -32,14 +32,14 @@ class Validation
$white_data = [];
foreach($rules as $key => $rule) {
- $field_extra = explode('|', $key);
+ $field_extra = explode('|', (string) $key);
$field = $field_extra[0];
if(!$rule && Arr::get($data, $field)) {
$white_data[$field] = Arr::get($data, $field);
continue;
}
$title = $field_extra[1] ?? $field_extra[0];
- $rules = is_array($rule) ? $rule : explode('|', $rule);
+ $rules = is_array($rule) ? $rule : explode('|', (string) $rule);
foreach($rules as $index => &$item) {
if($index === 'children') {
$request_sub_data = Arr::get($data, $field);
@@ -101,17 +101,17 @@ class Validation
}
$map = array_sort_by_key_length($map);
$filed_keys = array_map(function ($key) {
- if(strpos($key, '.') === false) {
+ if(!str_contains((string) $key, '.')) {
return str_replace('_', ' ', $key);
}
return $key;
}, $filed_keys);
- if(preg_match('/.*当 (.*) 是 (.*)/', $item, $m)) {
+ if(preg_match('/.*当 (.*) 是 (.*)/', (string) $item, $m)) {
if(isset($m[1]) && isset($m[2])) {
$field = str_replace(' ', '_', $m[1]);
$option = $options[$field][$m[2]];
- $item = preg_replace('/是 .*/', '是 ' . $option, $item);
+ $item = preg_replace('/是 .*/', '是 ' . $option, (string) $item);
}
}
@@ -133,9 +133,7 @@ class Validation
Arr::set($real_data, $key, $val);
}
- $real_data = array_map_recursive(function ($item) {
- return is_string($item) ? trim($item) : $item;
- }, $real_data);
+ $real_data = array_map_recursive(fn($item) => is_string($item) ? trim($item) : $item, $real_data);
return [
$fails ? null : $real_data,
@@ -146,26 +144,20 @@ class Validation
public function makeCustomRule($custom_rule)
{
return new class ($custom_rule, $this) implements Rule {
- public $custom_rule;
-
- public $validation;
-
public $error = "%s ";
public $attribute;
- public function __construct($custom_rule, $validation)
+ public function __construct(public $custom_rule, public $validation)
{
- $this->custom_rule = $custom_rule;
- $this->validation = $validation;
}
public function passes($attribute, $value): bool
{
$this->attribute = $attribute;
$rule = $this->custom_rule;
- if(strpos($rule, ':') !== false) {
- $rule = explode(':', $rule)[0];
+ if(str_contains((string) $rule, ':')) {
+ $rule = explode(':', (string) $rule)[0];
$extra = explode(',', explode(':', $rule)[1]);
$ret = $this->validation->$rule($attribute, $value, $extra);
if(is_string($ret)) {
@@ -196,29 +188,20 @@ class Validation
public function makeObjectCallback($method, $object)
{
return new class ($method, $this, $object) implements Rule {
- public $custom_rule;
-
- public $validation;
-
- public $object;
-
public $error = "%s ";
public $attribute;
- public function __construct($custom_rule, $validation, $object)
+ public function __construct(public $custom_rule, public $validation, public $object)
{
- $this->custom_rule = $custom_rule;
- $this->validation = $validation;
- $this->object = $object;
}
public function passes($attribute, $value): bool
{
$this->attribute = $attribute;
$rule = $this->custom_rule;
- if(strpos($rule, ':') !== false) {
- $rule = explode(':', $rule)[0];
+ if(str_contains((string) $rule, ':')) {
+ $rule = explode(':', (string) $rule)[0];
$extra = explode(',', explode(':', $rule)[1]);
$ret = $this->object->$rule($attribute, $value, $extra);
if(is_string($ret)) {
diff --git a/src/validation/src/ValidationCustomRule.php b/src/validation/src/ValidationCustomRule.php
index 76e11a5..fa23c1a 100644
--- a/src/validation/src/ValidationCustomRule.php
+++ b/src/validation/src/ValidationCustomRule.php
@@ -16,8 +16,8 @@ trait ValidationCustomRule
public function crontab($attribute, $value)
{
- if(!preg_match('/^((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)$/i', trim($value))) {
- if(!preg_match('/^((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)$/i', trim($value))) {
+ if(!preg_match('/^((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)$/i', trim((string) $value))) {
+ if(!preg_match('/^((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)$/i', trim((string) $value))) {
return '不是合法的crontab配置';
}
}
@@ -36,7 +36,7 @@ trait ValidationCustomRule
public function number_concat_ws_comma($attribute, $value)
{
- if(!preg_match("/^\d+(,\d+)*$/", $value)) {
+ if(!preg_match("/^\d+(,\d+)*$/", (string) $value)) {
return "不是英文逗号分隔的字符串";
}