From 04b28251123d62dddcd48937c5ab9f4a056aeebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=86=89=E6=8C=BD=E6=B8=85=E9=A3=8E?= <1550969027@qq.com> Date: Thu, 23 Mar 2023 11:35:46 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=B8=8D=E7=94=A8orm=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=EF=BC=8C=E9=AA=8C=E8=AF=81=E4=B8=8D=E4=BA=86?= =?UTF-8?q?=E5=94=AF=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 6 +- composer.lock | 678 ++++++++++++++++-- .../用户列表-2023-01-13-103646.xlsx | Bin 6655 -> 0 bytes .../用户列表-2023-01-13-105658.xlsx | Bin 6655 -> 0 bytes public/test.php | 2 - 5 files changed, 633 insertions(+), 53 deletions(-) delete mode 100755 public/export/2023-01/4217088ef73f98b57248170952a5f491/用户列表-2023-01-13-103646.xlsx delete mode 100755 public/export/2023-01/906da811046f469b2c445aeaf5da06bd/用户列表-2023-01-13-105658.xlsx delete mode 100644 public/test.php diff --git a/composer.json b/composer.json index 5ffbd32..a6dbe01 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,6 @@ "workerman/webman-framework": "^1.4.7", "monolog/monolog": "^2.0", "webman/think-orm": "^1.0", - "topthink/think-validate": "^2.0", "vlucas/phpdotenv": "^5.4", "psr/container": "^1.1.1", "webman/think-cache": "^1.0", @@ -40,7 +39,10 @@ "qiniu/php-sdk": "7.4", "qcloud/cos-sdk-v5": "^2.6", "dragonmantank/cron-expression": "^3.3", - "tinywan/storage": "^0.3.4" + "tinywan/storage": "^0.3.4", + "webman/log": "^1.1", + "taoser/webman-validate": "^1.7", + "webman-tech/log-reader": "^2.0" }, "suggest": { "ext-event": "For better performance. " diff --git a/composer.lock b/composer.lock index 62f6a49..fa5a40c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "64507c05c6f5e4cf1e21794755059863", + "content-hash": "5d367c2c416e091ab4eec73aeb18cf08", "packages": [ { "name": "aliyuncs/oss-sdk-php", @@ -973,6 +973,55 @@ ], "time": "2021-10-07T12:57:01+00:00" }, + { + "name": "kriss/log-reader", + "version": "v1.3.3", + "source": { + "type": "git", + "url": "https://github.com/krissss/php-log-reader.git", + "reference": "9878b63610cd28966e1bd0daafb91c97b7337f3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/krissss/php-log-reader/zipball/9878b63610cd28966e1bd0daafb91c97b7337f3e", + "reference": "9878b63610cd28966e1bd0daafb91c97b7337f3e", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "nesbot/carbon": "^1.0|^2.0", + "php": ">7.0", + "symfony/finder": "^3.0|^4.0|^5.0|^6.0", + "symfony/http-foundation": "^3.0|^4.0|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Kriss\\LogReader\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "kriss", + "email": "462679766@qq.com" + } + ], + "description": "Log Reader For PHP", + "support": { + "issues": "https://github.com/krissss/php-log-reader/issues", + "source": "https://github.com/krissss/php-log-reader/tree/v1.3.3" + }, + "time": "2023-03-09T09:54:55+00:00" + }, { "name": "maennchen/zipstream-php", "version": "2.1.0", @@ -1347,6 +1396,114 @@ ], "time": "2020-11-14T18:14:52+00:00" }, + { + "name": "nesbot/carbon", + "version": "2.66.0", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "496712849902241f04902033b0441b269effe001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001", + "reference": "496712849902241f04902033b0441b269effe001", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.1.4", + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2023-01-29T18:53:47+00:00" + }, { "name": "nikic/fast-route", "version": "v1.3.0", @@ -2423,6 +2580,157 @@ ], "time": "2022-01-02T09:53:40+00:00" }, + { + "name": "symfony/finder", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/078e9a5e1871fcfe6a5ce421b539344c21afef19", + "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.4.21" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-16T09:33:00+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "3bb6ee5582366c4176d5ce596b380117c8200bbf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3bb6ee5582366c4176d5ce596b380117c8200bbf", + "reference": "3bb6ee5582366c4176d5ce596b380117c8200bbf", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.4.21" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-17T21:35:35+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "v1.27.0", @@ -3132,6 +3440,245 @@ ], "time": "2022-12-12T15:54:21+00:00" }, + { + "name": "symfony/translation", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "6996affeea65705086939894b77110e9a7f80874" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/6996affeea65705086939894b77110e9a7f80874", + "reference": "6996affeea65705086939894b77110e9a7f80874", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/console": "<5.3", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" + }, + "provide": { + "symfony/translation-implementation": "2.3" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.4.21" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-21T19:46:44+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T16:58:25+00:00" + }, + { + "name": "taoser/webman-validate", + "version": "v1.7.2", + "source": { + "type": "git", + "url": "https://github.com/taoser/webman-validate.git", + "reference": "f6ceda3700cabf3e48966b845fd980faa292127e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/taoser/webman-validate/zipball/f6ceda3700cabf3e48966b845fd980faa292127e", + "reference": "f6ceda3700cabf3e48966b845fd980faa292127e", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.2.0", + "symfony/translation": "^5.4|^6.0", + "topthink/think-container": "~2.0", + "topthink/think-helper": "^3.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/helper.php" + ], + "psr-4": { + "taoser\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "mit" + ], + "authors": [ + { + "name": "taoser", + "email": "changlin_zhao@qq.com" + } + ], + "description": "The webman Validate Package", + "support": { + "issues": "https://github.com/taoser/webman-validate/issues", + "source": "https://github.com/taoser/webman-validate/tree/v1.7.2" + }, + "time": "2022-08-27T08:29:08+00:00" + }, { "name": "tencentcloud/tencentcloud-sdk-php", "version": "3.0.807", @@ -3451,54 +3998,6 @@ }, "time": "2022-12-15T02:52:53+00:00" }, - { - "name": "topthink/think-validate", - "version": "v2.0.2", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-validate.git", - "reference": "857f9bffc1a09a41e3969a19726cb04315848f0f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/top-think/think-validate/zipball/857f9bffc1a09a41e3969a19726cb04315848f0f", - "reference": "857f9bffc1a09a41e3969a19726cb04315848f0f", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "php": ">=7.1.0", - "topthink/think-container": "~2.0" - }, - "type": "library", - "autoload": { - "files": [], - "psr-4": { - "think\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "liu21st", - "email": "liu21st@gmail.com" - } - ], - "description": "think validate", - "support": { - "issues": "https://github.com/top-think/think-validate/issues", - "source": "https://github.com/top-think/think-validate/tree/2.0" - }, - "time": "2019-05-15T06:58:23+00:00" - }, { "name": "vlucas/phpdotenv", "version": "v5.4.1", @@ -3585,6 +4084,50 @@ ], "time": "2021-12-12T23:22:04+00:00" }, + { + "name": "webman-tech/log-reader", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/webman-tech/log-reader.git", + "reference": "f802e5fb77fad1eddddb87b946ec3b2fc842bd3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webman-tech/log-reader/zipball/f802e5fb77fad1eddddb87b946ec3b2fc842bd3f", + "reference": "f802e5fb77fad1eddddb87b946ec3b2fc842bd3f", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "kriss/log-reader": "^1.3", + "php": ">=7.2" + }, + "require-dev": { + "workerman/webman-framework": "^1.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "WebmanTech\\LogReader\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Webman plugin webman-tech/log-reader", + "support": { + "issues": "https://github.com/webman-tech/log-reader/issues", + "source": "https://github.com/webman-tech/log-reader/tree/v2.0.0" + }, + "time": "2022-09-18T10:58:39+00:00" + }, { "name": "webman/console", "version": "v1.2.18", @@ -3644,6 +4187,43 @@ }, "time": "2022-11-26T15:15:21+00:00" }, + { + "name": "webman/log", + "version": "v1.1.5", + "source": { + "type": "git", + "url": "https://github.com/webman-php/log.git", + "reference": "28f722778ef722a78c9be2565d537eea7805cc01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webman-php/log/zipball/28f722778ef722a78c9be2565d537eea7805cc01", + "reference": "28f722778ef722a78c9be2565d537eea7805cc01", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "type": "library", + "autoload": { + "psr-4": { + "Webman\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Webman plugin webman/log", + "support": { + "issues": "https://github.com/webman-php/log/issues", + "source": "https://github.com/webman-php/log/tree/v1.1.5" + }, + "time": "2022-12-28T08:12:41+00:00" + }, { "name": "webman/think-cache", "version": "v1.0.1", diff --git a/public/export/2023-01/4217088ef73f98b57248170952a5f491/用户列表-2023-01-13-103646.xlsx b/public/export/2023-01/4217088ef73f98b57248170952a5f491/用户列表-2023-01-13-103646.xlsx deleted file mode 100755 index 03d0e8f0d7b92dd3e4e10840f3ffde27422c1aca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6655 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