This commit is contained in:
2024-07-10 22:28:45 +08:00
parent 1e7ad2096b
commit e1c8139787
57 changed files with 608 additions and 554 deletions

View File

@@ -18,7 +18,7 @@
"require": { "require": {
"php": ">=7.4", "php": ">=7.4",
"topthink/framework": "5.1.*", "topthink/framework": "5.1.*",
"topthink/think-worker": "^2.0", "topthink/think-worker": "2.0.*",
"workerman/gateway-worker": "^3.0", "workerman/gateway-worker": "^3.0",
"wanghua/general-utility-tools-php": "dev-master", "wanghua/general-utility-tools-php": "dev-master",
"ext-json": "*", "ext-json": "*",
@@ -42,7 +42,7 @@
"repositories": { "repositories": {
"packagist": { "packagist": {
"type": "composer", "type": "composer",
"url": "https://packagist.org" "url": "https://mirrors.huaweicloud.com/repository/php/"
} }
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -2,24 +2,6 @@
// autoload.php @generated by Composer // autoload.php @generated by Composer
if (PHP_VERSION_ID < 50600) {
if (!headers_sent()) {
header('HTTP/1.1 500 Internal Server Error');
}
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
if (!ini_get('display_errors')) {
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
fwrite(STDERR, $err);
} elseif (!headers_sent()) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php'; require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit296bd8a1d28e39d56dcd80ce7be249f3::getLoader(); return ComposerAutoloaderInit296bd8a1d28e39d56dcd80ce7be249f3::getLoader();

View File

@@ -42,37 +42,35 @@ namespace Composer\Autoload;
*/ */
class ClassLoader class ClassLoader
{ {
/** @var \Closure(string):void */ /** @var ?string */
private static $includeFile;
/** @var string|null */
private $vendorDir; private $vendorDir;
// PSR-4 // PSR-4
/** /**
* @var array<string, array<string, int>> * @var array[]
* @psalm-var array<string, array<string, int>>
*/ */
private $prefixLengthsPsr4 = array(); private $prefixLengthsPsr4 = array();
/** /**
* @var array<string, list<string>> * @var array[]
* @psalm-var array<string, array<int, string>>
*/ */
private $prefixDirsPsr4 = array(); private $prefixDirsPsr4 = array();
/** /**
* @var list<string> * @var array[]
* @psalm-var array<string, string>
*/ */
private $fallbackDirsPsr4 = array(); private $fallbackDirsPsr4 = array();
// PSR-0 // PSR-0
/** /**
* List of PSR-0 prefixes * @var array[]
* * @psalm-var array<string, array<string, string[]>>
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
*
* @var array<string, array<string, list<string>>>
*/ */
private $prefixesPsr0 = array(); private $prefixesPsr0 = array();
/** /**
* @var list<string> * @var array[]
* @psalm-var array<string, string>
*/ */
private $fallbackDirsPsr0 = array(); private $fallbackDirsPsr0 = array();
@@ -80,7 +78,8 @@ class ClassLoader
private $useIncludePath = false; private $useIncludePath = false;
/** /**
* @var array<string, string> * @var string[]
* @psalm-var array<string, string>
*/ */
private $classMap = array(); private $classMap = array();
@@ -88,29 +87,29 @@ class ClassLoader
private $classMapAuthoritative = false; private $classMapAuthoritative = false;
/** /**
* @var array<string, bool> * @var bool[]
* @psalm-var array<string, bool>
*/ */
private $missingClasses = array(); private $missingClasses = array();
/** @var string|null */ /** @var ?string */
private $apcuPrefix; private $apcuPrefix;
/** /**
* @var array<string, self> * @var self[]
*/ */
private static $registeredLoaders = array(); private static $registeredLoaders = array();
/** /**
* @param string|null $vendorDir * @param ?string $vendorDir
*/ */
public function __construct($vendorDir = null) public function __construct($vendorDir = null)
{ {
$this->vendorDir = $vendorDir; $this->vendorDir = $vendorDir;
self::initializeIncludeClosure();
} }
/** /**
* @return array<string, list<string>> * @return string[]
*/ */
public function getPrefixes() public function getPrefixes()
{ {
@@ -122,7 +121,8 @@ class ClassLoader
} }
/** /**
* @return array<string, list<string>> * @return array[]
* @psalm-return array<string, array<int, string>>
*/ */
public function getPrefixesPsr4() public function getPrefixesPsr4()
{ {
@@ -130,7 +130,8 @@ class ClassLoader
} }
/** /**
* @return list<string> * @return array[]
* @psalm-return array<string, string>
*/ */
public function getFallbackDirs() public function getFallbackDirs()
{ {
@@ -138,7 +139,8 @@ class ClassLoader
} }
/** /**
* @return list<string> * @return array[]
* @psalm-return array<string, string>
*/ */
public function getFallbackDirsPsr4() public function getFallbackDirsPsr4()
{ {
@@ -146,7 +148,8 @@ class ClassLoader
} }
/** /**
* @return array<string, string> Array of classname => path * @return string[] Array of classname => path
* @psalm-return array<string, string>
*/ */
public function getClassMap() public function getClassMap()
{ {
@@ -154,7 +157,8 @@ class ClassLoader
} }
/** /**
* @param array<string, string> $classMap Class to filename map * @param string[] $classMap Class to filename map
* @psalm-param array<string, string> $classMap
* *
* @return void * @return void
*/ */
@@ -171,25 +175,24 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, either * Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix. * appending or prepending to the ones previously set for this prefix.
* *
* @param string $prefix The prefix * @param string $prefix The prefix
* @param list<string>|string $paths The PSR-0 root directories * @param string[]|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories * @param bool $prepend Whether to prepend the directories
* *
* @return void * @return void
*/ */
public function add($prefix, $paths, $prepend = false) public function add($prefix, $paths, $prepend = false)
{ {
$paths = (array) $paths;
if (!$prefix) { if (!$prefix) {
if ($prepend) { if ($prepend) {
$this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0 = array_merge(
$paths, (array) $paths,
$this->fallbackDirsPsr0 $this->fallbackDirsPsr0
); );
} else { } else {
$this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0, $this->fallbackDirsPsr0,
$paths (array) $paths
); );
} }
@@ -198,19 +201,19 @@ class ClassLoader
$first = $prefix[0]; $first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) { if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = $paths; $this->prefixesPsr0[$first][$prefix] = (array) $paths;
return; return;
} }
if ($prepend) { if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix] = array_merge(
$paths, (array) $paths,
$this->prefixesPsr0[$first][$prefix] $this->prefixesPsr0[$first][$prefix]
); );
} else { } else {
$this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix], $this->prefixesPsr0[$first][$prefix],
$paths (array) $paths
); );
} }
} }
@@ -219,9 +222,9 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, either * Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace. * appending or prepending to the ones previously set for this namespace.
* *
* @param string $prefix The prefix/namespace, with trailing '\\' * @param string $prefix The prefix/namespace, with trailing '\\'
* @param list<string>|string $paths The PSR-4 base directories * @param string[]|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories * @param bool $prepend Whether to prepend the directories
* *
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* *
@@ -229,18 +232,17 @@ class ClassLoader
*/ */
public function addPsr4($prefix, $paths, $prepend = false) public function addPsr4($prefix, $paths, $prepend = false)
{ {
$paths = (array) $paths;
if (!$prefix) { if (!$prefix) {
// Register directories for the root namespace. // Register directories for the root namespace.
if ($prepend) { if ($prepend) {
$this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4 = array_merge(
$paths, (array) $paths,
$this->fallbackDirsPsr4 $this->fallbackDirsPsr4
); );
} else { } else {
$this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4, $this->fallbackDirsPsr4,
$paths (array) $paths
); );
} }
} elseif (!isset($this->prefixDirsPsr4[$prefix])) { } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@@ -250,18 +252,18 @@ class ClassLoader
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
} }
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = $paths; $this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) { } elseif ($prepend) {
// Prepend directories for an already registered namespace. // Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix] = array_merge(
$paths, (array) $paths,
$this->prefixDirsPsr4[$prefix] $this->prefixDirsPsr4[$prefix]
); );
} else { } else {
// Append directories for an already registered namespace. // Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix], $this->prefixDirsPsr4[$prefix],
$paths (array) $paths
); );
} }
} }
@@ -270,8 +272,8 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, * Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix. * replacing any others previously set for this prefix.
* *
* @param string $prefix The prefix * @param string $prefix The prefix
* @param list<string>|string $paths The PSR-0 base directories * @param string[]|string $paths The PSR-0 base directories
* *
* @return void * @return void
*/ */
@@ -288,8 +290,8 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, * Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace. * replacing any others previously set for this namespace.
* *
* @param string $prefix The prefix/namespace, with trailing '\\' * @param string $prefix The prefix/namespace, with trailing '\\'
* @param list<string>|string $paths The PSR-4 base directories * @param string[]|string $paths The PSR-4 base directories
* *
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* *
@@ -423,8 +425,7 @@ class ClassLoader
public function loadClass($class) public function loadClass($class)
{ {
if ($file = $this->findFile($class)) { if ($file = $this->findFile($class)) {
$includeFile = self::$includeFile; includeFile($file);
$includeFile($file);
return true; return true;
} }
@@ -475,9 +476,9 @@ class ClassLoader
} }
/** /**
* Returns the currently registered loaders keyed by their corresponding vendor directories. * Returns the currently registered loaders indexed by their corresponding vendor directories.
* *
* @return array<string, self> * @return self[]
*/ */
public static function getRegisteredLoaders() public static function getRegisteredLoaders()
{ {
@@ -554,26 +555,18 @@ class ClassLoader
return false; return false;
} }
}
/**
* @return void /**
*/ * Scope isolated include.
private static function initializeIncludeClosure() *
{ * Prevents access to $this/self from included files.
if (self::$includeFile !== null) { *
return; * @param string $file
} * @return void
* @private
/** */
* Scope isolated include. function includeFile($file)
* {
* Prevents access to $this/self from included files. include $file;
*
* @param string $file
* @return void
*/
self::$includeFile = \Closure::bind(static function($file) {
include $file;
}, null, null);
}
} }

View File

@@ -21,14 +21,12 @@ use Composer\Semver\VersionParser;
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
* *
* To require its presence, you can require `composer-runtime-api ^2.0` * To require its presence, you can require `composer-runtime-api ^2.0`
*
* @final
*/ */
class InstalledVersions class InstalledVersions
{ {
/** /**
* @var mixed[]|null * @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
*/ */
private static $installed; private static $installed;
@@ -39,7 +37,7 @@ class InstalledVersions
/** /**
* @var array[] * @var array[]
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/ */
private static $installedByVendor = array(); private static $installedByVendor = array();
@@ -98,7 +96,7 @@ class InstalledVersions
{ {
foreach (self::getInstalled() as $installed) { foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) { if (isset($installed['versions'][$packageName])) {
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
} }
} }
@@ -119,7 +117,7 @@ class InstalledVersions
*/ */
public static function satisfies(VersionParser $parser, $packageName, $constraint) public static function satisfies(VersionParser $parser, $packageName, $constraint)
{ {
$constraint = $parser->parseConstraints((string) $constraint); $constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName)); $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint); return $provided->matches($constraint);
@@ -243,7 +241,7 @@ class InstalledVersions
/** /**
* @return array * @return array
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
*/ */
public static function getRootPackage() public static function getRootPackage()
{ {
@@ -257,7 +255,7 @@ class InstalledVersions
* *
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[] * @return array[]
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
*/ */
public static function getRawData() public static function getRawData()
{ {
@@ -280,7 +278,7 @@ class InstalledVersions
* Returns the raw data of all installed.php which are currently loaded for custom implementations * Returns the raw data of all installed.php which are currently loaded for custom implementations
* *
* @return array[] * @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/ */
public static function getAllRawData() public static function getAllRawData()
{ {
@@ -303,7 +301,7 @@ class InstalledVersions
* @param array[] $data A vendor/composer/installed.php data set * @param array[] $data A vendor/composer/installed.php data set
* @return void * @return void
* *
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
*/ */
public static function reload($data) public static function reload($data)
{ {
@@ -313,7 +311,7 @@ class InstalledVersions
/** /**
* @return array[] * @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/ */
private static function getInstalled() private static function getInstalled()
{ {
@@ -328,9 +326,7 @@ class InstalledVersions
if (isset(self::$installedByVendor[$vendorDir])) { if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir]; $installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) { } elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1]; self::$installed = $installed[count($installed) - 1];
} }
@@ -342,17 +338,12 @@ class InstalledVersions
// only require the installed.php file if this file is loaded from its dumped location, // only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') { if (substr(__DIR__, -8, 1) !== 'C') {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ self::$installed = require __DIR__ . '/installed.php';
$required = require __DIR__ . '/installed.php';
self::$installed = $required;
} else { } else {
self::$installed = array(); self::$installed = array();
} }
} }
$installed[] = self::$installed;
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
return $installed; return $installed;
} }

View File

@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer // autoload_classmap.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(

View File

@@ -2,7 +2,7 @@
// autoload_files.php @generated by Composer // autoload_files.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(

View File

@@ -2,7 +2,7 @@
// autoload_namespaces.php @generated by Composer // autoload_namespaces.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(

View File

@@ -2,7 +2,7 @@
// autoload_psr4.php @generated by Composer // autoload_psr4.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(

View File

@@ -25,26 +25,56 @@ class ComposerAutoloaderInit296bd8a1d28e39d56dcd80ce7be249f3
require __DIR__ . '/platform_check.php'; require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInit296bd8a1d28e39d56dcd80ce7be249f3', 'loadClassLoader'), true, true); spl_autoload_register(array('ComposerAutoloaderInit296bd8a1d28e39d56dcd80ce7be249f3', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInit296bd8a1d28e39d56dcd80ce7be249f3', 'loadClassLoader')); spl_autoload_unregister(array('ComposerAutoloaderInit296bd8a1d28e39d56dcd80ce7be249f3', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php'; $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
call_user_func(\Composer\Autoload\ComposerStaticInit296bd8a1d28e39d56dcd80ce7be249f3::getInitializer($loader)); if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit296bd8a1d28e39d56dcd80ce7be249f3::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true); $loader->register(true);
$filesToLoad = \Composer\Autoload\ComposerStaticInit296bd8a1d28e39d56dcd80ce7be249f3::$files; if ($useStaticLoader) {
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) { $includeFiles = Composer\Autoload\ComposerStaticInit296bd8a1d28e39d56dcd80ce7be249f3::$files;
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { } else {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; $includeFiles = require __DIR__ . '/autoload_files.php';
}
require $file; foreach ($includeFiles as $fileIdentifier => $file) {
} composerRequire296bd8a1d28e39d56dcd80ce7be249f3($fileIdentifier, $file);
}, null, null);
foreach ($filesToLoad as $fileIdentifier => $file) {
$requireFile($fileIdentifier, $file);
} }
return $loader; return $loader;
} }
} }
/**
* @param string $fileIdentifier
* @param string $file
* @return void
*/
function composerRequire296bd8a1d28e39d56dcd80ce7be249f3($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
require $file;
}
}

View File

@@ -183,15 +183,9 @@
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/top-think/think-worker/zipball/922d8c95e2f095e0da66d18b9e3fbbfd8de70a3f", "url": "https://mirrors.huaweicloud.com/repository/php/topthink/think-worker/v2.0.12/topthink-think-worker-v2.0.12.zip",
"reference": "922d8c95e2f095e0da66d18b9e3fbbfd8de70a3f", "reference": "922d8c95e2f095e0da66d18b9e3fbbfd8de70a3f",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"ext-fileinfo": "*", "ext-fileinfo": "*",
@@ -218,7 +212,6 @@
"think\\worker\\": "src" "think\\worker\\": "src"
} }
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"Apache-2.0" "Apache-2.0"
], ],
@@ -229,10 +222,6 @@
} }
], ],
"description": "workerman extend for thinkphp5.1", "description": "workerman extend for thinkphp5.1",
"support": {
"issues": "https://github.com/top-think/think-worker/issues",
"source": "https://github.com/top-think/think-worker/tree/v2.0.12"
},
"install-path": "../topthink/think-worker" "install-path": "../topthink/think-worker"
}, },
{ {
@@ -242,12 +231,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://gitee.com/drop_drop/general_utility_tools_php.git", "url": "https://gitee.com/drop_drop/general_utility_tools_php.git",
"reference": "b7f7ec6a9bf19b15e4940838d787e4c08e29f7a6" "reference": "f31ce1f3910b7522d37a796759722f7f4c785dfe"
}, },
"require": { "require": {
"ext-json": "*" "ext-json": "*"
}, },
"time": "2024-06-06T07:47:22+00:00", "time": "2024-06-27T03:06:27+00:00",
"default-branch": true, "default-branch": true,
"type": "library", "type": "library",
"installation-source": "source", "installation-source": "source",
@@ -256,7 +245,6 @@
"wanghua\\general_utility_tools_php\\": "src/" "wanghua\\general_utility_tools_php\\": "src/"
} }
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"Apache-2.0" "Apache-2.0"
], ],

View File

@@ -1,89 +1,89 @@
<?php return array( <?php return array(
'root' => array( 'root' => array(
'name' => 'topthink/think',
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '428dc84846d5f278b6df200250c7600ed346612f',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => '1e7ad2096be950c04ee4245102122ad88ba011d6',
'name' => 'topthink/think',
'dev' => true, 'dev' => true,
), ),
'versions' => array( 'versions' => array(
'doing/phpqrcode' => array( 'doing/phpqrcode' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '600baab04cd4dfe2b307a321775ec5a66e330560',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../doing/phpqrcode', 'install_path' => __DIR__ . '/../doing/phpqrcode',
'aliases' => array( 'aliases' => array(
0 => '9999999-dev', 0 => '9999999-dev',
), ),
'reference' => '600baab04cd4dfe2b307a321775ec5a66e330560',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/framework' => array( 'topthink/framework' => array(
'pretty_version' => 'v5.1.42', 'pretty_version' => 'v5.1.42',
'version' => '5.1.42.0', 'version' => '5.1.42.0',
'reference' => 'ecf1a90d397d821ce2df58f7d47e798c17eba3ad',
'type' => 'think-framework', 'type' => 'think-framework',
'install_path' => __DIR__ . '/../../thinkphp', 'install_path' => __DIR__ . '/../../thinkphp',
'aliases' => array(), 'aliases' => array(),
'reference' => 'ecf1a90d397d821ce2df58f7d47e798c17eba3ad',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/think' => array( 'topthink/think' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '428dc84846d5f278b6df200250c7600ed346612f',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => '1e7ad2096be950c04ee4245102122ad88ba011d6',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/think-installer' => array( 'topthink/think-installer' => array(
'pretty_version' => 'v2.0.5', 'pretty_version' => 'v2.0.5',
'version' => '2.0.5.0', 'version' => '2.0.5.0',
'reference' => '38ba647706e35d6704b5d370c06f8a160b635f88',
'type' => 'composer-plugin', 'type' => 'composer-plugin',
'install_path' => __DIR__ . '/../topthink/think-installer', 'install_path' => __DIR__ . '/../topthink/think-installer',
'aliases' => array(), 'aliases' => array(),
'reference' => '38ba647706e35d6704b5d370c06f8a160b635f88',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/think-worker' => array( 'topthink/think-worker' => array(
'pretty_version' => 'v2.0.12', 'pretty_version' => 'v2.0.12',
'version' => '2.0.12.0', 'version' => '2.0.12.0',
'reference' => '922d8c95e2f095e0da66d18b9e3fbbfd8de70a3f',
'type' => 'think-extend', 'type' => 'think-extend',
'install_path' => __DIR__ . '/../topthink/think-worker', 'install_path' => __DIR__ . '/../topthink/think-worker',
'aliases' => array(), 'aliases' => array(),
'reference' => '922d8c95e2f095e0da66d18b9e3fbbfd8de70a3f',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'wanghua/general-utility-tools-php' => array( 'wanghua/general-utility-tools-php' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => 'b7f7ec6a9bf19b15e4940838d787e4c08e29f7a6',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../wanghua/general-utility-tools-php', 'install_path' => __DIR__ . '/../wanghua/general-utility-tools-php',
'aliases' => array( 'aliases' => array(
0 => '9999999-dev', 0 => '9999999-dev',
), ),
'reference' => 'f31ce1f3910b7522d37a796759722f7f4c785dfe',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'workerman/gateway-worker' => array( 'workerman/gateway-worker' => array(
'pretty_version' => 'v3.0.22', 'pretty_version' => 'v3.0.22',
'version' => '3.0.22.0', 'version' => '3.0.22.0',
'reference' => 'a615036c482d11f68b693998575e804752ef9068',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../workerman/gateway-worker', 'install_path' => __DIR__ . '/../workerman/gateway-worker',
'aliases' => array(), 'aliases' => array(),
'reference' => 'a615036c482d11f68b693998575e804752ef9068',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'workerman/workerman' => array( 'workerman/workerman' => array(
'pretty_version' => 'v3.5.35', 'pretty_version' => 'v3.5.35',
'version' => '3.5.35.0', 'version' => '3.5.35.0',
'reference' => '3cc0adae51ba36db38b11e7996c64250d356dbe7',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../workerman/workerman', 'install_path' => __DIR__ . '/../workerman/workerman',
'aliases' => array(), 'aliases' => array(),
'reference' => '3cc0adae51ba36db38b11e7996c64250d356dbe7',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
), ),

View File

@@ -43,7 +43,6 @@ class Application extends App
$this->request $this->request
->setPathinfo($pathinfo) ->setPathinfo($pathinfo)
->withInput($GLOBALS['HTTP_RAW_REQUEST_DATA']); ->withInput($GLOBALS['HTTP_RAW_REQUEST_DATA']);
//->withInput(file_get_contents("php://input"));
if ($this->config->get('session.auto_start')) { if ($this->config->get('session.auto_start')) {
WorkerHttp::sessionStart(); WorkerHttp::sessionStart();

View File

@@ -42,7 +42,7 @@ class Events
*/ */
public static function onConnect($client_id) public static function onConnect($client_id)
{ {
Gateway::sendToCurrentClient(json_encode(['client_id'=>$client_id])); Gateway::sendToCurrentClient("Your client_id is $client_id");
} }
/** /**
@@ -55,8 +55,7 @@ class Events
*/ */
public static function onWebSocketConnect($client_id, $data) public static function onWebSocketConnect($client_id, $data)
{ {
//连接时绑定客户端ID var_export($data);
// var_export($data);
} }
/** /**

Submodule digital_doctor/vendor/wanghua/general-utility-tools-php updated: b7f7ec6a9b...f31ce1f391

View File

@@ -29,7 +29,8 @@
"ext-curl": "*", "ext-curl": "*",
"ext-pdo": "*", "ext-pdo": "*",
"ext-bcmath": "*", "ext-bcmath": "*",
"txthinking/mailer": "^2.0" "txthinking/mailer": "^2.0",
"wanghua/general-utility-tools-php": "dev-master"
}, },
"config": { "config": {
"preferred-install": "dist", "preferred-install": "dist",
@@ -38,14 +39,18 @@
"easywechat-composer/easywechat-composer": true "easywechat-composer/easywechat-composer": true
} }
}, },
"repositories": [ "repositories": {
{ "packagist": {
"type": "composer",
"url": "https://mirrors.huaweicloud.com/repository/php/"
},
"0": {
"type": "git", "type": "git",
"url": "https://gitee.com/fastadminnet/framework.git" "url": "https://gitee.com/fastadminnet/framework.git"
}, },
{ "1": {
"type": "git", "type": "git",
"url": "https://gitee.com/fastadminnet/think-captcha.git" "url": "https://gitee.com/fastadminnet/think-captcha.git"
} }
] }
} }

View File

@@ -2,24 +2,6 @@
// autoload.php @generated by Composer // autoload.php @generated by Composer
if (PHP_VERSION_ID < 50600) {
if (!headers_sent()) {
header('HTTP/1.1 500 Internal Server Error');
}
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
if (!ini_get('display_errors')) {
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
fwrite(STDERR, $err);
} elseif (!headers_sent()) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php'; require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitf3106b6ef3260b6914241eab0bed11c1::getLoader(); return ComposerAutoloaderInitf3106b6ef3260b6914241eab0bed11c1::getLoader();

View File

@@ -42,9 +42,6 @@ namespace Composer\Autoload;
*/ */
class ClassLoader class ClassLoader
{ {
/** @var \Closure(string):void */
private static $includeFile;
/** @var ?string */ /** @var ?string */
private $vendorDir; private $vendorDir;
@@ -109,7 +106,6 @@ class ClassLoader
public function __construct($vendorDir = null) public function __construct($vendorDir = null)
{ {
$this->vendorDir = $vendorDir; $this->vendorDir = $vendorDir;
self::initializeIncludeClosure();
} }
/** /**
@@ -429,8 +425,7 @@ class ClassLoader
public function loadClass($class) public function loadClass($class)
{ {
if ($file = $this->findFile($class)) { if ($file = $this->findFile($class)) {
$includeFile = self::$includeFile; includeFile($file);
$includeFile($file);
return true; return true;
} }
@@ -560,26 +555,18 @@ class ClassLoader
return false; return false;
} }
}
/**
* @return void /**
*/ * Scope isolated include.
private static function initializeIncludeClosure() *
{ * Prevents access to $this/self from included files.
if (self::$includeFile !== null) { *
return; * @param string $file
} * @return void
* @private
/** */
* Scope isolated include. function includeFile($file)
* {
* Prevents access to $this/self from included files. include $file;
*
* @param string $file
* @return void
*/
self::$includeFile = \Closure::bind(static function($file) {
include $file;
}, null, null);
}
} }

View File

@@ -21,14 +21,12 @@ use Composer\Semver\VersionParser;
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
* *
* To require its presence, you can require `composer-runtime-api ^2.0` * To require its presence, you can require `composer-runtime-api ^2.0`
*
* @final
*/ */
class InstalledVersions class InstalledVersions
{ {
/** /**
* @var mixed[]|null * @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
*/ */
private static $installed; private static $installed;
@@ -39,7 +37,7 @@ class InstalledVersions
/** /**
* @var array[] * @var array[]
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/ */
private static $installedByVendor = array(); private static $installedByVendor = array();
@@ -98,7 +96,7 @@ class InstalledVersions
{ {
foreach (self::getInstalled() as $installed) { foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) { if (isset($installed['versions'][$packageName])) {
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
} }
} }
@@ -119,7 +117,7 @@ class InstalledVersions
*/ */
public static function satisfies(VersionParser $parser, $packageName, $constraint) public static function satisfies(VersionParser $parser, $packageName, $constraint)
{ {
$constraint = $parser->parseConstraints((string) $constraint); $constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName)); $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint); return $provided->matches($constraint);
@@ -243,7 +241,7 @@ class InstalledVersions
/** /**
* @return array * @return array
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
*/ */
public static function getRootPackage() public static function getRootPackage()
{ {
@@ -257,7 +255,7 @@ class InstalledVersions
* *
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[] * @return array[]
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
*/ */
public static function getRawData() public static function getRawData()
{ {
@@ -280,7 +278,7 @@ class InstalledVersions
* Returns the raw data of all installed.php which are currently loaded for custom implementations * Returns the raw data of all installed.php which are currently loaded for custom implementations
* *
* @return array[] * @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/ */
public static function getAllRawData() public static function getAllRawData()
{ {
@@ -303,7 +301,7 @@ class InstalledVersions
* @param array[] $data A vendor/composer/installed.php data set * @param array[] $data A vendor/composer/installed.php data set
* @return void * @return void
* *
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
*/ */
public static function reload($data) public static function reload($data)
{ {
@@ -313,7 +311,7 @@ class InstalledVersions
/** /**
* @return array[] * @return array[]
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/ */
private static function getInstalled() private static function getInstalled()
{ {
@@ -328,9 +326,7 @@ class InstalledVersions
if (isset(self::$installedByVendor[$vendorDir])) { if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir]; $installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) { } elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1]; self::$installed = $installed[count($installed) - 1];
} }
@@ -342,17 +338,12 @@ class InstalledVersions
// only require the installed.php file if this file is loaded from its dumped location, // only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') { if (substr(__DIR__, -8, 1) !== 'C') {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ self::$installed = require __DIR__ . '/installed.php';
$required = require __DIR__ . '/installed.php';
self::$installed = $required;
} else { } else {
self::$installed = array(); self::$installed = array();
} }
} }
$installed[] = self::$installed;
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
return $installed; return $installed;
} }

View File

@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer // autoload_classmap.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(

View File

@@ -2,16 +2,16 @@
// autoload_files.php @generated by Composer // autoload_files.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php', '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', '2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php', '9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php',
'488987c28e9b5e95a1ce6b6bcb94606c' => $vendorDir . '/karsonzhang/fastadmin-addons/src/common.php', '488987c28e9b5e95a1ce6b6bcb94606c' => $vendorDir . '/karsonzhang/fastadmin-addons/src/common.php',

View File

@@ -2,7 +2,7 @@
// autoload_namespaces.php @generated by Composer // autoload_namespaces.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(

View File

@@ -2,14 +2,15 @@
// autoload_psr4.php @generated by Composer // autoload_psr4.php @generated by Composer
$vendorDir = dirname(__DIR__); $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(
'wanghua\\general_utility_tools_php\\' => array($vendorDir . '/wanghua/general-utility-tools-php/src'),
'think\\helper\\' => array($vendorDir . '/topthink/think-helper/src'), 'think\\helper\\' => array($vendorDir . '/topthink/think-helper/src'),
'think\\composer\\' => array($vendorDir . '/topthink/think-installer/src'), 'think\\composer\\' => array($vendorDir . '/topthink/think-installer/src'),
'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'), 'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'),
'think\\' => array($baseDir . '/thinkphp/library/think', $vendorDir . '/topthink/think-queue/src', $vendorDir . '/karsonzhang/fastadmin-addons/src'), 'think\\' => array($vendorDir . '/karsonzhang/fastadmin-addons/src', $baseDir . '/thinkphp/library/think', $vendorDir . '/topthink/think-queue/src'),
'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'), 'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'),
'Tx\\' => array($vendorDir . '/txthinking/mailer/src'), 'Tx\\' => array($vendorDir . '/txthinking/mailer/src'),
'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
@@ -26,7 +27,7 @@ return array(
'Symfony\\Bridge\\PsrHttpMessage\\' => array($vendorDir . '/symfony/psr-http-message-bridge'), 'Symfony\\Bridge\\PsrHttpMessage\\' => array($vendorDir . '/symfony/psr-http-message-bridge'),
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'), 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'),
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'), 'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'), 'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),

View File

@@ -25,26 +25,56 @@ class ComposerAutoloaderInitf3106b6ef3260b6914241eab0bed11c1
require __DIR__ . '/platform_check.php'; require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInitf3106b6ef3260b6914241eab0bed11c1', 'loadClassLoader'), true, true); spl_autoload_register(array('ComposerAutoloaderInitf3106b6ef3260b6914241eab0bed11c1', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitf3106b6ef3260b6914241eab0bed11c1', 'loadClassLoader')); spl_autoload_unregister(array('ComposerAutoloaderInitf3106b6ef3260b6914241eab0bed11c1', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php'; $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
call_user_func(\Composer\Autoload\ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1::getInitializer($loader)); if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true); $loader->register(true);
$filesToLoad = \Composer\Autoload\ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1::$files; if ($useStaticLoader) {
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) { $includeFiles = Composer\Autoload\ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1::$files;
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { } else {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; $includeFiles = require __DIR__ . '/autoload_files.php';
}
require $file; foreach ($includeFiles as $fileIdentifier => $file) {
} composerRequiref3106b6ef3260b6914241eab0bed11c1($fileIdentifier, $file);
}, null, null);
foreach ($filesToLoad as $fileIdentifier => $file) {
$requireFile($fileIdentifier, $file);
} }
return $loader; return $loader;
} }
} }
/**
* @param string $fileIdentifier
* @param string $file
* @return void
*/
function composerRequiref3106b6ef3260b6914241eab0bed11c1($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
require $file;
}
}

View File

@@ -7,12 +7,12 @@ namespace Composer\Autoload;
class ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1 class ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1
{ {
public static $files = array ( public static $files = array (
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php', '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php', '9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php',
'488987c28e9b5e95a1ce6b6bcb94606c' => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src/common.php', '488987c28e9b5e95a1ce6b6bcb94606c' => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src/common.php',
@@ -23,6 +23,10 @@ class ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1
); );
public static $prefixLengthsPsr4 = array ( public static $prefixLengthsPsr4 = array (
'w' =>
array (
'wanghua\\general_utility_tools_php\\' => 34,
),
't' => 't' =>
array ( array (
'think\\helper\\' => 13, 'think\\helper\\' => 13,
@@ -94,6 +98,10 @@ class ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1
); );
public static $prefixDirsPsr4 = array ( public static $prefixDirsPsr4 = array (
'wanghua\\general_utility_tools_php\\' =>
array (
0 => __DIR__ . '/..' . '/wanghua/general-utility-tools-php/src',
),
'think\\helper\\' => 'think\\helper\\' =>
array ( array (
0 => __DIR__ . '/..' . '/topthink/think-helper/src', 0 => __DIR__ . '/..' . '/topthink/think-helper/src',
@@ -108,9 +116,9 @@ class ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1
), ),
'think\\' => 'think\\' =>
array ( array (
0 => __DIR__ . '/../..' . '/thinkphp/library/think', 0 => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src',
1 => __DIR__ . '/..' . '/topthink/think-queue/src', 1 => __DIR__ . '/../..' . '/thinkphp/library/think',
2 => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src', 2 => __DIR__ . '/..' . '/topthink/think-queue/src',
), ),
'ZipStream\\' => 'ZipStream\\' =>
array ( array (
@@ -178,8 +186,8 @@ class ComposerStaticInitf3106b6ef3260b6914241eab0bed11c1
), ),
'Psr\\Http\\Message\\' => 'Psr\\Http\\Message\\' =>
array ( array (
0 => __DIR__ . '/..' . '/psr/http-factory/src', 0 => __DIR__ . '/..' . '/psr/http-message/src',
1 => __DIR__ . '/..' . '/psr/http-message/src', 1 => __DIR__ . '/..' . '/psr/http-factory/src',
), ),
'Psr\\Http\\Client\\' => 'Psr\\Http\\Client\\' =>
array ( array (

View File

@@ -702,17 +702,17 @@
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "2.9.2", "version": "2.9.3",
"version_normalized": "2.9.2.0", "version_normalized": "2.9.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f" "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", "url": "https://mirrors.huaweicloud.com/repository/php/monolog/monolog/2.9.3/monolog-monolog-2.9.3.zip",
"reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -733,8 +733,8 @@
"mongodb/mongodb": "^1.8", "mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3", "php-amqplib/php-amqplib": "~2.4 || ^3",
"phpspec/prophecy": "^1.15", "phpspec/prophecy": "^1.15",
"phpstan/phpstan": "^0.12.91", "phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^8.5.14", "phpunit/phpunit": "^8.5.38 || ^9.6.19",
"predis/predis": "^1.1 || ^2.0", "predis/predis": "^1.1 || ^2.0",
"rollbar/rollbar": "^1.3 || ^2 || ^3", "rollbar/rollbar": "^1.3 || ^2 || ^3",
"ruflin/elastica": "^7", "ruflin/elastica": "^7",
@@ -758,7 +758,7 @@
"rollbar/rollbar": "Allow sending log messages to Rollbar", "rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server" "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
}, },
"time": "2023-10-27T15:25:26+00:00", "time": "2024-04-12T20:52:51+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -771,7 +771,6 @@
"Monolog\\": "src/Monolog" "Monolog\\": "src/Monolog"
} }
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -789,10 +788,6 @@
"logging", "logging",
"psr-3" "psr-3"
], ],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/2.9.2"
},
"funding": [ "funding": [
{ {
"url": "https://github.com/Seldaek", "url": "https://github.com/Seldaek",
@@ -1525,24 +1520,24 @@
}, },
{ {
"name": "psr/http-factory", "name": "psr/http-factory",
"version": "1.0.2", "version": "1.1.0",
"version_normalized": "1.0.2.0", "version_normalized": "1.1.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-factory.git", "url": "https://github.com/php-fig/http-factory.git",
"reference": "e616d01114759c4c489f93b099585439f795fe35" "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", "url": "https://mirrors.huaweicloud.com/repository/php/psr/http-factory/1.1.0/psr-http-factory-1.1.0.zip",
"reference": "e616d01114759c4c489f93b099585439f795fe35", "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.0.0", "php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0" "psr/http-message": "^1.0 || ^2.0"
}, },
"time": "2023-04-10T20:10:41+00:00", "time": "2024-04-15T12:06:14+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1555,7 +1550,6 @@
"Psr\\Http\\Message\\": "src/" "Psr\\Http\\Message\\": "src/"
} }
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -1565,7 +1559,7 @@
"homepage": "https://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interfaces for PSR-7 HTTP message factories", "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [ "keywords": [
"factory", "factory",
"http", "http",
@@ -1576,9 +1570,6 @@
"request", "request",
"response" "response"
], ],
"support": {
"source": "https://github.com/php-fig/http-factory/tree/1.0.2"
},
"install-path": "../psr/http-factory" "install-path": "../psr/http-factory"
}, },
{ {
@@ -1793,17 +1784,17 @@
}, },
{ {
"name": "symfony/cache", "name": "symfony/cache",
"version": "v5.4.36", "version": "v5.4.40",
"version_normalized": "5.4.36.0", "version_normalized": "5.4.40.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/cache.git", "url": "https://github.com/symfony/cache.git",
"reference": "a30f316214d908cf5874f700f3f3fb29ceee91ba" "reference": "89005bc368ca02ed0433c592e4d27670d0844a66"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/a30f316214d908cf5874f700f3f3fb29ceee91ba", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/cache/v5.4.40/symfony-cache-v5.4.40.zip",
"reference": "a30f316214d908cf5874f700f3f3fb29ceee91ba", "reference": "89005bc368ca02ed0433c592e4d27670d0844a66",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1832,7 +1823,7 @@
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/cache": "^1.6|^2.0", "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.13.1|^3|^4", "doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1", "predis/predis": "^1.1|^2.0",
"psr/simple-cache": "^1.0|^2.0", "psr/simple-cache": "^1.0|^2.0",
"symfony/config": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0",
@@ -1841,7 +1832,7 @@
"symfony/messenger": "^4.4|^5.0|^6.0", "symfony/messenger": "^4.4|^5.0|^6.0",
"symfony/var-dumper": "^4.4|^5.0|^6.0" "symfony/var-dumper": "^4.4|^5.0|^6.0"
}, },
"time": "2024-02-19T13:08:14+00:00", "time": "2024-05-31T14:33:22+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -1852,7 +1843,6 @@
"/Tests/" "/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -1872,9 +1862,6 @@
"caching", "caching",
"psr6" "psr6"
], ],
"support": {
"source": "https://github.com/symfony/cache/tree/v5.4.36"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -1893,17 +1880,17 @@
}, },
{ {
"name": "symfony/cache-contracts", "name": "symfony/cache-contracts",
"version": "v2.5.2", "version": "v2.5.3",
"version_normalized": "2.5.2.0", "version_normalized": "2.5.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/cache-contracts.git", "url": "https://github.com/symfony/cache-contracts.git",
"reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" "reference": "fee6db04d913094e2fb55ff8e7db5685a8134463"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/cache-contracts/v2.5.3/symfony-cache-contracts-v2.5.3.zip",
"reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", "reference": "fee6db04d913094e2fb55ff8e7db5685a8134463",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1913,7 +1900,7 @@
"suggest": { "suggest": {
"symfony/cache-implementation": "" "symfony/cache-implementation": ""
}, },
"time": "2022-01-02T09:53:40+00:00", "time": "2024-01-23T13:51:25+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1930,7 +1917,6 @@
"Symfony\\Contracts\\Cache\\": "" "Symfony\\Contracts\\Cache\\": ""
} }
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -1954,9 +1940,6 @@
"interoperability", "interoperability",
"standards" "standards"
], ],
"support": {
"source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -1975,23 +1958,23 @@
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
"version": "v2.5.2", "version": "v2.5.3",
"version_normalized": "2.5.2.0", "version_normalized": "2.5.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git", "url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" "reference": "80d075412b557d41002320b96a096ca65aa2c98d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/deprecation-contracts/v2.5.3/symfony-deprecation-contracts-v2.5.3.zip",
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "reference": "80d075412b557d41002320b96a096ca65aa2c98d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
}, },
"time": "2022-01-02T09:53:40+00:00", "time": "2023-01-24T14:02:46+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -2008,7 +1991,6 @@
"function.php" "function.php"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2024,9 +2006,6 @@
], ],
"description": "A generic function and convention to trigger deprecation notices", "description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2045,17 +2024,17 @@
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v5.4.35", "version": "v5.4.40",
"version_normalized": "5.4.35.0", "version_normalized": "5.4.40.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38" "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/event-dispatcher/v5.4.40/symfony-event-dispatcher-v5.4.40.zip",
"reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2085,7 +2064,7 @@
"symfony/dependency-injection": "", "symfony/dependency-injection": "",
"symfony/http-kernel": "" "symfony/http-kernel": ""
}, },
"time": "2024-01-23T13:51:25+00:00", "time": "2024-05-31T14:33:22+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2096,7 +2075,6 @@
"/Tests/" "/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2112,9 +2090,6 @@
], ],
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.35"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2133,17 +2108,17 @@
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
"version": "v2.5.2", "version": "v2.5.3",
"version_normalized": "2.5.2.0", "version_normalized": "2.5.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git", "url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/event-dispatcher-contracts/v2.5.3/symfony-event-dispatcher-contracts-v2.5.3.zip",
"reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2153,7 +2128,7 @@
"suggest": { "suggest": {
"symfony/event-dispatcher-implementation": "" "symfony/event-dispatcher-implementation": ""
}, },
"time": "2022-01-02T09:53:40+00:00", "time": "2024-01-23T13:51:25+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -2170,7 +2145,6 @@
"Symfony\\Contracts\\EventDispatcher\\": "" "Symfony\\Contracts\\EventDispatcher\\": ""
} }
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2194,9 +2168,6 @@
"interoperability", "interoperability",
"standards" "standards"
], ],
"support": {
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2215,17 +2186,17 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v5.4.35", "version": "v5.4.40",
"version_normalized": "5.4.35.0", "version_normalized": "5.4.40.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" "reference": "f51cff4687547641c7d8180d74932ab40b2205ce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/finder/v5.4.40/symfony-finder-v5.4.40.zip",
"reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", "reference": "f51cff4687547641c7d8180d74932ab40b2205ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2233,7 +2204,7 @@
"symfony/deprecation-contracts": "^2.1|^3", "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-php80": "^1.16" "symfony/polyfill-php80": "^1.16"
}, },
"time": "2024-01-23T13:51:25+00:00", "time": "2024-05-31T14:33:22+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2244,7 +2215,6 @@
"/Tests/" "/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2260,9 +2230,6 @@
], ],
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v5.4.35"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2281,17 +2248,17 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v5.4.35", "version": "v5.4.40",
"version_normalized": "5.4.35.0", "version_normalized": "5.4.40.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928" "reference": "cf4893ca4eca3fac4ae06da1590afdbbb4217847"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/f2ab692a22aef1cd54beb893aa0068bdfb093928", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/http-foundation/v5.4.40/symfony-http-foundation-v5.4.40.zip",
"reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928", "reference": "cf4893ca4eca3fac4ae06da1590afdbbb4217847",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2301,7 +2268,7 @@
"symfony/polyfill-php80": "^1.16" "symfony/polyfill-php80": "^1.16"
}, },
"require-dev": { "require-dev": {
"predis/predis": "~1.0", "predis/predis": "^1.0|^2.0",
"symfony/cache": "^4.4|^5.0|^6.0", "symfony/cache": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0",
"symfony/expression-language": "^4.4|^5.0|^6.0", "symfony/expression-language": "^4.4|^5.0|^6.0",
@@ -2312,7 +2279,7 @@
"suggest": { "suggest": {
"symfony/mime": "To use the file extension guesser" "symfony/mime": "To use the file extension guesser"
}, },
"time": "2024-01-23T13:51:25+00:00", "time": "2024-05-31T14:33:22+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2323,7 +2290,6 @@
"/Tests/" "/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2339,9 +2305,6 @@
], ],
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v5.4.35"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2360,17 +2323,17 @@
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.29.0", "version": "v1.30.0",
"version_normalized": "1.29.0.0", "version_normalized": "1.30.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/polyfill-mbstring/v1.30.0/symfony-polyfill-mbstring-v1.30.0.zip",
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2382,7 +2345,7 @@
"suggest": { "suggest": {
"ext-mbstring": "For best performance" "ext-mbstring": "For best performance"
}, },
"time": "2024-01-29T20:11:03+00:00", "time": "2024-06-19T12:30:46+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"thanks": { "thanks": {
@@ -2399,7 +2362,6 @@
"Symfony\\Polyfill\\Mbstring\\": "" "Symfony\\Polyfill\\Mbstring\\": ""
} }
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2422,9 +2384,6 @@
"portable", "portable",
"shim" "shim"
], ],
"support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2443,23 +2402,23 @@
}, },
{ {
"name": "symfony/polyfill-php73", "name": "symfony/polyfill-php73",
"version": "v1.29.0", "version": "v1.30.0",
"version_normalized": "1.29.0.0", "version_normalized": "1.30.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php73.git", "url": "https://github.com/symfony/polyfill-php73.git",
"reference": "21bd091060673a1177ae842c0ef8fe30893114d2" "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/polyfill-php73/v1.30.0/symfony-polyfill-php73-v1.30.0.zip",
"reference": "21bd091060673a1177ae842c0ef8fe30893114d2", "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
}, },
"time": "2024-01-29T20:11:03+00:00", "time": "2024-05-31T15:07:36+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"thanks": { "thanks": {
@@ -2479,7 +2438,6 @@
"Resources/stubs" "Resources/stubs"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2501,9 +2459,6 @@
"portable", "portable",
"shim" "shim"
], ],
"support": {
"source": "https://github.com/symfony/polyfill-php73/tree/v1.29.0"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2522,23 +2477,23 @@
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.29.0", "version": "v1.30.0",
"version_normalized": "1.29.0.0", "version_normalized": "1.30.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/polyfill-php80/v1.30.0/symfony-polyfill-php80-v1.30.0.zip",
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
}, },
"time": "2024-01-29T20:11:03+00:00", "time": "2024-05-31T15:07:36+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"thanks": { "thanks": {
@@ -2558,7 +2513,6 @@
"Resources/stubs" "Resources/stubs"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2584,9 +2538,6 @@
"portable", "portable",
"shim" "shim"
], ],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2761,17 +2712,17 @@
}, },
{ {
"name": "symfony/var-exporter", "name": "symfony/var-exporter",
"version": "v5.4.35", "version": "v5.4.40",
"version_normalized": "5.4.35.0", "version_normalized": "5.4.40.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-exporter.git", "url": "https://github.com/symfony/var-exporter.git",
"reference": "abb0a151b62d6b07e816487e20040464af96cae7" "reference": "6a13d37336d512927986e09f19a4bed24178baa6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/abb0a151b62d6b07e816487e20040464af96cae7", "url": "https://mirrors.huaweicloud.com/repository/php/symfony/var-exporter/v5.4.40/symfony-var-exporter-v5.4.40.zip",
"reference": "abb0a151b62d6b07e816487e20040464af96cae7", "reference": "6a13d37336d512927986e09f19a4bed24178baa6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2781,7 +2732,7 @@
"require-dev": { "require-dev": {
"symfony/var-dumper": "^4.4.9|^5.0.9|^6.0" "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
}, },
"time": "2024-01-23T13:51:25+00:00", "time": "2024-05-31T14:33:22+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2792,7 +2743,6 @@
"/Tests/" "/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
@@ -2816,9 +2766,6 @@
"instantiate", "instantiate",
"serialize" "serialize"
], ],
"support": {
"source": "https://github.com/symfony/var-exporter/tree/v5.4.35"
},
"funding": [ "funding": [
{ {
"url": "https://symfony.com/sponsor", "url": "https://symfony.com/sponsor",
@@ -2842,7 +2789,7 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://gitee.com/fastadminnet/framework.git", "url": "https://gitee.com/fastadminnet/framework.git",
"reference": "3883e15817ab39f2d342ca007bc8f5b6d8b6f508" "reference": "c859e712f50362d8ee3a7cd2e495af5494847bef"
}, },
"require": { "require": {
"php": ">=7.1.0", "php": ">=7.1.0",
@@ -2856,7 +2803,7 @@
"phpunit/phpunit": "4.8.*", "phpunit/phpunit": "4.8.*",
"sebastian/phpcpd": "2.*" "sebastian/phpcpd": "2.*"
}, },
"time": "2024-03-26T09:19:29+00:00", "time": "2024-06-25T09:03:56+00:00",
"default-branch": true, "default-branch": true,
"type": "think-framework", "type": "think-framework",
"installation-source": "source", "installation-source": "source",
@@ -3123,6 +3070,46 @@
"source": "https://github.com/txthinking/Mailer/tree/master" "source": "https://github.com/txthinking/Mailer/tree/master"
}, },
"install-path": "../txthinking/mailer" "install-path": "../txthinking/mailer"
},
{
"name": "wanghua/general-utility-tools-php",
"version": "dev-master",
"version_normalized": "dev-master",
"source": {
"type": "git",
"url": "https://gitee.com/drop_drop/general_utility_tools_php.git",
"reference": "f31ce1f3910b7522d37a796759722f7f4c785dfe"
},
"require": {
"ext-json": "*"
},
"time": "2024-06-27T03:06:27+00:00",
"default-branch": true,
"type": "library",
"installation-source": "source",
"autoload": {
"psr-4": {
"wanghua\\general_utility_tools_php\\": "src/"
}
},
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "wanghua",
"email": "wanghua@qq.com",
"homepage": "https://blog.csdn.net/qq_15941409"
}
],
"description": "general utility tools for thinkPHP",
"homepage": "https://gitee.com/drop_drop/general_utility_tools_php.git",
"keywords": [
"common tool",
"general-utility-tools",
"php tool"
],
"install-path": "../wanghua/general-utility-tools-php"
} }
], ],
"dev": true, "dev": true,

View File

@@ -1,184 +1,184 @@
<?php return array( <?php return array(
'root' => array( 'root' => array(
'name' => 'karsonzhang/fastadmin', 'pretty_version' => 'dev-master',
'pretty_version' => '1.x-dev', 'version' => 'dev-master',
'version' => '1.9999999.9999999.9999999-dev',
'reference' => 'e8a804afada3b8f71627a1c4f2734f2656099415',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => '1e7ad2096be950c04ee4245102122ad88ba011d6',
'name' => 'karsonzhang/fastadmin',
'dev' => true, 'dev' => true,
), ),
'versions' => array( 'versions' => array(
'easywechat-composer/easywechat-composer' => array( 'easywechat-composer/easywechat-composer' => array(
'pretty_version' => '1.4.1', 'pretty_version' => '1.4.1',
'version' => '1.4.1.0', 'version' => '1.4.1.0',
'reference' => '3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd',
'type' => 'composer-plugin', 'type' => 'composer-plugin',
'install_path' => __DIR__ . '/../easywechat-composer/easywechat-composer', 'install_path' => __DIR__ . '/../easywechat-composer/easywechat-composer',
'aliases' => array(), 'aliases' => array(),
'reference' => '3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'ezyang/htmlpurifier' => array( 'ezyang/htmlpurifier' => array(
'pretty_version' => 'v4.17.0', 'pretty_version' => 'v4.17.0',
'version' => '4.17.0.0', 'version' => '4.17.0.0',
'reference' => 'bbc513d79acf6691fa9cf10f192c90dd2957f18c',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../ezyang/htmlpurifier', 'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
'aliases' => array(), 'aliases' => array(),
'reference' => 'bbc513d79acf6691fa9cf10f192c90dd2957f18c',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'guzzlehttp/guzzle' => array( 'guzzlehttp/guzzle' => array(
'pretty_version' => '7.8.1', 'pretty_version' => '7.8.1',
'version' => '7.8.1.0', 'version' => '7.8.1.0',
'reference' => '41042bc7ab002487b876a0683fc8dce04ddce104',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle',
'aliases' => array(), 'aliases' => array(),
'reference' => '41042bc7ab002487b876a0683fc8dce04ddce104',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'guzzlehttp/promises' => array( 'guzzlehttp/promises' => array(
'pretty_version' => '2.0.2', 'pretty_version' => '2.0.2',
'version' => '2.0.2.0', 'version' => '2.0.2.0',
'reference' => 'bbff78d96034045e58e13dedd6ad91b5d1253223',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/promises', 'install_path' => __DIR__ . '/../guzzlehttp/promises',
'aliases' => array(), 'aliases' => array(),
'reference' => 'bbff78d96034045e58e13dedd6ad91b5d1253223',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'guzzlehttp/psr7' => array( 'guzzlehttp/psr7' => array(
'pretty_version' => '2.6.2', 'pretty_version' => '2.6.2',
'version' => '2.6.2.0', 'version' => '2.6.2.0',
'reference' => '45b30f99ac27b5ca93cb4831afe16285f57b8221',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'install_path' => __DIR__ . '/../guzzlehttp/psr7',
'aliases' => array(), 'aliases' => array(),
'reference' => '45b30f99ac27b5ca93cb4831afe16285f57b8221',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'karsonzhang/fastadmin' => array( 'karsonzhang/fastadmin' => array(
'pretty_version' => '1.x-dev', 'pretty_version' => 'dev-master',
'version' => '1.9999999.9999999.9999999-dev', 'version' => 'dev-master',
'reference' => 'e8a804afada3b8f71627a1c4f2734f2656099415',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => '1e7ad2096be950c04ee4245102122ad88ba011d6',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'karsonzhang/fastadmin-addons' => array( 'karsonzhang/fastadmin-addons' => array(
'pretty_version' => '1.4.0', 'pretty_version' => '1.4.0',
'version' => '1.4.0.0', 'version' => '1.4.0.0',
'reference' => '12b0b146bbdcb12c9f50c96baa3b7cc5f4c48ad6',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../karsonzhang/fastadmin-addons', 'install_path' => __DIR__ . '/../karsonzhang/fastadmin-addons',
'aliases' => array(), 'aliases' => array(),
'reference' => '12b0b146bbdcb12c9f50c96baa3b7cc5f4c48ad6',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'maennchen/zipstream-php' => array( 'maennchen/zipstream-php' => array(
'pretty_version' => '2.2.6', 'pretty_version' => '2.2.6',
'version' => '2.2.6.0', 'version' => '2.2.6.0',
'reference' => '30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../maennchen/zipstream-php', 'install_path' => __DIR__ . '/../maennchen/zipstream-php',
'aliases' => array(), 'aliases' => array(),
'reference' => '30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'markbaker/complex' => array( 'markbaker/complex' => array(
'pretty_version' => '3.0.2', 'pretty_version' => '3.0.2',
'version' => '3.0.2.0', 'version' => '3.0.2.0',
'reference' => '95c56caa1cf5c766ad6d65b6344b807c1e8405b9',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../markbaker/complex', 'install_path' => __DIR__ . '/../markbaker/complex',
'aliases' => array(), 'aliases' => array(),
'reference' => '95c56caa1cf5c766ad6d65b6344b807c1e8405b9',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'markbaker/matrix' => array( 'markbaker/matrix' => array(
'pretty_version' => '3.0.1', 'pretty_version' => '3.0.1',
'version' => '3.0.1.0', 'version' => '3.0.1.0',
'reference' => '728434227fe21be27ff6d86621a1b13107a2562c',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../markbaker/matrix', 'install_path' => __DIR__ . '/../markbaker/matrix',
'aliases' => array(), 'aliases' => array(),
'reference' => '728434227fe21be27ff6d86621a1b13107a2562c',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'monolog/monolog' => array( 'monolog/monolog' => array(
'pretty_version' => '2.9.2', 'pretty_version' => '2.9.3',
'version' => '2.9.2.0', 'version' => '2.9.3.0',
'reference' => '437cb3628f4cf6042cc10ae97fc2b8472e48ca1f',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../monolog/monolog', 'install_path' => __DIR__ . '/../monolog/monolog',
'aliases' => array(), 'aliases' => array(),
'reference' => 'a30bfe2e142720dfa990d0a7e573997f5d884215',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'myclabs/php-enum' => array( 'myclabs/php-enum' => array(
'pretty_version' => '1.8.4', 'pretty_version' => '1.8.4',
'version' => '1.8.4.0', 'version' => '1.8.4.0',
'reference' => 'a867478eae49c9f59ece437ae7f9506bfaa27483',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../myclabs/php-enum', 'install_path' => __DIR__ . '/../myclabs/php-enum',
'aliases' => array(), 'aliases' => array(),
'reference' => 'a867478eae49c9f59ece437ae7f9506bfaa27483',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'nelexa/zip' => array( 'nelexa/zip' => array(
'pretty_version' => '4.0.2', 'pretty_version' => '4.0.2',
'version' => '4.0.2.0', 'version' => '4.0.2.0',
'reference' => '88a1b6549be813278ff2dd3b6b2ac188827634a7',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../nelexa/zip', 'install_path' => __DIR__ . '/../nelexa/zip',
'aliases' => array(), 'aliases' => array(),
'reference' => '88a1b6549be813278ff2dd3b6b2ac188827634a7',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'overtrue/pinyin' => array( 'overtrue/pinyin' => array(
'pretty_version' => '3.0.6', 'pretty_version' => '3.0.6',
'version' => '3.0.6.0', 'version' => '3.0.6.0',
'reference' => '3b781d267197b74752daa32814d3a2cf5d140779',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../overtrue/pinyin', 'install_path' => __DIR__ . '/../overtrue/pinyin',
'aliases' => array(), 'aliases' => array(),
'reference' => '3b781d267197b74752daa32814d3a2cf5d140779',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'overtrue/socialite' => array( 'overtrue/socialite' => array(
'pretty_version' => '2.0.24', 'pretty_version' => '2.0.24',
'version' => '2.0.24.0', 'version' => '2.0.24.0',
'reference' => 'ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../overtrue/socialite', 'install_path' => __DIR__ . '/../overtrue/socialite',
'aliases' => array(), 'aliases' => array(),
'reference' => 'ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'overtrue/wechat' => array( 'overtrue/wechat' => array(
'pretty_version' => '4.9.0', 'pretty_version' => '4.9.0',
'version' => '4.9.0.0', 'version' => '4.9.0.0',
'reference' => '92791f5d957269c633b9aa175f842f6006f945b1',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../overtrue/wechat', 'install_path' => __DIR__ . '/../overtrue/wechat',
'aliases' => array(), 'aliases' => array(),
'reference' => '92791f5d957269c633b9aa175f842f6006f945b1',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'phpoffice/phpspreadsheet' => array( 'phpoffice/phpspreadsheet' => array(
'pretty_version' => '1.19.0', 'pretty_version' => '1.19.0',
'version' => '1.19.0.0', 'version' => '1.19.0.0',
'reference' => 'a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../phpoffice/phpspreadsheet', 'install_path' => __DIR__ . '/../phpoffice/phpspreadsheet',
'aliases' => array(), 'aliases' => array(),
'reference' => 'a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'pimple/pimple' => array( 'pimple/pimple' => array(
'pretty_version' => 'v3.5.0', 'pretty_version' => 'v3.5.0',
'version' => '3.5.0.0', 'version' => '3.5.0.0',
'reference' => 'a94b3a4db7fb774b3d78dad2315ddc07629e1bed',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../pimple/pimple', 'install_path' => __DIR__ . '/../pimple/pimple',
'aliases' => array(), 'aliases' => array(),
'reference' => 'a94b3a4db7fb774b3d78dad2315ddc07629e1bed',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/cache' => array( 'psr/cache' => array(
'pretty_version' => '1.0.1', 'pretty_version' => '1.0.1',
'version' => '1.0.1.0', 'version' => '1.0.1.0',
'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/cache', 'install_path' => __DIR__ . '/../psr/cache',
'aliases' => array(), 'aliases' => array(),
'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/cache-implementation' => array( 'psr/cache-implementation' => array(
@@ -190,19 +190,19 @@
'psr/container' => array( 'psr/container' => array(
'pretty_version' => '2.0.2', 'pretty_version' => '2.0.2',
'version' => '2.0.2.0', 'version' => '2.0.2.0',
'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/container', 'install_path' => __DIR__ . '/../psr/container',
'aliases' => array(), 'aliases' => array(),
'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/event-dispatcher' => array( 'psr/event-dispatcher' => array(
'pretty_version' => '1.0.0', 'pretty_version' => '1.0.0',
'version' => '1.0.0.0', 'version' => '1.0.0.0',
'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/event-dispatcher', 'install_path' => __DIR__ . '/../psr/event-dispatcher',
'aliases' => array(), 'aliases' => array(),
'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/event-dispatcher-implementation' => array( 'psr/event-dispatcher-implementation' => array(
@@ -214,10 +214,10 @@
'psr/http-client' => array( 'psr/http-client' => array(
'pretty_version' => '1.0.3', 'pretty_version' => '1.0.3',
'version' => '1.0.3.0', 'version' => '1.0.3.0',
'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/http-client', 'install_path' => __DIR__ . '/../psr/http-client',
'aliases' => array(), 'aliases' => array(),
'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/http-client-implementation' => array( 'psr/http-client-implementation' => array(
@@ -227,12 +227,12 @@
), ),
), ),
'psr/http-factory' => array( 'psr/http-factory' => array(
'pretty_version' => '1.0.2', 'pretty_version' => '1.1.0',
'version' => '1.0.2.0', 'version' => '1.1.0.0',
'reference' => 'e616d01114759c4c489f93b099585439f795fe35',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/http-factory', 'install_path' => __DIR__ . '/../psr/http-factory',
'aliases' => array(), 'aliases' => array(),
'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/http-factory-implementation' => array( 'psr/http-factory-implementation' => array(
@@ -244,10 +244,10 @@
'psr/http-message' => array( 'psr/http-message' => array(
'pretty_version' => '1.1', 'pretty_version' => '1.1',
'version' => '1.1.0.0', 'version' => '1.1.0.0',
'reference' => 'cb6ce4845ce34a8ad9e68117c10ee90a29919eba',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/http-message', 'install_path' => __DIR__ . '/../psr/http-message',
'aliases' => array(), 'aliases' => array(),
'reference' => 'cb6ce4845ce34a8ad9e68117c10ee90a29919eba',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/http-message-implementation' => array( 'psr/http-message-implementation' => array(
@@ -259,10 +259,10 @@
'psr/log' => array( 'psr/log' => array(
'pretty_version' => '1.1.4', 'pretty_version' => '1.1.4',
'version' => '1.1.4.0', 'version' => '1.1.4.0',
'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/log', 'install_path' => __DIR__ . '/../psr/log',
'aliases' => array(), 'aliases' => array(),
'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/log-implementation' => array( 'psr/log-implementation' => array(
@@ -274,10 +274,10 @@
'psr/simple-cache' => array( 'psr/simple-cache' => array(
'pretty_version' => '1.0.1', 'pretty_version' => '1.0.1',
'version' => '1.0.1.0', 'version' => '1.0.1.0',
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../psr/simple-cache', 'install_path' => __DIR__ . '/../psr/simple-cache',
'aliases' => array(), 'aliases' => array(),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/simple-cache-implementation' => array( 'psr/simple-cache-implementation' => array(
@@ -289,28 +289,28 @@
'ralouphie/getallheaders' => array( 'ralouphie/getallheaders' => array(
'pretty_version' => '3.0.3', 'pretty_version' => '3.0.3',
'version' => '3.0.3.0', 'version' => '3.0.3.0',
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'install_path' => __DIR__ . '/../ralouphie/getallheaders',
'aliases' => array(), 'aliases' => array(),
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/cache' => array( 'symfony/cache' => array(
'pretty_version' => 'v5.4.36', 'pretty_version' => 'v5.4.40',
'version' => '5.4.36.0', 'version' => '5.4.40.0',
'reference' => 'a30f316214d908cf5874f700f3f3fb29ceee91ba',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/cache', 'install_path' => __DIR__ . '/../symfony/cache',
'aliases' => array(), 'aliases' => array(),
'reference' => '89005bc368ca02ed0433c592e4d27670d0844a66',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/cache-contracts' => array( 'symfony/cache-contracts' => array(
'pretty_version' => 'v2.5.2', 'pretty_version' => 'v2.5.3',
'version' => '2.5.2.0', 'version' => '2.5.3.0',
'reference' => '64be4a7acb83b6f2bf6de9a02cee6dad41277ebc',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/cache-contracts', 'install_path' => __DIR__ . '/../symfony/cache-contracts',
'aliases' => array(), 'aliases' => array(),
'reference' => 'fee6db04d913094e2fb55ff8e7db5685a8134463',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/cache-implementation' => array( 'symfony/cache-implementation' => array(
@@ -320,30 +320,30 @@
), ),
), ),
'symfony/deprecation-contracts' => array( 'symfony/deprecation-contracts' => array(
'pretty_version' => 'v2.5.2', 'pretty_version' => 'v2.5.3',
'version' => '2.5.2.0', 'version' => '2.5.3.0',
'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
'aliases' => array(), 'aliases' => array(),
'reference' => '80d075412b557d41002320b96a096ca65aa2c98d',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/event-dispatcher' => array( 'symfony/event-dispatcher' => array(
'pretty_version' => 'v5.4.35', 'pretty_version' => 'v5.4.40',
'version' => '5.4.35.0', 'version' => '5.4.40.0',
'reference' => '7a69a85c7ea5bdd1e875806a99c51a87d3a74b38',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'install_path' => __DIR__ . '/../symfony/event-dispatcher',
'aliases' => array(), 'aliases' => array(),
'reference' => 'a54e2a8a114065f31020d6a89ede83e34c3b27a4',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/event-dispatcher-contracts' => array( 'symfony/event-dispatcher-contracts' => array(
'pretty_version' => 'v2.5.2', 'pretty_version' => 'v2.5.3',
'version' => '2.5.2.0', 'version' => '2.5.3.0',
'reference' => 'f98b54df6ad059855739db6fcbc2d36995283fe1',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts', 'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
'aliases' => array(), 'aliases' => array(),
'reference' => '540f4c73e87fd0c71ca44a6aa305d024ac68cb73',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/event-dispatcher-implementation' => array( 'symfony/event-dispatcher-implementation' => array(
@@ -353,131 +353,142 @@
), ),
), ),
'symfony/finder' => array( 'symfony/finder' => array(
'pretty_version' => 'v5.4.35', 'pretty_version' => 'v5.4.40',
'version' => '5.4.35.0', 'version' => '5.4.40.0',
'reference' => 'abe6d6f77d9465fed3cd2d029b29d03b56b56435',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/finder', 'install_path' => __DIR__ . '/../symfony/finder',
'aliases' => array(), 'aliases' => array(),
'reference' => 'f51cff4687547641c7d8180d74932ab40b2205ce',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/http-foundation' => array( 'symfony/http-foundation' => array(
'pretty_version' => 'v5.4.35', 'pretty_version' => 'v5.4.40',
'version' => '5.4.35.0', 'version' => '5.4.40.0',
'reference' => 'f2ab692a22aef1cd54beb893aa0068bdfb093928',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/http-foundation', 'install_path' => __DIR__ . '/../symfony/http-foundation',
'aliases' => array(), 'aliases' => array(),
'reference' => 'cf4893ca4eca3fac4ae06da1590afdbbb4217847',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/polyfill-mbstring' => array( 'symfony/polyfill-mbstring' => array(
'pretty_version' => 'v1.29.0', 'pretty_version' => 'v1.30.0',
'version' => '1.29.0.0', 'version' => '1.30.0.0',
'reference' => '9773676c8a1bb1f8d4340a62efe641cf76eda7ec',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
'aliases' => array(), 'aliases' => array(),
'reference' => 'fd22ab50000ef01661e2a31d850ebaa297f8e03c',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/polyfill-php73' => array( 'symfony/polyfill-php73' => array(
'pretty_version' => 'v1.29.0', 'pretty_version' => 'v1.30.0',
'version' => '1.29.0.0', 'version' => '1.30.0.0',
'reference' => '21bd091060673a1177ae842c0ef8fe30893114d2',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php73', 'install_path' => __DIR__ . '/../symfony/polyfill-php73',
'aliases' => array(), 'aliases' => array(),
'reference' => 'ec444d3f3f6505bb28d11afa41e75faadebc10a1',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/polyfill-php80' => array( 'symfony/polyfill-php80' => array(
'pretty_version' => 'v1.29.0', 'pretty_version' => 'v1.30.0',
'version' => '1.29.0.0', 'version' => '1.30.0.0',
'reference' => '87b68208d5c1188808dd7839ee1e6c8ec3b02f1b',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'install_path' => __DIR__ . '/../symfony/polyfill-php80',
'aliases' => array(), 'aliases' => array(),
'reference' => '77fa7995ac1b21ab60769b7323d600a991a90433',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/psr-http-message-bridge' => array( 'symfony/psr-http-message-bridge' => array(
'pretty_version' => 'v2.3.1', 'pretty_version' => 'v2.3.1',
'version' => '2.3.1.0', 'version' => '2.3.1.0',
'reference' => '581ca6067eb62640de5ff08ee1ba6850a0ee472e',
'type' => 'symfony-bridge', 'type' => 'symfony-bridge',
'install_path' => __DIR__ . '/../symfony/psr-http-message-bridge', 'install_path' => __DIR__ . '/../symfony/psr-http-message-bridge',
'aliases' => array(), 'aliases' => array(),
'reference' => '581ca6067eb62640de5ff08ee1ba6850a0ee472e',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/service-contracts' => array( 'symfony/service-contracts' => array(
'pretty_version' => 'v1.1.2', 'pretty_version' => 'v1.1.2',
'version' => '1.1.2.0', 'version' => '1.1.2.0',
'reference' => '191afdcb5804db960d26d8566b7e9a2843cab3a0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/service-contracts', 'install_path' => __DIR__ . '/../symfony/service-contracts',
'aliases' => array(), 'aliases' => array(),
'reference' => '191afdcb5804db960d26d8566b7e9a2843cab3a0',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/var-exporter' => array( 'symfony/var-exporter' => array(
'pretty_version' => 'v5.4.35', 'pretty_version' => 'v5.4.40',
'version' => '5.4.35.0', 'version' => '5.4.40.0',
'reference' => 'abb0a151b62d6b07e816487e20040464af96cae7',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/var-exporter', 'install_path' => __DIR__ . '/../symfony/var-exporter',
'aliases' => array(), 'aliases' => array(),
'reference' => '6a13d37336d512927986e09f19a4bed24178baa6',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/framework' => array( 'topthink/framework' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '3883e15817ab39f2d342ca007bc8f5b6d8b6f508',
'type' => 'think-framework', 'type' => 'think-framework',
'install_path' => __DIR__ . '/../../thinkphp', 'install_path' => __DIR__ . '/../../thinkphp',
'aliases' => array( 'aliases' => array(
0 => '9999999-dev', 0 => '9999999-dev',
), ),
'reference' => 'c859e712f50362d8ee3a7cd2e495af5494847bef',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/think-captcha' => array( 'topthink/think-captcha' => array(
'pretty_version' => 'v1.0.9', 'pretty_version' => 'v1.0.9',
'version' => '1.0.9.0', 'version' => '1.0.9.0',
'reference' => '9be9dd7e61c7fa3c478c4b92910d7230b94d0d23',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../topthink/think-captcha', 'install_path' => __DIR__ . '/../topthink/think-captcha',
'aliases' => array(), 'aliases' => array(),
'reference' => '9be9dd7e61c7fa3c478c4b92910d7230b94d0d23',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/think-helper' => array( 'topthink/think-helper' => array(
'pretty_version' => 'v1.0.7', 'pretty_version' => 'v1.0.7',
'version' => '1.0.7.0', 'version' => '1.0.7.0',
'reference' => '5f92178606c8ce131d36b37a57c58eb71e55f019',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../topthink/think-helper', 'install_path' => __DIR__ . '/../topthink/think-helper',
'aliases' => array(), 'aliases' => array(),
'reference' => '5f92178606c8ce131d36b37a57c58eb71e55f019',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/think-installer' => array( 'topthink/think-installer' => array(
'pretty_version' => 'v1.0.14', 'pretty_version' => 'v1.0.14',
'version' => '1.0.14.0', 'version' => '1.0.14.0',
'reference' => 'eae1740ac264a55c06134b6685dfb9f837d004d1',
'type' => 'composer-plugin', 'type' => 'composer-plugin',
'install_path' => __DIR__ . '/../topthink/think-installer', 'install_path' => __DIR__ . '/../topthink/think-installer',
'aliases' => array(), 'aliases' => array(),
'reference' => 'eae1740ac264a55c06134b6685dfb9f837d004d1',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'topthink/think-queue' => array( 'topthink/think-queue' => array(
'pretty_version' => 'v1.1.6', 'pretty_version' => 'v1.1.6',
'version' => '1.1.6.0', 'version' => '1.1.6.0',
'reference' => '250650eb0e8ea5af4cfdc7ae46f3f4e0a24ac245',
'type' => 'think-extend', 'type' => 'think-extend',
'install_path' => __DIR__ . '/../topthink/think-queue', 'install_path' => __DIR__ . '/../topthink/think-queue',
'aliases' => array(), 'aliases' => array(),
'reference' => '250650eb0e8ea5af4cfdc7ae46f3f4e0a24ac245',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'txthinking/mailer' => array( 'txthinking/mailer' => array(
'pretty_version' => 'v2.0.1', 'pretty_version' => 'v2.0.1',
'version' => '2.0.1.0', 'version' => '2.0.1.0',
'reference' => '09013cf9dad3aac195f66ae5309e8c3343c018e9',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../txthinking/mailer', 'install_path' => __DIR__ . '/../txthinking/mailer',
'aliases' => array(), 'aliases' => array(),
'reference' => '09013cf9dad3aac195f66ae5309e8c3343c018e9',
'dev_requirement' => false,
),
'wanghua/general-utility-tools-php' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'type' => 'library',
'install_path' => __DIR__ . '/../wanghua/general-utility-tools-php',
'aliases' => array(
0 => '9999999-dev',
),
'reference' => 'f31ce1f3910b7522d37a796759722f7f4c785dfe',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
), ),

View File

@@ -1,3 +1,7 @@
### 2.9.3 (2024-04-12)
* Fixed PHP 8.4 deprecation warnings (#1874)
### 2.9.2 (2023-10-27) ### 2.9.2 (2023-10-27)
* Fixed display_errors parsing in ErrorHandler which did not support string values (#1804) * Fixed display_errors parsing in ErrorHandler which did not support string values (#1804)

View File

@@ -27,8 +27,8 @@
"mongodb/mongodb": "^1.8", "mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3", "php-amqplib/php-amqplib": "~2.4 || ^3",
"phpspec/prophecy": "^1.15", "phpspec/prophecy": "^1.15",
"phpstan/phpstan": "^0.12.91", "phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^8.5.14", "phpunit/phpunit": "^8.5.38 || ^9.6.19",
"predis/predis": "^1.1 || ^2.0", "predis/predis": "^1.1 || ^2.0",
"rollbar/rollbar": "^1.3 || ^2 || ^3", "rollbar/rollbar": "^1.3 || ^2 || ^3",
"ruflin/elastica": "^7", "ruflin/elastica": "^7",

View File

@@ -30,6 +30,8 @@ class DateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable
{ {
$this->useMicroseconds = $useMicroseconds; $this->useMicroseconds = $useMicroseconds;
// if you like to use a custom time to pass to Logger::addRecord directly,
// call modify() or setTimestamp() on this instance to change the date after creating it
parent::__construct('now', $timezone); parent::__construct('now', $timezone);
} }

View File

@@ -161,7 +161,7 @@ class FilterHandler extends Handler implements ProcessableHandlerInterface, Rese
* *
* @phpstan-param Record $record * @phpstan-param Record $record
*/ */
public function getHandler(array $record = null) public function getHandler(?array $record = null)
{ {
if (!$this->handler instanceof HandlerInterface) { if (!$this->handler instanceof HandlerInterface) {
$this->handler = ($this->handler)($record, $this); $this->handler = ($this->handler)($record, $this);

View File

@@ -210,7 +210,7 @@ class FingersCrossedHandler extends Handler implements ProcessableHandlerInterfa
* *
* @phpstan-param Record $record * @phpstan-param Record $record
*/ */
public function getHandler(array $record = null) public function getHandler(?array $record = null)
{ {
if (!$this->handler instanceof HandlerInterface) { if (!$this->handler instanceof HandlerInterface) {
$this->handler = ($this->handler)($record, $this); $this->handler = ($this->handler)($record, $this);

View File

@@ -90,7 +90,7 @@ class SamplingHandler extends AbstractHandler implements ProcessableHandlerInter
* *
* @return HandlerInterface * @return HandlerInterface
*/ */
public function getHandler(array $record = null) public function getHandler(?array $record = null)
{ {
if (!$this->handler instanceof HandlerInterface) { if (!$this->handler instanceof HandlerInterface) {
$this->handler = ($this->handler)($record, $this); $this->handler = ($this->handler)($record, $this);

View File

@@ -100,7 +100,7 @@ class SlackRecord
bool $useShortAttachment = false, bool $useShortAttachment = false,
bool $includeContextAndExtra = false, bool $includeContextAndExtra = false,
array $excludeFields = array(), array $excludeFields = array(),
FormatterInterface $formatter = null ?FormatterInterface $formatter = null
) { ) {
$this $this
->setChannel($channel) ->setChannel($channel)

View File

@@ -108,9 +108,9 @@ class TelegramBotHandler extends AbstractProcessingHandler
string $channel, string $channel,
$level = Logger::DEBUG, $level = Logger::DEBUG,
bool $bubble = true, bool $bubble = true,
string $parseMode = null, ?string $parseMode = null,
bool $disableWebPagePreview = null, ?bool $disableWebPagePreview = null,
bool $disableNotification = null, ?bool $disableNotification = null,
bool $splitLongMessages = false, bool $splitLongMessages = false,
bool $delayBetweenMessages = false bool $delayBetweenMessages = false
) )
@@ -130,7 +130,7 @@ class TelegramBotHandler extends AbstractProcessingHandler
$this->delayBetweenMessages($delayBetweenMessages); $this->delayBetweenMessages($delayBetweenMessages);
} }
public function setParseMode(string $parseMode = null): self public function setParseMode(?string $parseMode = null): self
{ {
if ($parseMode !== null && !in_array($parseMode, self::AVAILABLE_PARSE_MODES)) { if ($parseMode !== null && !in_array($parseMode, self::AVAILABLE_PARSE_MODES)) {
throw new \InvalidArgumentException('Unknown parseMode, use one of these: ' . implode(', ', self::AVAILABLE_PARSE_MODES) . '.'); throw new \InvalidArgumentException('Unknown parseMode, use one of these: ' . implode(', ', self::AVAILABLE_PARSE_MODES) . '.');
@@ -141,14 +141,14 @@ class TelegramBotHandler extends AbstractProcessingHandler
return $this; return $this;
} }
public function disableWebPagePreview(bool $disableWebPagePreview = null): self public function disableWebPagePreview(?bool $disableWebPagePreview = null): self
{ {
$this->disableWebPagePreview = $disableWebPagePreview; $this->disableWebPagePreview = $disableWebPagePreview;
return $this; return $this;
} }
public function disableNotification(bool $disableNotification = null): self public function disableNotification(?bool $disableNotification = null): self
{ {
$this->disableNotification = $disableNotification; $this->disableNotification = $disableNotification;

View File

@@ -337,7 +337,7 @@ class Logger implements LoggerInterface, ResettableInterface
* *
* @phpstan-param Level $level * @phpstan-param Level $level
*/ */
public function addRecord(int $level, string $message, array $context = [], DateTimeImmutable $datetime = null): bool public function addRecord(int $level, string $message, array $context = [], ?DateTimeImmutable $datetime = null): bool
{ {
if (isset(self::RFC_5424_LEVELS[$level])) { if (isset(self::RFC_5424_LEVELS[$level])) {
$level = self::RFC_5424_LEVELS[$level]; $level = self::RFC_5424_LEVELS[$level];

View File

@@ -43,7 +43,7 @@ class WebProcessor implements ProcessorInterface
* @param array<string, mixed>|\ArrayAccess<string, mixed>|null $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data * @param array<string, mixed>|\ArrayAccess<string, mixed>|null $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data
* @param array<string, string>|array<string>|null $extraFields Field names and the related key inside $serverData to be added (or just a list of field names to use the default configured $serverData mapping). If not provided it defaults to: [url, ip, http_method, server, referrer] + unique_id if present in server data * @param array<string, string>|array<string>|null $extraFields Field names and the related key inside $serverData to be added (or just a list of field names to use the default configured $serverData mapping). If not provided it defaults to: [url, ip, http_method, server, referrer] + unique_id if present in server data
*/ */
public function __construct($serverData = null, array $extraFields = null) public function __construct($serverData = null, ?array $extraFields = null)
{ {
if (null === $serverData) { if (null === $serverData) {
$this->serverData = &$_SERVER; $this->serverData = &$_SERVER;

View File

@@ -1,6 +1,6 @@
{ {
"name": "psr/http-factory", "name": "psr/http-factory",
"description": "Common interfaces for PSR-7 HTTP message factories", "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [ "keywords": [
"psr", "psr",
"psr-7", "psr-7",
@@ -18,8 +18,11 @@
"homepage": "https://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"support": {
"source": "https://github.com/php-fig/http-factory"
},
"require": { "require": {
"php": ">=7.0.0", "php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0" "psr/http-message": "^1.0 || ^2.0"
}, },
"autoload": { "autoload": {

View File

@@ -15,10 +15,10 @@ interface UploadedFileFactoryInterface
* *
* @param StreamInterface $stream Underlying stream representing the * @param StreamInterface $stream Underlying stream representing the
* uploaded file content. * uploaded file content.
* @param int $size in bytes * @param int|null $size in bytes
* @param int $error PHP file upload error * @param int $error PHP file upload error
* @param string $clientFilename Filename as provided by the client, if any. * @param string|null $clientFilename Filename as provided by the client, if any.
* @param string $clientMediaType Media type as provided by the client, if any. * @param string|null $clientMediaType Media type as provided by the client, if any.
* *
* @return UploadedFileInterface * @return UploadedFileInterface
* *
@@ -26,9 +26,9 @@ interface UploadedFileFactoryInterface
*/ */
public function createUploadedFile( public function createUploadedFile(
StreamInterface $stream, StreamInterface $stream,
int $size = null, ?int $size = null,
int $error = \UPLOAD_ERR_OK, int $error = \UPLOAD_ERR_OK,
string $clientFilename = null, ?string $clientFilename = null,
string $clientMediaType = null ?string $clientMediaType = null
): UploadedFileInterface; ): UploadedFileInterface;
} }

View File

@@ -42,16 +42,16 @@ interface CacheInterface
* *
* @throws InvalidArgumentException When $key is not valid or when $beta is negative * @throws InvalidArgumentException When $key is not valid or when $beta is negative
*/ */
public function get(string $key, callable $callback, float $beta = null, array &$metadata = null); public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null);
/** /**
* Removes an item from the pool. * Removes an item from the pool.
* *
* @param string $key The key to delete * @param string $key The key to delete
* *
* @throws InvalidArgumentException When $key is not valid
*
* @return bool True if the item was successfully removed, false if there was any error * @return bool True if the item was successfully removed, false if there was any error
*
* @throws InvalidArgumentException When $key is not valid
*/ */
public function delete(string $key): bool; public function delete(string $key): bool;
} }

View File

@@ -30,7 +30,7 @@ trait CacheTrait
* *
* @return mixed * @return mixed
*/ */
public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null)
{ {
return $this->doGet($this, $key, $callback, $beta, $metadata); return $this->doGet($this, $key, $callback, $beta, $metadata);
} }
@@ -43,7 +43,7 @@ trait CacheTrait
return $this->deleteItem($key); return $this->deleteItem($key);
} }
private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, array &$metadata = null, LoggerInterface $logger = null) private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null, ?LoggerInterface $logger = null)
{ {
if (0 > $beta = $beta ?? 1.0) { if (0 > $beta = $beta ?? 1.0) {
throw new class(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)) extends \InvalidArgumentException implements InvalidArgumentException { }; throw new class(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)) extends \InvalidArgumentException implements InvalidArgumentException { };

View File

@@ -1,4 +1,4 @@
Copyright (c) 2018-2022 Fabien Potencier Copyright (c) 2018-present Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -600,10 +600,10 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface
private function isTableMissing(\PDOException $exception): bool private function isTableMissing(\PDOException $exception): bool
{ {
$driver = $this->driver; $driver = $this->driver;
$code = $exception->getCode(); [$sqlState, $code] = $exception->errorInfo ?? [null, $exception->getCode()];
switch (true) { switch (true) {
case 'pgsql' === $driver && '42P01' === $code: case 'pgsql' === $driver && '42P01' === $sqlState:
case 'sqlite' === $driver && str_contains($exception->getMessage(), 'no such table:'): case 'sqlite' === $driver && str_contains($exception->getMessage(), 'no such table:'):
case 'oci' === $driver && 942 === $code: case 'oci' === $driver && 942 === $code:
case 'sqlsrv' === $driver && 208 === $code: case 'sqlsrv' === $driver && 208 === $code:

View File

@@ -15,6 +15,8 @@ use Predis\Command\Redis\UNLINK;
use Predis\Connection\Aggregate\ClusterInterface; use Predis\Connection\Aggregate\ClusterInterface;
use Predis\Connection\Aggregate\RedisCluster; use Predis\Connection\Aggregate\RedisCluster;
use Predis\Connection\Aggregate\ReplicationInterface; use Predis\Connection\Aggregate\ReplicationInterface;
use Predis\Connection\Cluster\ClusterInterface as Predis2ClusterInterface;
use Predis\Connection\Cluster\RedisCluster as Predis2RedisCluster;
use Predis\Response\ErrorInterface; use Predis\Response\ErrorInterface;
use Predis\Response\Status; use Predis\Response\Status;
use Symfony\Component\Cache\Exception\CacheException; use Symfony\Component\Cache\Exception\CacheException;
@@ -283,7 +285,10 @@ trait RedisTrait
} }
if ((null !== $auth && !$redis->auth($auth)) if ((null !== $auth && !$redis->auth($auth))
|| ($params['dbindex'] && !$redis->select($params['dbindex'])) // Due to a bug in phpredis we must always select the dbindex if persistent pooling is enabled
// @see https://github.com/phpredis/phpredis/issues/1920
// @see https://github.com/symfony/symfony/issues/51578
|| (($params['dbindex'] || ('pconnect' === $connect && '0' !== \ini_get('redis.pconnect.pooling_enabled'))) && !$redis->select($params['dbindex']))
) { ) {
$e = preg_replace('/^ERR /', '', $redis->getLastError()); $e = preg_replace('/^ERR /', '', $redis->getLastError());
throw new InvalidArgumentException('Redis connection failed: '.$e.'.'); throw new InvalidArgumentException('Redis connection failed: '.$e.'.');
@@ -403,9 +408,6 @@ trait RedisTrait
return $redis; return $redis;
} }
/**
* {@inheritdoc}
*/
protected function doFetch(array $ids) protected function doFetch(array $ids)
{ {
if (!$ids) { if (!$ids) {
@@ -414,7 +416,7 @@ trait RedisTrait
$result = []; $result = [];
if ($this->redis instanceof \Predis\ClientInterface && $this->redis->getConnection() instanceof ClusterInterface) { if ($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) {
$values = $this->pipeline(function () use ($ids) { $values = $this->pipeline(function () use ($ids) {
foreach ($ids as $id) { foreach ($ids as $id) {
yield 'get' => [$id]; yield 'get' => [$id];
@@ -439,17 +441,11 @@ trait RedisTrait
return $result; return $result;
} }
/**
* {@inheritdoc}
*/
protected function doHave(string $id) protected function doHave(string $id)
{ {
return (bool) $this->redis->exists($id); return (bool) $this->redis->exists($id);
} }
/**
* {@inheritdoc}
*/
protected function doClear(string $namespace) protected function doClear(string $namespace)
{ {
if ($this->redis instanceof \Predis\ClientInterface) { if ($this->redis instanceof \Predis\ClientInterface) {
@@ -505,22 +501,19 @@ trait RedisTrait
} }
$this->doDelete($keys); $this->doDelete($keys);
} }
} while ($cursor = (int) $cursor); } while ($cursor);
} }
return $cleared; return $cleared;
} }
/**
* {@inheritdoc}
*/
protected function doDelete(array $ids) protected function doDelete(array $ids)
{ {
if (!$ids) { if (!$ids) {
return true; return true;
} }
if ($this->redis instanceof \Predis\ClientInterface && $this->redis->getConnection() instanceof ClusterInterface) { if ($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) {
static $del; static $del;
$del = $del ?? (class_exists(UNLINK::class) ? 'unlink' : 'del'); $del = $del ?? (class_exists(UNLINK::class) ? 'unlink' : 'del');
@@ -548,9 +541,6 @@ trait RedisTrait
return true; return true;
} }
/**
* {@inheritdoc}
*/
protected function doSave(array $values, int $lifetime) protected function doSave(array $values, int $lifetime)
{ {
if (!$values = $this->marshaller->marshall($values, $failed)) { if (!$values = $this->marshaller->marshall($values, $failed)) {
@@ -581,7 +571,7 @@ trait RedisTrait
$ids = []; $ids = [];
$redis = $redis ?? $this->redis; $redis = $redis ?? $this->redis;
if ($redis instanceof RedisClusterProxy || $redis instanceof \RedisCluster || ($redis instanceof \Predis\ClientInterface && $redis->getConnection() instanceof RedisCluster)) { if ($redis instanceof RedisClusterProxy || $redis instanceof \RedisCluster || ($redis instanceof \Predis\ClientInterface && ($redis->getConnection() instanceof RedisCluster || $redis->getConnection() instanceof Predis2RedisCluster))) {
// phpredis & predis don't support pipelining with RedisCluster // phpredis & predis don't support pipelining with RedisCluster
// see https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#pipelining // see https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#pipelining
// see https://github.com/nrk/predis/issues/267#issuecomment-123781423 // see https://github.com/nrk/predis/issues/267#issuecomment-123781423
@@ -643,7 +633,7 @@ trait RedisTrait
$hosts = [$this->redis]; $hosts = [$this->redis];
if ($this->redis instanceof \Predis\ClientInterface) { if ($this->redis instanceof \Predis\ClientInterface) {
$connection = $this->redis->getConnection(); $connection = $this->redis->getConnection();
if ($connection instanceof ClusterInterface && $connection instanceof \Traversable) { if (($connection instanceof ClusterInterface || $connection instanceof Predis2ClusterInterface) && $connection instanceof \Traversable) {
$hosts = []; $hosts = [];
foreach ($connection as $c) { foreach ($connection as $c) {
$hosts[] = new \Predis\Client($c); $hosts[] = new \Predis\Client($c);

View File

@@ -35,7 +35,7 @@
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/cache": "^1.6|^2.0", "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.13.1|^3|^4", "doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1", "predis/predis": "^1.1|^2.0",
"psr/simple-cache": "^1.0|^2.0", "psr/simple-cache": "^1.0|^2.0",
"symfony/config": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0",

View File

@@ -1,4 +1,4 @@
Copyright (c) 2020-2022 Fabien Potencier Copyright (c) 2020-present Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -27,5 +27,5 @@ interface EventDispatcherInterface extends PsrEventDispatcherInterface
* *
* @return object The passed $event MUST be returned * @return object The passed $event MUST be returned
*/ */
public function dispatch(object $event, string $eventName = null): object; public function dispatch(object $event, ?string $eventName = null): object;
} }

View File

@@ -1,4 +1,4 @@
Copyright (c) 2018-2022 Fabien Potencier Copyright (c) 2018-present Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -47,7 +47,7 @@ final class WrappedListener
$this->pretty = $this->name.'::'.$listener[1]; $this->pretty = $this->name.'::'.$listener[1];
} elseif ($listener instanceof \Closure) { } elseif ($listener instanceof \Closure) {
$r = new \ReflectionFunction($listener); $r = new \ReflectionFunction($listener);
if (str_contains($r->name, '{closure}')) { if (str_contains($r->name, '{closure')) {
$this->pretty = $this->name = 'closure'; $this->pretty = $this->name = 'closure';
} elseif ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { } elseif ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) {
$this->name = $class->name; $this->name = $class->name;

View File

@@ -286,7 +286,11 @@ class HeaderUtils
} }
foreach ($partMatches as $matches) { foreach ($partMatches as $matches) {
$parts[] = '' === $separators ? self::unquote($matches[0][0]) : self::groupParts($matches, $separators, false); if ('' === $separators && '' !== $unquoted = self::unquote($matches[0][0])) {
$parts[] = $unquoted;
} elseif ($groupedParts = self::groupParts($matches, $separators, false)) {
$parts[] = $groupedParts;
}
} }
return $parts; return $parts;

View File

@@ -39,7 +39,7 @@ class ParameterBag implements \IteratorAggregate, \Countable
* *
* @return array * @return array
*/ */
public function all(/* string $key = null */) public function all(/* ?string $key = null */)
{ {
$key = \func_num_args() > 0 ? func_get_arg(0) : null; $key = \func_num_args() > 0 ? func_get_arg(0) : null;

View File

@@ -103,6 +103,7 @@ class RedirectResponse extends Response
</html>', htmlspecialchars($url, \ENT_QUOTES, 'UTF-8'))); </html>', htmlspecialchars($url, \ENT_QUOTES, 'UTF-8')));
$this->headers->set('Location', $url); $this->headers->set('Location', $url);
$this->headers->set('Content-Type', 'text/html; charset=utf-8');
return $this; return $this;
} }

View File

@@ -22,7 +22,7 @@
"symfony/polyfill-php80": "^1.16" "symfony/polyfill-php80": "^1.16"
}, },
"require-dev": { "require-dev": {
"predis/predis": "~1.0", "predis/predis": "^1.0|^2.0",
"symfony/cache": "^4.4|^5.0|^6.0", "symfony/cache": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0",
"symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",

View File

@@ -48,6 +48,8 @@ namespace Symfony\Polyfill\Mbstring;
* - mb_strstr - Finds first occurrence of a string within another * - mb_strstr - Finds first occurrence of a string within another
* - mb_strwidth - Return width of string * - mb_strwidth - Return width of string
* - mb_substr_count - Count the number of substring occurrences * - mb_substr_count - Count the number of substring occurrences
* - mb_ucfirst - Make a string's first character uppercase
* - mb_lcfirst - Make a string's first character lowercase
* *
* Not implemented: * Not implemented:
* - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more) * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
@@ -80,6 +82,21 @@ final class Mbstring
public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null) public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
{ {
if (\is_array($s)) {
if (PHP_VERSION_ID < 70200) {
trigger_error('mb_convert_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING);
return null;
}
$r = [];
foreach ($s as $str) {
$r[] = self::mb_convert_encoding($str, $toEncoding, $fromEncoding);
}
return $r;
}
if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) { if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) {
$fromEncoding = self::mb_detect_encoding($s, $fromEncoding); $fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
} else { } else {
@@ -410,7 +427,7 @@ final class Mbstring
public static function mb_check_encoding($var = null, $encoding = null) public static function mb_check_encoding($var = null, $encoding = null)
{ {
if (PHP_VERSION_ID < 70200 && \is_array($var)) { if (\PHP_VERSION_ID < 70200 && \is_array($var)) {
trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING);
return null; return null;
@@ -437,7 +454,6 @@ final class Mbstring
} }
return true; return true;
} }
public static function mb_detect_encoding($str, $encodingList = null, $strict = false) public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
@@ -827,7 +843,7 @@ final class Mbstring
return $code; return $code;
} }
public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, string $encoding = null): string public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null): string
{ {
if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) { if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) {
throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH');
@@ -835,17 +851,8 @@ final class Mbstring
if (null === $encoding) { if (null === $encoding) {
$encoding = self::mb_internal_encoding(); $encoding = self::mb_internal_encoding();
} } else {
self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given');
try {
$validEncoding = @self::mb_check_encoding('', $encoding);
} catch (\ValueError $e) {
throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding));
}
// BC for PHP 7.3 and lower
if (!$validEncoding) {
throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding));
} }
if (self::mb_strlen($pad_string, $encoding) <= 0) { if (self::mb_strlen($pad_string, $encoding) <= 0) {
@@ -871,6 +878,34 @@ final class Mbstring
} }
} }
public static function mb_ucfirst(string $string, ?string $encoding = null): string
{
if (null === $encoding) {
$encoding = self::mb_internal_encoding();
} else {
self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
}
$firstChar = mb_substr($string, 0, 1, $encoding);
$firstChar = mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding);
return $firstChar.mb_substr($string, 1, null, $encoding);
}
public static function mb_lcfirst(string $string, ?string $encoding = null): string
{
if (null === $encoding) {
$encoding = self::mb_internal_encoding();
} else {
self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
}
$firstChar = mb_substr($string, 0, 1, $encoding);
$firstChar = mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding);
return $firstChar.mb_substr($string, 1, null, $encoding);
}
private static function getSubpart($pos, $part, $haystack, $encoding) private static function getSubpart($pos, $part, $haystack, $encoding)
{ {
if (false === $pos) { if (false === $pos) {
@@ -944,4 +979,18 @@ final class Mbstring
return $encoding; return $encoding;
} }
private static function assertEncoding(string $encoding, string $errorFormat): void
{
try {
$validEncoding = @self::mb_check_encoding('', $encoding);
} catch (\ValueError $e) {
throw new \ValueError(\sprintf($errorFormat, $encoding));
}
// BC for PHP 7.3 and lower
if (!$validEncoding) {
throw new \ValueError(\sprintf($errorFormat, $encoding));
}
}
} }

View File

@@ -136,6 +136,14 @@ if (!function_exists('mb_str_pad')) {
function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); }
} }
if (!function_exists('mb_ucfirst')) {
function mb_ucfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
}
if (!function_exists('mb_lcfirst')) {
function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
}
if (extension_loaded('mbstring')) { if (extension_loaded('mbstring')) {
return; return;
} }

View File

@@ -132,6 +132,14 @@ if (!function_exists('mb_str_pad')) {
function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); }
} }
if (!function_exists('mb_ucfirst')) {
function mb_ucfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
}
if (!function_exists('mb_lcfirst')) {
function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
}
if (extension_loaded('mbstring')) { if (extension_loaded('mbstring')) {
return; return;
} }

Submodule digital_doctor_admin/vendor/wanghua/general-utility-tools-php added at f31ce1f391