diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61308fa --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.env +public/nginx.htaccess +public/unpackage +public/.htaccess +public/h5 +vender/ diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/.htaccess @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..36f7b6f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,42 @@ +sudo: false + +language: php + +branches: + only: + - stable + +cache: + directories: + - $HOME/.composer/cache + +before_install: + - composer self-update + +install: + - composer install --no-dev --no-interaction --ignore-platform-reqs + - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip . + - composer require --update-no-dev --no-interaction "topthink/think-image:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0" + - composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0" + - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip . + +script: + - php think unit + +deploy: + provider: releases + api_key: + secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw= + file: + - ThinkPHP_Core.zip + - ThinkPHP_Full.zip + skip_cleanup: true + on: + tags: true diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..574a39c --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,32 @@ + +ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 +版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) +All rights reserved。 +ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 + +Apache Licence是著名的非盈利开源组织Apache采用的协议。 +该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, +允许代码修改,再作为开源或商业软件发布。需要满足 +的条件: +1. 需要给代码的用户一份Apache Licence ; +2. 如果你修改了代码,需要在被修改的文件中说明; +3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 +带有原来代码中的协议,商标,专利声明和其他原来作者规 +定需要包含的说明; +4. 如果再发布的产品中包含一个Notice文件,则在Notice文 +件中需要带有本协议内容。你可以在Notice中增加自己的 +许可,但不可以表现为对Apache Licence构成更改。 +具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..6603af6 --- /dev/null +++ b/README.en.md @@ -0,0 +1,147 @@ +[简体中文](./README.md) | English + +# Instant Messaging + +### Introduce +Raingad-IM is an open source instant communication demo, which needs to be used together with the front and back ends. It is mainly used for learning and communication, and provides you with the development ideas of instant communication. Many functions need to be developed by itself, and the original intention of development is to quickly establish the internal communication system, Intranet communication and community communication. + +| type | url | +| --------- | ---- | +| Front-end source code | https://gitee.com/raingad/im-chat-front | +| Back-end source code | https://gitee.com/raingad/im-instant-chat | +| Web Demo | http://im.raingad.com/index.html | +| H5 Demo | http://im.raingad.com/h5 | + + +Dmeo account:13800000002 password:123456 + +The ending number can be modified to 2、3、4......18、19、20 + +Dmeo account:13800000020 password:123456 + +### Supported features + +-Supports single chat and group chat, and supports sending emoticons, images, voice, video, and file messages +-Single chat supports displaying the status of messages that have been read but not read, and displaying online status +-Group chat creation, deletion, group member management, group announcements, group bans, etc +-Support for top contacts and message privacy; +-Support for setting new message sound reminders and browser notifications +-Support administrator to recall group member messages +-Support group members cannot add friends to each other +-Supports one-on-one audio and video calls (connected to both web and mobile devices, not supported by mini programs) +-Supports online preview of files, images, and most media files +-Support for mobile devices (H5, APP, and mini programs, some functions are not compatible) +-New support for enterprise mode and community mode, with community mode supporting registration and adding friends functions +-The app supports online and offline push of single chat messages (requires self application for unipush service) +-Support simple backend management, including user management, group management, system settings, etc + + +### Software architecture + +Back-end technology stack:`thinkphp6+workerman+redis` + +Front-end technology stack:`vue2+Lemon-IMUI+element-UI` + + +### Installation + +> Due to the particularity of instant messaging, it is strictly prohibited to use the source code for Trojan horses, viruses, pornography, gambling, fraud and other industries in violation of local laws and regulations, as well as to engage in criminal activities, such as the use of this software for illegal activities, will be reported to the relevant departments and assist the relevant administrative law enforcement agencies to check! + +> The installation program needs to have some experience in PHP and server operation and maintenance, if not, please join the communication group to contact the author, the author provides paid deployment services! + +#### Preparatory work +You need to install the running environment first. The BAOTA server is recommended. The LNMP architecture is recommended. The following software needs to be installed: + +| environment | version | remark | Recommended | +| --------- | ---- | ---- | ---| +| linux(centOS) | >= 7.0 | The following versions were not tested | 7.9 | +| nginx | >= 1.17 | | latest | +| php | >= 7.1 | incompatible php8 | 7.3 | +| mysql | >= 5.7 | Must be 5.7 and above | 5.7 | +| redis | >= 5.0 | | 7.0 | + +**Important operation** + +1. PHP needs to install an extension : `redis` `fileinfo` + +2. PHP needs to undisable the function : `shell_exec` `chown` `exec` `putenv` `proc_open` `pcntl_exec` `pcntl_alarm` `pcntl_fork` `pcntl_waitpid` `pcntl_wait` `pcntl_signal` `pcntl_signal_dispatch` + +#### Source code download +Download the full source code and put it on your own server. Take a look at the [(releases)](https://gitee.com/raingad/im-instant-chat/releases) at the top of the gitee project home page and download the latest release in the distribution. + +#### Start installation +1. Create a website by pointing the site's running directory to the 'public' directory in the project root. + + + +2. Enable pseudo-static and set the reverse proxy, the following only shows the pseudo-static and reverse proxy configuration of nginx, Apache is not supported for the time being. + + +``` +location ~* (runtime|application)/{ + return 403; +} +location / { + if (!-e $request_filename){ + rewrite ^(.*)$ /index.php?s=$1 last; break; + } +} + +#Reverse proxy port 8282, no modification required + +location /wss + { + proxy_pass http://127.0.0.1:8282; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header X-Real-IP $remote_addr; + } +``` + +3. If you have a domain name and want to use services such as audio and video calls and voice messaging, you also need to configure a certificate to enable HTTPS. You can use a free 'Let's Encrypt' certificate. If you don't need these services, you can directly use the HTTP protocol, but the functionality will be limited. + +4. Access your IP or domain name to enter the custom installation wizard. + + +#### If installation fails +1. Enter `public\sql\database.sql` to import the database into your own database. + +2. Enter the project root directory, modify `example.env` to `.env` , and modify the corresponding database parameters. **Please carefully read the configuration instructions in env**. + +> if you want to save chat files to oss, you need to configure them in the background. Do not modify the environment configuration files after configuration. + +### Start the message push service +As the chat software requires the use of WebSocket, we need to start Workerman. The system has already built-in the corresponding service, and you can run the service from the backend management homepage ( **accessible from the bottom-left corner after logging in with an administrator account** ). If the backend service fails to start successfully, you need to perform the following debugging steps: + +**Reasons for system service startup failure**: + +1. If you have started the `php think worker:gateway start` or `php start.php start` commands in the terminal, please run `killall -9 php` in the terminal or restart the server before running again. + +2. It could be that PHP is not the default version. Execute `php -v` in the terminal to check if the version number is inconsistent with the selected PHP version when creating the website. If inconsistent, you need to modify the website's version to the default PHP version and install the corresponding dependencies and remove disabled functions for PHP. + +3. It could be due to insufficient directory permissions for execution. Reset all directory permissions to `755` for user `www` and try again. + +**If the startup fails, you can perform debugging** + +4. Enter the project root directory to run `php think worker:gateway start`, or run `php start.php start` to run the message service. Do not use `- d` during testing. Under windows, run the `start_for_ win.bat` file in the root directory directly. Since there are many restrictions on the use of Workerman under Windows, it is recommended to use Linux system in formal environment, while windows system is only recommended for development environment. + +5. The message service needs to release port 8282. If you need to modify it, please modify the corresponding parameters in the `WORKER` section of the environment configuration file. For windows users, please modify port 8282 in [`app\worker\start_gateway.php`]. The port number needs to be changed according to the situation. + +6. The system uses the domain name as the address of the websocket service directly, so it needs to configure the proxy in the nginx of the website and listen to port 8282. The parameters of the proxy configuration have been written in the pseudo-static. + +7. For more information about the use of workerman, please visit [workerman official website](https://www.workerman.net/) official website. + +8. After the deployment, the password for the administrator account is: `administrator``123456`, and the management entry is located in the lower left corner of the chat interface. + +### Install deployment Services + +The author provides the installation services of the system, including the back-end and front-end deployment to the online, to ensure the perfect operation of the project, 200 yuan per time, the installation service can provide detailed installation tutorials and interface documents, if necessary, you can contact the author! + +### QQ Communication group +If you have any questions, please leave a message or join our QQ group! + +It's not easy to create. Click a star. + +[QQ Communication group:336921267](https://jq.qq.com/?_wv=1027&k=jMQAt9lh) + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..148f5d3 --- /dev/null +++ b/composer.json @@ -0,0 +1,68 @@ +{ + "name": "topthink/think", + "description": "the new thinkphp framework", + "type": "project", + "keywords": [ + "framework", + "thinkphp", + "ORM" + ], + "homepage": "http://thinkphp.cn/", + "license": "Apache-2.0", + "authors": [{ + "name": "liu21st", + "email": "liu21st@gmail.com" + }, + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "require": { + "php": ">=7.1.0", + "topthink/framework": "6.0.15", + "topthink/think-orm": "^2.0", + "jasny/sso": "^0.3.0", + "xiaodi/think-pullword": "^1.0", + "topthink/think-view": "^1.0", + "aliyuncs/oss-sdk-php": "^2.3", + "tcwei/imglazyload": "^1.3", + "tcwei/imgsrc": "^2.0", + "topthink/think-captcha": "^3.0", + "alibabacloud/client": "^1.5", + "xiaodi/think-pinyin": "^1.0", + "workerman/workerman": "^4.0", + "workerman/gateway-worker": "^3.0", + "workerman/gatewayclient": "^3.0", + "topthink/think-multi-app": "^1.0", + "thans/thinkphp-filesystem-cloud": "^1.0", + "topthink/think-queue": "^3.0", + "yunwuxin/think-cron": "^3.0", + "swiftmailer/swiftmailer": "^6.0", + "thans/tp-jwt-auth": "^1.3", + "singka/singka-sms": "^1.6", + "topthink/think-api": "^1.0" + }, + "require-dev": { + "symfony/var-dumper": "^4.2", + "topthink/think-trace": "^1.0" + }, + "autoload": { + "psr-4": { + "app\\": "app" + }, + "psr-0": { + "": "extend/" + } + }, + "config": { + "preferred-install": "dist", + "secure-http": false + }, + "scripts": { + "post-autoload-dump": [ + "@php think service:discover", + "@php think vendor:publish" + ] + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..7df921b --- /dev/null +++ b/composer.lock @@ -0,0 +1,3548 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "674bc39f3462a2a4238e15002063fa0d", + "packages": [ + { + "name": "adbario/php-dot-notation", + "version": "2.5.0", + "source": { + "type": "git", + "url": "https://github.com/adbario/php-dot-notation.git", + "reference": "081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/adbario/php-dot-notation/zipball/081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae", + "reference": "081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^5.5 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8|^5.7|^6.6|^7.5|^8.5|^9.5", + "squizlabs/php_codesniffer": "^3.6" + }, + "type": "library", + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Adbar\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Riku Särkinen", + "email": "riku@adbar.io" + } + ], + "description": "PHP dot notation access to arrays", + "homepage": "https://github.com/adbario/php-dot-notation", + "keywords": [ + "ArrayAccess", + "dotnotation" + ], + "time": "2022-10-14T20:31:46+00:00" + }, + { + "name": "alibabacloud/client", + "version": "1.5.32", + "source": { + "type": "git", + "url": "https://github.com/aliyun/openapi-sdk-php-client.git", + "reference": "5bc6f6d660797dcee2c3aef29700ab41ee764f4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aliyun/openapi-sdk-php-client/zipball/5bc6f6d660797dcee2c3aef29700ab41ee764f4d", + "reference": "5bc6f6d660797dcee2c3aef29700ab41ee764f4d", + "shasum": "" + }, + "require": { + "adbario/php-dot-notation": "^2.4.1", + "clagiordano/weblibs-configmanager": "^1.0", + "ext-curl": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*", + "ext-xmlwriter": "*", + "guzzlehttp/guzzle": "^6.3|^7.0", + "mtdowling/jmespath.php": "^2.5", + "php": ">=5.5" + }, + "require-dev": { + "composer/composer": "^1.8", + "drupal/coder": "^8.3", + "ext-dom": "*", + "ext-pcre": "*", + "ext-sockets": "*", + "ext-spl": "*", + "league/climate": "^3.2.4", + "mikey179/vfsstream": "^1.6", + "monolog/monolog": "^1.24", + "phpunit/phpunit": "^5.7|^6.6|^7.5|^8.5|^9.5", + "psr/cache": "^1.0", + "symfony/dotenv": "^3.4", + "symfony/var-dumper": "^3.4" + }, + "suggest": { + "ext-sockets": "To use client-side monitoring" + }, + "type": "library", + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "AlibabaCloud\\Client\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Alibaba Cloud SDK", + "email": "sdk-team@alibabacloud.com", + "homepage": "http://www.alibabacloud.com" + } + ], + "description": "Alibaba Cloud Client for PHP - Use Alibaba Cloud in your PHP project", + "homepage": "https://www.alibabacloud.com/", + "keywords": [ + "alibaba", + "alibabacloud", + "aliyun", + "client", + "cloud", + "library", + "sdk", + "tool" + ], + "time": "2022-12-09T04:05:55+00:00" + }, + { + "name": "aliyuncs/oss-sdk-php", + "version": "v2.6.0", + "source": { + "type": "git", + "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git", + "reference": "572d0f8e099e8630ae7139ed3fdedb926c7a760f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/572d0f8e099e8630ae7139ed3fdedb926c7a760f", + "reference": "572d0f8e099e8630ae7139ed3fdedb926c7a760f", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "*", + "satooshi/php-coveralls": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "OSS\\": "src/OSS" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aliyuncs", + "homepage": "http://www.aliyun.com" + } + ], + "description": "Aliyun OSS SDK for PHP", + "homepage": "http://www.aliyun.com/product/oss/", + "time": "2022-08-03T08:06:01+00:00" + }, + { + "name": "clagiordano/weblibs-configmanager", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/clagiordano/weblibs-configmanager.git", + "reference": "5c8ebcc62782313b1278afe802b120d18c07a059" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clagiordano/weblibs-configmanager/zipball/5c8ebcc62782313b1278afe802b120d18c07a059", + "reference": "5c8ebcc62782313b1278afe802b120d18c07a059", + "shasum": "" + }, + "require": { + "php": ">=5.4" + }, + "require-dev": { + "clagiordano/phpunit-result-printer": "^1", + "phpunit/phpunit": "^4.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "clagiordano\\weblibs\\configmanager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Claudio Giordano", + "email": "claudio.giordano@autistici.org", + "role": "Developer" + } + ], + "description": "weblibs-configmanager is a tool library for easily read and access to php config array file and direct read/write configuration file / object", + "keywords": [ + "clagiordano", + "configuration", + "manager", + "tool", + "weblibs" + ], + "time": "2021-05-18T17:55:57+00:00" + }, + { + "name": "desarrolla2/cache", + "version": "v2.1.3", + "source": { + "type": "git", + "url": "https://github.com/desarrolla2/Cache.git", + "reference": "cbc42cae703e6f8cc9e17231f083304f0038318e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/desarrolla2/Cache/zipball/cbc42cae703e6f8cc9e17231f083304f0038318e", + "reference": "cbc42cae703e6f8cc9e17231f083304f0038318e", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "predis/predis": "~1.0.0" + }, + "suggest": { + "predis/predis": "Predis support" + }, + "type": "library", + "autoload": { + "psr-4": { + "Desarrolla2\\Cache\\": "src/", + "Desarrolla2\\Test\\Cache\\": "test/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel González", + "homepage": "http://desarrolla2.com/" + } + ], + "description": "Provides an cache interface for several adapters Apc, Apcu, File, Mongo, Memcache, Memcached, Mysql, Mongo, Redis is supported. New adapters is comming!", + "homepage": "https://github.com/desarrolla2/Cache/", + "keywords": [ + "apc", + "apcu", + "cache", + "file", + "memcache", + "memcached", + "mongo", + "mysql", + "redis" + ], + "time": "2023-05-04T14:59:36+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "time": "2022-02-28T11:07:21+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "48212cdc0a79051d50d7fc2f0645c5a321caf926" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/48212cdc0a79051d50d7fc2f0645c5a321caf926", + "reference": "48212cdc0a79051d50d7fc2f0645c5a321caf926", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.11|^0.12", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "time": "2020-10-13T01:26:01+00:00" + }, + { + "name": "egulias/email-validator", + "version": "2.1.25", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.0.1", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" + }, + "require-dev": { + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "time": "2020-12-29T14:50:06+00:00" + }, + { + "name": "guzzlehttp/command", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/command.git", + "reference": "2aaa2521a8f8269d6f5dfc13fe2af12c76921034" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/command/zipball/2aaa2521a8f8269d6f5dfc13fe2af12c76921034", + "reference": "2aaa2521a8f8269d6f5dfc13fe2af12c76921034", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.2", + "guzzlehttp/promises": "~1.3", + "guzzlehttp/psr7": "~1.0", + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Command\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + } + ], + "description": "Provides the foundation for building command-based web service clients", + "time": "2016-11-24T13:34:15+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/guzzle-services", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle-services.git", + "reference": "9e3abf20161cbf662d616cbb995f2811771759f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle-services/zipball/9e3abf20161cbf662d616cbb995f2811771759f7", + "reference": "9e3abf20161cbf662d616cbb995f2811771759f7", + "shasum": "" + }, + "require": { + "guzzlehttp/command": "~1.0", + "guzzlehttp/guzzle": "^6.2", + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "suggest": { + "gimler/guzzle-description-loader": "^0.0.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Command\\Guzzle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "Stefano Kowalke", + "email": "blueduck@mail.org", + "homepage": "https://github.com/konafets" + } + ], + "description": "Provides an implementation of the Guzzle Command library that uses Guzzle service descriptions to describe web services, serialize requests, and parse responses into easy to use model structures.", + "time": "2017-10-06T14:32:02+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2023-05-21T12:31:43+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b", + "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2023-04-17T16:00:37+00:00" + }, + { + "name": "jasny/sso", + "version": "v0.3.0", + "source": { + "type": "git", + "url": "https://github.com/jasny/sso.git", + "reference": "0cb18c072e7b14db3d2d2549c051f41ca837e5e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jasny/sso/zipball/0cb18c072e7b14db3d2d2549c051f41ca837e5e9", + "reference": "0cb18c072e7b14db3d2d2549c051f41ca837e5e9", + "shasum": "" + }, + "require": { + "desarrolla2/cache": "^2.0.0", + "jasny/validation-result": "^1.0.0", + "php": ">=5.5.0" + }, + "require-dev": { + "codeception/codeception": "^2.1.0", + "jasny/php-code-quality": "^1.1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Jasny\\SSO\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Arnold Daniels", + "email": "arnold@jasny.net", + "homepage": "http://www.jasny.net" + } + ], + "description": "Simple Single Sign-On", + "homepage": "http://www.jasny.net/articles/simple-single-sign-on-for-php/", + "keywords": [ + "SSO", + "auth" + ], + "time": "2017-02-24T22:44:27+00:00" + }, + { + "name": "jasny/validation-result", + "version": "v1.1.2", + "source": { + "type": "git", + "url": "https://github.com/jasny/validation-result.git", + "reference": "fbce54837c8414cf5af22981ac33b26eb13b2a51" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jasny/validation-result/zipball/fbce54837c8414cf5af22981ac33b26eb13b2a51", + "reference": "fbce54837c8414cf5af22981ac33b26eb13b2a51", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "require-dev": { + "jasny/php-code-quality": "^1.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Jasny\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Arnold Daniels", + "email": "arnold@jasny.net", + "homepage": "http://www.jasny.net" + } + ], + "description": "A result object for validation", + "keywords": [ + "validation" + ], + "time": "2019-02-12T12:51:58+00:00" + }, + { + "name": "league/flysystem", + "version": "1.0.70", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "585824702f534f8d3cf7fab7225e8466cc4b7493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/585824702f534f8d3cf7fab7225e8466cc4b7493", + "reference": "585824702f534f8d3cf7fab7225e8466cc4b7493", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": ">=5.5.9" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "phpspec/phpspec": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "phpunit/phpunit": "^5.7.26" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "time": "2020-07-26T07:20:36+00:00" + }, + { + "name": "league/flysystem-cached-adapter", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-cached-adapter.git", + "reference": "d1925efb2207ac4be3ad0c40b8277175f99ffaff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-cached-adapter/zipball/d1925efb2207ac4be3ad0c40b8277175f99ffaff", + "reference": "d1925efb2207ac4be3ad0c40b8277175f99ffaff", + "shasum": "" + }, + "require": { + "league/flysystem": "~1.0", + "psr/cache": "^1.0.0" + }, + "require-dev": { + "mockery/mockery": "~0.9", + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7", + "predis/predis": "~1.0", + "tedivm/stash": "~0.12" + }, + "suggest": { + "ext-phpredis": "Pure C implemented extension for PHP" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Cached\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "frankdejonge", + "email": "info@frenky.net" + } + ], + "description": "An adapter decorator to enable meta-data caching.", + "time": "2020-07-25T15:56:04+00:00" + }, + { + "name": "liz/flysystem-qiniu", + "version": "v1.23", + "source": { + "type": "git", + "url": "https://github.com/l396635210/flysystem-qiniu.git", + "reference": "24af0f95644fcf66e82cc04ce840f31f6450e026" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/l396635210/flysystem-qiniu/zipball/24af0f95644fcf66e82cc04ce840f31f6450e026", + "reference": "24af0f95644fcf66e82cc04ce840f31f6450e026", + "shasum": "" + }, + "require": { + "league/flysystem": "^1.0", + "php": "^7.0 || ^8.0", + "qiniu/php-sdk": "^7.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Liz\\Flysystem\\QiNiu\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "liz in company", + "email": "396635210@qq.com" + } + ], + "description": "QiNiu oss adapter for flysystem", + "time": "2021-01-12T12:50:38+00:00" + }, + { + "name": "mtdowling/jmespath.php", + "version": "2.6.1", + "source": { + "type": "git", + "url": "https://github.com/jmespath/jmespath.php.git", + "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb", + "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb", + "shasum": "" + }, + "require": { + "php": "^5.4 || ^7.0 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" + }, + "require-dev": { + "composer/xdebug-handler": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^7.5.15" + }, + "bin": [ + "bin/jp.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev" + } + }, + "autoload": { + "files": [ + "src/JmesPath.php" + ], + "psr-4": { + "JmesPath\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Declaratively specify how to extract elements from a JSON document", + "keywords": [ + "json", + "jsonpath" + ], + "time": "2021-06-14T00:11:39+00:00" + }, + { + "name": "myclabs/php-enum", + "version": "1.7.7", + "source": { + "type": "git", + "url": "https://github.com/myclabs/php-enum.git", + "reference": "d178027d1e679832db9f38248fcc7200647dc2b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/php-enum/zipball/d178027d1e679832db9f38248fcc7200647dc2b7", + "reference": "d178027d1e679832db9f38248fcc7200647dc2b7", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7", + "squizlabs/php_codesniffer": "1.*", + "vimeo/psalm": "^3.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "MyCLabs\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP Enum contributors", + "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" + } + ], + "description": "PHP Enum implementation", + "homepage": "http://github.com/myclabs/php-enum", + "keywords": [ + "enum" + ], + "time": "2020-11-14T18:14:52+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.68.1", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4f991ed2a403c85efbc4f23eb4030063fdbe01da", + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da", + "shasum": "" + }, + "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" + ], + "time": "2023-06-20T18:29:04+00:00" + }, + { + "name": "overtrue/flysystem-cos", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/overtrue/flysystem-cos.git", + "reference": "f6985f38f3c76a9be962f404f127b7222a9b5fff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/overtrue/flysystem-cos/zipball/f6985f38f3c76a9be962f404f127b7222a9b5fff", + "reference": "f6985f38f3c76a9be962f404f127b7222a9b5fff", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.3|^7.0", + "league/flysystem": "^1.0", + "php": ">=7.0", + "qcloud/cos-sdk-v5": "^2.0.0" + }, + "require-dev": { + "mockery/mockery": "~1.0", + "php": ">=7.1", + "phpunit/phpunit": "^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Overtrue\\Flysystem\\Cos\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "overtrue", + "email": "i@overtrue.me" + } + ], + "description": "Flysystem adapter for the QCloud COS storage.", + "time": "2020-10-22T10:28:58+00:00" + }, + { + "name": "overtrue/pinyin", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/overtrue/pinyin.git", + "reference": "4d0fb4f27f0c79e81c9489e0c0ae4a4f8837eae7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/overtrue/pinyin/zipball/4d0fb4f27f0c79e81c9489e0c0ae4a4f8837eae7", + "reference": "4d0fb4f27f0c79e81c9489e0c0ae4a4f8837eae7", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "brainmaestro/composer-git-hooks": "^2.7", + "friendsofphp/php-cs-fixer": "^2.16", + "phpunit/phpunit": "~8.0" + }, + "type": "library", + "extra": { + "hooks": { + "pre-commit": [ + "composer test", + "composer fix-style" + ], + "pre-push": [ + "composer test", + "composer check-style" + ] + } + }, + "autoload": { + "files": [ + "src/const.php" + ], + "psr-4": { + "Overtrue\\Pinyin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "overtrue", + "email": "anzhengchao@gmail.com", + "homepage": "http://github.com/overtrue" + } + ], + "description": "Chinese to pinyin translator.", + "homepage": "https://github.com/overtrue/pinyin", + "keywords": [ + "Chinese", + "Pinyin", + "cn2pinyin" + ], + "time": "2023-04-27T10:17:12+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "qcloud/cos-sdk-v5", + "version": "v2.6.3", + "source": { + "type": "git", + "url": "https://github.com/tencentyun/cos-php-sdk-v5.git", + "reference": "dd1b7a096cbdcafc9de265cb2bb1b4222ac60136" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/dd1b7a096cbdcafc9de265cb2bb1b4222ac60136", + "reference": "dd1b7a096cbdcafc9de265cb2bb1b4222ac60136", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "guzzlehttp/guzzle": "^6.2.1 || ^7.0", + "guzzlehttp/guzzle-services": "^1.1", + "guzzlehttp/psr7": "^1.3.1 || ^2.0", + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "files": [ + "src/Common.php" + ], + "psr-4": { + "Qcloud\\Cos\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "yaozongyou", + "email": "yaozongyou@vip.qq.com" + }, + { + "name": "lewzylu", + "email": "327874225@qq.com" + }, + { + "name": "tuunalai", + "email": "550566181@qq.com" + } + ], + "description": "PHP SDK for QCloud COS", + "keywords": [ + "cos", + "php", + "qcloud" + ], + "time": "2023-06-14T03:18:14+00:00" + }, + { + "name": "qcloudsms/qcloudsms_php", + "version": "v0.1.4", + "source": { + "type": "git", + "url": "https://github.com/qcloudsms/qcloudsms_php.git", + "reference": "48822045772d343b93c3d505d8a187cd51153c5a" + }, + "dist": { + "type": "zip", + "url": "https://mirrors.huaweicloud.com/repository/php/qcloudsms/qcloudsms_php/v0.1.4/qcloudsms-qcloudsms_php-v0.1.4.zip", + "reference": "48822045772d343b93c3d505d8a187cd51153c5a", + "shasum": "" + }, + "require-dev": { + "sami/sami": "dev-master" + }, + "type": "library", + "autoload": { + "psr-4": { + "Qcloud\\Sms\\": "src/" + } + }, + "license": [ + "MIT" + ], + "description": "qcloud sms php sdk", + "keywords": [ + "php", + "qcloud", + "sdk", + "sms" + ], + "time": "2018-09-19T07:19:17+00:00" + }, + { + "name": "qeq66/jwt", + "version": "3.3.5", + "source": { + "type": "git", + "url": "https://github.com/qeq66/jwt.git", + "reference": "bd2fa6c51704dc18c61026c852c789224d7190a0" + }, + "dist": { + "type": "zip", + "url": "https://mirrors.huaweicloud.com/repository/php/qeq66/jwt/3.3.5/qeq66-jwt-3.3.5.zip", + "reference": "bd2fa6c51704dc18c61026c852c789224d7190a0", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-openssl": "*", + "php": ">=5.6" + }, + "require-dev": { + "mikey179/vfsstream": "~1.5", + "phpmd/phpmd": "~2.2", + "phpunit/php-invoker": "~1.1", + "phpunit/phpunit": "^5.7 || ^7.3", + "squizlabs/php_codesniffer": "~2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Lcobucci\\JWT\\": "src" + } + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Luís Otávio Cobucci Oblonczyk", + "email": "lcobucci@gmail.com", + "role": "Developer" + } + ], + "description": "A simple library to work with JSON Web Token and JSON Web Signature", + "keywords": [ + "JWS", + "jwt" + ], + "time": "2022-07-11T08:31:22+00:00" + }, + { + "name": "qiniu/php-sdk", + "version": "v7.9.0", + "source": { + "type": "git", + "url": "https://github.com/qiniu/php-sdk.git", + "reference": "3c0ebeee6a7439a0d2874f24b56dfe43545a1d2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/qiniu/php-sdk/zipball/3c0ebeee6a7439a0d2874f24b56dfe43545a1d2e", + "reference": "3c0ebeee6a7439a0d2874f24b56dfe43545a1d2e", + "shasum": "" + }, + "require": { + "myclabs/php-enum": "~1.5.2 || ~1.6.6 || ~1.7.7 || ~1.8.4", + "php": ">=5.3.3" + }, + "require-dev": { + "paragonie/random_compat": ">=2", + "phpunit/phpunit": "^4.8 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4", + "squizlabs/php_codesniffer": "^2.3 || ~3.6" + }, + "type": "library", + "autoload": { + "files": [ + "src/Qiniu/functions.php" + ], + "psr-4": { + "Qiniu\\": "src/Qiniu" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Qiniu", + "email": "sdk@qiniu.com", + "homepage": "http://www.qiniu.com" + } + ], + "description": "Qiniu Resource (Cloud) Storage SDK for PHP", + "homepage": "http://developer.qiniu.com/", + "keywords": [ + "cloud", + "qiniu", + "sdk", + "storage" + ], + "time": "2023-05-06T04:36:16+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "singka/singka-sms", + "version": "v1.6", + "source": { + "type": "git", + "url": "https://github.com/SingKa-TECH/singka-sms.git", + "reference": "8db3543dfb7f28851b94de99dfe9b762f0b9b6a4" + }, + "dist": { + "type": "zip", + "url": "https://mirrors.huaweicloud.com/repository/php/singka/singka-sms/v1.6/singka-singka-sms-v1.6.zip", + "reference": "8db3543dfb7f28851b94de99dfe9b762f0b9b6a4", + "shasum": "" + }, + "require": { + "alibabacloud/client": "^1.5", + "guzzlehttp/guzzle": "~6.0@dev", + "php": ">=7.0", + "qcloudsms/qcloudsms_php": "0.1.*", + "qiniu/php-sdk": "^7.2", + "singka/ucloud-sms": "^1.8" + }, + "type": "library", + "extra": { + "think": { + "config": { + "sms": "config/config.php" + } + } + }, + "autoload": { + "psr-4": { + "SingKa\\Sms\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "宁波晟嘉网络科技有限公司 夏慧新", + "email": "shycomet@singka.email" + } + ], + "description": "适用于ThinkPHP6.0的各种短信接口集成服务,本项目集成了各大云服务厂商的短信业务平台,支持ThinkPHP5.0、ThinkPHP5.1和ThinkPHP6.0,由宁波晟嘉网络科技有限公司维护,目前支持阿里云、腾讯云、七牛云、又拍云、Ucloud和华为云。", + "time": "2020-07-02T05:07:00+00:00" + }, + { + "name": "singka/ucloud-sms", + "version": "v1.8", + "source": { + "type": "git", + "url": "https://github.com/SingKa-TECH/ucloud-sms.git", + "reference": "7c4ae42e9c7b26b4db7e6340ff03f68b15e3b0d8" + }, + "dist": { + "type": "zip", + "url": "https://mirrors.huaweicloud.com/repository/php/singka/ucloud-sms/v1.8/singka-ucloud-sms-v1.8.zip", + "reference": "7c4ae42e9c7b26b4db7e6340ff03f68b15e3b0d8", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "think": { + "config": { + "usms": "config/config.php" + } + } + }, + "autoload": { + "psr-4": { + "Singka\\UcloudSms\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "宁波晟嘉网络科技有限公司 夏慧新", + "email": "shycomet@singka.email" + } + ], + "description": "ThinkPHP系列Ucloud的短信接口,支持ThinkPHP6、ThinkPHP5.1和ThinkPHP5.0", + "time": "2020-03-24T16:24:09+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.0|^3.1", + "php": ">=7.0.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "symfony/phpunit-bridge": "^4.4|^5.4" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "abandoned": "symfony/mailer", + "time": "2021-10-18T15:26:12+00:00" + }, + { + "name": "symfony/polyfill-iconv", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "927013f3aac555983a5059aada98e1907d842695" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", + "reference": "927013f3aac555983a5059aada98e1907d842695", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-iconv": "*" + }, + "suggest": { + "ext-iconv": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/process", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/5cee9cdc4f7805e2699d9fd66991a0e6df8252a2", + "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "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": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/translation", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/45036b1d53accc48fe9bab71ccd86d57eba0dd94", + "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "symfony/translation-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "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", + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "7462e5c4cb8b9cd152f992e8f10963b5641921f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/7462e5c4cb8b9cd152f992e8f10963b5641921f6", + "reference": "7462e5c4cb8b9cd152f992e8f10963b5641921f6", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-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" + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "tcwei/imglazyload", + "version": "v1.3", + "source": { + "type": "git", + "url": "https://github.com/ITzhiwei/ArticleImgLazyload.git", + "reference": "f7634e446de972a26aac6973141c39ca2ea62b89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ITzhiwei/ArticleImgLazyload/zipball/f7634e446de972a26aac6973141c39ca2ea62b89", + "reference": "f7634e446de972a26aac6973141c39ca2ea62b89", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "tcwei\\smallTools\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "zhiwei", + "email": "2394599321@qq.com" + } + ], + "description": "文章图片懒加载,当文章中存在大量图片时,可使用该库进行图片懒加载,看不到的图片不进行加载,节省带宽", + "time": "2020-06-25T14:08:30+00:00" + }, + { + "name": "tcwei/imgsrc", + "version": "v2.02", + "source": { + "type": "git", + "url": "https://github.com/ITzhiwei/getImgSrc.git", + "reference": "832342b664fc7d84e0c6253ab90407f2b565887e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ITzhiwei/getImgSrc/zipball/832342b664fc7d84e0c6253ab90407f2b565887e", + "reference": "832342b664fc7d84e0c6253ab90407f2b565887e", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "tcwei\\smallTools\\": "imgSrc/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "zhiwei", + "email": "2394599321@qq.com" + } + ], + "description": "高效率字符串模式(可比正则获取快3倍)从HTML或者文章内容等字符串中提取图片的src,可指定提取第几张图片、顺数第几或逆数第几、可指定黑名单等。页面下面有使用例子:", + "time": "2021-06-16T15:07:12+00:00" + }, + { + "name": "thans/thinkphp-filesystem-cloud", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/QThans/thinkphp-filesystem-cloud.git", + "reference": "b8d6d61a8b28df12ae9b1b19249b90e8a645ffa2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/QThans/thinkphp-filesystem-cloud/zipball/b8d6d61a8b28df12ae9b1b19249b90e8a645ffa2", + "reference": "b8d6d61a8b28df12ae9b1b19249b90e8a645ffa2", + "shasum": "" + }, + "require": { + "liz/flysystem-qiniu": "^1.10", + "overtrue/flysystem-cos": "^2.0.0", + "php": ">=7.1.0", + "topthink/framework": "^6.0.0", + "xxtime/flysystem-aliyun-oss": "^1.4" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "thans\\filesystem\\Service" + ] + } + }, + "autoload": { + "psr-4": { + "thans\\filesystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thans", + "email": "360641274@qq.com" + } + ], + "description": "thinkphp6.0 filesystem,include Aliyun and Qiniu", + "time": "2019-11-29T00:57:33+00:00" + }, + { + "name": "thans/tp-jwt-auth", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/QThans/jwt-auth.git", + "reference": "ab5efcc0fd920df81fea2c404c34bb967ef13aba" + }, + "dist": { + "type": "zip", + "url": "https://mirrors.huaweicloud.com/repository/php/thans/tp-jwt-auth/v1.3.1/thans-tp-jwt-auth-v1.3.1.zip", + "reference": "ab5efcc0fd920df81fea2c404c34bb967ef13aba", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "qeq66/jwt": "3.3.*", + "topthink/framework": "^5.1.10 || ^6.0.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "thans\\jwt\\Service" + ], + "config": { + "jwt": "config/config.php" + } + } + }, + "autoload": { + "files": [ + "src/helper.php" + ], + "psr-4": { + "thans\\jwt\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thans", + "email": "360641274@qq.com" + } + ], + "description": "thinkphp jwt auth composer", + "time": "2022-11-01T02:44:23+00:00" + }, + { + "name": "topthink/framework", + "version": "v6.0.8", + "source": { + "type": "git", + "url": "https://github.com/top-think/framework.git", + "reference": "4789343672aef06d571d556da369c0e156609bce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/framework/zipball/4789343672aef06d571d556da369c0e156609bce", + "reference": "4789343672aef06d571d556da369c0e156609bce", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "league/flysystem": "^1.0", + "league/flysystem-cached-adapter": "^1.0", + "php": ">=7.1.0", + "psr/container": "~1.0", + "psr/log": "~1.0", + "psr/simple-cache": "^1.0", + "topthink/think-helper": "^3.1.1", + "topthink/think-orm": "^2.0" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "mockery/mockery": "^1.2", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "autoload": { + "files": [], + "psr-4": { + "think\\": "src/think/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + }, + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP Framework.", + "homepage": "http://thinkphp.cn/", + "keywords": [ + "framework", + "orm", + "thinkphp" + ], + "time": "2021-04-27T00:41:08+00:00" + }, + { + "name": "topthink/think-captcha", + "version": "v3.0.9", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-captcha.git", + "reference": "b1ef360670578214edeebcf824aaf6ab7ee0528b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-captcha/zipball/b1ef360670578214edeebcf824aaf6ab7ee0528b", + "reference": "b1ef360670578214edeebcf824aaf6ab7ee0528b", + "shasum": "" + }, + "require": { + "topthink/framework": "^6.0|^8.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\captcha\\CaptchaService" + ], + "config": { + "captcha": "src/config.php" + } + } + }, + "autoload": { + "files": [ + "src/helper.php" + ], + "psr-4": { + "think\\captcha\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "captcha package for thinkphp", + "time": "2023-04-27T07:18:40+00:00" + }, + { + "name": "topthink/think-helper", + "version": "v3.1.6", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-helper.git", + "reference": "769acbe50a4274327162f9c68ec2e89a38eb2aff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-helper/zipball/769acbe50a4274327162f9c68ec2e89a38eb2aff", + "reference": "769acbe50a4274327162f9c68ec2e89a38eb2aff", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/helper.php" + ], + "psr-4": { + "think\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP6 Helper Package", + "time": "2021-12-15T04:27:55+00:00" + }, + { + "name": "topthink/think-multi-app", + "version": "v1.0.17", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-multi-app.git", + "reference": "4055a6187296ac16c0bc7bbab4ed5d92f82f791c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-multi-app/zipball/4055a6187296ac16c0bc7bbab4ed5d92f82f791c", + "reference": "4055a6187296ac16c0bc7bbab4ed5d92f82f791c", + "shasum": "" + }, + "require": { + "php": ">=7.1.0", + "topthink/framework": "^6.0|^8.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\app\\Service" + ] + } + }, + "autoload": { + "psr-4": { + "think\\app\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "thinkphp multi app support", + "time": "2023-03-29T02:04:29+00:00" + }, + { + "name": "topthink/think-orm", + "version": "v2.0.61", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-orm.git", + "reference": "10528ebf4a5106b19c3bac9c6deae7a67ff49de6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-orm/zipball/10528ebf4a5106b19c3bac9c6deae7a67ff49de6", + "reference": "10528ebf4a5106b19c3bac9c6deae7a67ff49de6", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pdo": "*", + "php": ">=7.1.0", + "psr/log": "^1.0|^2.0", + "psr/simple-cache": "^1.0|^2.0", + "topthink/think-helper": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^7|^8|^9.5" + }, + "type": "library", + "autoload": { + "files": [ + "stubs/load_stubs.php" + ], + "psr-4": { + "think\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "think orm", + "keywords": [ + "database", + "orm" + ], + "time": "2023-04-20T14:27:51+00:00" + }, + { + "name": "topthink/think-queue", + "version": "v3.0.9", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-queue.git", + "reference": "654812b47dd7c708c4443deed27f212f8382e8da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-queue/zipball/654812b47dd7c708c4443deed27f212f8382e8da", + "reference": "654812b47dd7c708c4443deed27f212f8382e8da", + "shasum": "" + }, + "require": { + "ext-json": "*", + "nesbot/carbon": "^2.16", + "symfony/process": ">=4.2", + "topthink/framework": "^6.0 || ^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "phpunit/phpunit": "^6.2", + "topthink/think-migration": "^3.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\queue\\Service" + ], + "config": { + "queue": "src/config.php" + } + } + }, + "autoload": { + "files": [ + "src/common.php" + ], + "psr-4": { + "think\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP6 Queue Package", + "time": "2023-07-03T05:42:01+00:00" + }, + { + "name": "topthink/think-template", + "version": "v2.0.9", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-template.git", + "reference": "6d25642ae0e306166742fd7073dc7a159e18073c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-template/zipball/6d25642ae0e306166742fd7073dc7a159e18073c", + "reference": "6d25642ae0e306166742fd7073dc7a159e18073c", + "shasum": "" + }, + "require": { + "php": ">=7.1.0", + "psr/simple-cache": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "the php template engine", + "time": "2023-02-14T10:50:39+00:00" + }, + { + "name": "topthink/think-view", + "version": "v1.0.14", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-view.git", + "reference": "edce0ae2c9551ab65f9e94a222604b0dead3576d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-view/zipball/edce0ae2c9551ab65f9e94a222604b0dead3576d", + "reference": "edce0ae2c9551ab65f9e94a222604b0dead3576d", + "shasum": "" + }, + "require": { + "php": ">=7.1.0", + "topthink/think-template": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\view\\driver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "thinkphp template driver", + "time": "2019-11-06T11:40:13+00:00" + }, + { + "name": "workerman/gateway-worker", + "version": "v3.0.28", + "source": { + "type": "git", + "url": "https://github.com/walkor/GatewayWorker.git", + "reference": "a7dffc53403133131a51b9fd3c6c6d70869cb6d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/walkor/GatewayWorker/zipball/a7dffc53403133131a51b9fd3c6c6d70869cb6d3", + "reference": "a7dffc53403133131a51b9fd3c6c6d70869cb6d3", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "workerman/workerman": "^4.0.30" + }, + "type": "library", + "autoload": { + "psr-4": { + "GatewayWorker\\": "./src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "homepage": "http://www.workerman.net", + "keywords": [ + "communication", + "distributed" + ], + "time": "2023-03-24T03:56:27+00:00" + }, + { + "name": "workerman/gatewayclient", + "version": "v3.0.14", + "source": { + "type": "git", + "url": "https://github.com/walkor/GatewayClient.git", + "reference": "4362468d68251015b2b385c310252afb4d6648ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/walkor/GatewayClient/zipball/4362468d68251015b2b385c310252afb4d6648ed", + "reference": "4362468d68251015b2b385c310252afb4d6648ed", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "GatewayClient\\": "./" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "homepage": "http://www.workerman.net", + "time": "2021-11-29T07:03:50+00:00" + }, + { + "name": "workerman/workerman", + "version": "v4.1.10", + "source": { + "type": "git", + "url": "https://github.com/walkor/workerman.git", + "reference": "e967b79f95b9251a72acb971be05623ec1a51e83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/walkor/workerman/zipball/e967b79f95b9251a72acb971be05623ec1a51e83", + "reference": "e967b79f95b9251a72acb971be05623ec1a51e83", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "suggest": { + "ext-event": "For better performance. " + }, + "type": "library", + "autoload": { + "psr-4": { + "Workerman\\": "./" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "walkor", + "email": "walkor@workerman.net", + "homepage": "http://www.workerman.net", + "role": "Developer" + } + ], + "description": "An asynchronous event driven PHP framework for easily building fast, scalable network applications.", + "homepage": "http://www.workerman.net", + "keywords": [ + "asynchronous", + "event-loop" + ], + "time": "2023-05-01T02:12:20+00:00" + }, + { + "name": "xiaodi/think-pinyin", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/edenleung/think-pinyin.git", + "reference": "4675515d3be42bebff712383c306ff99ef279f97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/edenleung/think-pinyin/zipball/4675515d3be42bebff712383c306ff99ef279f97", + "reference": "4675515d3be42bebff712383c306ff99ef279f97", + "shasum": "" + }, + "require": { + "overtrue/pinyin": "~4.0", + "topthink/framework": "6.0.*|5.1.*" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "xiaodi\\ThinkPinyin\\PinyinService" + ] + } + }, + "autoload": { + "psr-4": { + "xiaodi\\ThinkPinyin\\": "src/" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "xiaodi", + "email": "liangjinbiao@live.com" + } + ], + "description": "ThinkPHP 中文转拼音扩展包", + "keywords": [ + "Chinese", + "Pinyin", + "thinkphp" + ], + "time": "2019-10-25T09:19:32+00:00" + }, + { + "name": "xiaodi/think-pullword", + "version": "v1.2.1", + "source": { + "type": "git", + "url": "https://github.com/friendsofthinkphp/think-pullword.git", + "reference": "0e6f1ee141090a012dc8876209eaa3cf166c84c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/friendsofthinkphp/think-pullword/zipball/0e6f1ee141090a012dc8876209eaa3cf166c84c4", + "reference": "0e6f1ee141090a012dc8876209eaa3cf166c84c4", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^5.0|^6.0|^7.0", + "topthink/framework": "6.0.*|5.1.*" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "PullWord\\PullWordService" + ] + } + }, + "autoload": { + "files": [ + "src/helper.php" + ], + "psr-4": { + "PullWord\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "xiaodi", + "email": "liangjinbiao@live.com" + } + ], + "description": "ThinkPHP 分词/抽词 扩展包", + "keywords": [ + "php", + "think-extend", + "thinkphp" + ], + "time": "2021-01-05T02:48:17+00:00" + }, + { + "name": "xxtime/flysystem-aliyun-oss", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/xxtime/flysystem-aliyun-oss.git", + "reference": "ae873b5919076157b9cfeaf39d2f56d2dbb39ee9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/xxtime/flysystem-aliyun-oss/zipball/ae873b5919076157b9cfeaf39d2f56d2dbb39ee9", + "reference": "ae873b5919076157b9cfeaf39d2f56d2dbb39ee9", + "shasum": "" + }, + "require": { + "aliyuncs/oss-sdk-php": "~2.3", + "league/flysystem": "^1.0.49", + "php": ">=5.5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Xxtime\\Flysystem\\Aliyun\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joe", + "email": "joe@xxtime.com", + "homepage": "https://github.com/xxtime", + "role": "Developer" + } + ], + "description": "AliYun OSS adapter for flysystem. aliyuncs/oss-sdk-php ~2.3", + "homepage": "https://github.com/xxtime/flysystem-aliyun-oss", + "keywords": [ + "Flysystem", + "aliyun-oss", + "flysystem-aliyun-oss" + ], + "time": "2019-11-12T07:57:34+00:00" + }, + { + "name": "yunwuxin/think-cron", + "version": "v3.0.6", + "source": { + "type": "git", + "url": "https://github.com/yunwuxin/think-cron.git", + "reference": "4013c39cea4600e05ffd10de5b63177bfb9bf480" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yunwuxin/think-cron/zipball/4013c39cea4600e05ffd10de5b63177bfb9bf480", + "reference": "4013c39cea4600e05ffd10de5b63177bfb9bf480", + "shasum": "" + }, + "require": { + "dragonmantank/cron-expression": "^3.0", + "nesbot/carbon": "^2.28", + "symfony/process": "^4.4 || ^5.0", + "topthink/framework": "^6.0 || ^8.0" + }, + "require-dev": { + "topthink/think-swoole": "^4.0" + }, + "type": "library", + "extra": { + "think": { + "config": { + "cron": "src/config.php" + }, + "services": [ + "yunwuxin\\cron\\Service" + ] + } + }, + "autoload": { + "psr-4": { + "yunwuxin\\cron\\": "src/cron" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "计划任务", + "time": "2023-07-01T11:10:51+00:00" + } + ], + "packages-dev": [ + { + "name": "symfony/var-dumper", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "topthink/think-trace", + "version": "v1.6", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-trace.git", + "reference": "136cd5d97e8bdb780e4b5c1637c588ed7ca3e142" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-trace/zipball/136cd5d97e8bdb780e4b5c1637c588ed7ca3e142", + "reference": "136cd5d97e8bdb780e4b5c1637c588ed7ca3e142", + "shasum": "" + }, + "require": { + "php": ">=7.1.0", + "topthink/framework": "^6.0|^8.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\trace\\Service" + ], + "config": { + "trace": "src/config.php" + } + } + }, + "autoload": { + "psr-4": { + "think\\trace\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "thinkphp debug trace", + "time": "2023-02-07T08:36:32+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.1.0" + }, + "platform-dev": [] +} diff --git a/crontab.txt b/crontab.txt new file mode 100644 index 0000000..9908428 --- /dev/null +++ b/crontab.txt @@ -0,0 +1,12 @@ +2024-01-17 14:17:58:任务开始执行 +2024-01-17 14:17:58:设置已读成功 +2024-01-17 14:18:58:任务开始执行 +2024-01-17 14:18:58:设置已读成功 +2024-01-17 14:19:58:任务开始执行 +2024-01-17 14:19:58:设置已读成功 +2024-01-17 14:20:58:任务开始执行 +2024-01-17 14:20:58:设置已读成功 +2024-01-17 14:21:58:任务开始执行 +2024-01-17 14:21:58:设置已读成功 +2024-01-17 14:22:58:任务开始执行 +2024-01-17 14:22:58:设置已读成功 diff --git a/example.env b/example.env new file mode 100644 index 0000000..dfb47d5 --- /dev/null +++ b/example.env @@ -0,0 +1,113 @@ +APP_DEBUG = true + +[APP] +NAME = IM +LOGO = +VERSION = 5.4.0 +RELEASE = 20241226 +# 主域名必填 +HOST = +DEFAULT_TIMEZONE = Asia/Shanghai +#开放api的开关 +API_STATUS = true +#开放api接口的配置信息 +ID = a1b2c3d4e5f +SECRET = 123456sdfghjkl + +# thinkapi的令牌,目前只用于敏感词过滤,其他接口自行接入 +THINKAPI_TOKEN = + +# 下载页分发链接 +DOWNAPP_URL = +# 安卓包名,如果上架了市场,根据市场ID跳转市场 +ANDRIOD_APPID = +#安卓下载地址,如果未设置会检测根目录是否有app.apk +ANDRIOD_WEBCLIP = +#APPSTORE市场ID +IOS_APPID = +#IOS下载地址,如果没有市场的ID则使用下载地址 +IOS_WEBCLIP = +#windows下载地址 +WIN_WEBCLIP = +#mac下载地址 +MAC_WEBCLIP = + +[DATABASE] +TYPE = mysql +HOSTNAME = 127.0.0.1 +DATABASE = im +USERNAME = root +PASSWORD = My01020304 +HOSTPORT = 3306 +CHARSET = utf8mb4 +DEBUG = true +prefix = yu_ +[LANG] +default_lang = zh-cn + +[REDIS] +HOST = 127.0.0.1 +PORT = 6379 +PASSWORD = +PREFIX = + +视频封面截取配置,需要单独安装,宝塔安装默认地址为/www/server/ffmpeg/ffmpeg-6.1 +[FFMPEG] +BIN_PATH = + +[AES] +TOKEN_KEY = tHTi8USApxsdfnhTM +LOGIN_KEY = t2fe6HMnmssswDVi2 +#最后是自定义自己能记的,不要太长,不要太短,不要太简单,不要太复杂,不要太难记,一旦确定之后就不需要再修改。否者无法解析聊天记录,开启后聊天记录不可被搜索 +CHAT_KEY = + +[JWT] +SECRET = 17b190c0d612321f94f57325ae5a8b4c +TTL = 2592000 + + +[WORKER] +NAME = businessWorker +PORT = 8282 +# 根据自己的核心数而配置 +COUNT = 1 +START_PORT = 2300 +REGISTER_ADDRESS =127.0.0.1:1236 +lAN_IP = 127.0.0.1 +# 分部署部署只需要启动一个gateway,其他的gateway只需要配置register_address即可 +REGISTER_DEPLOY = true + +#配置预览功能,本系统主要使用第三方的预览工具,比如永中云转换,自带预览系统 +[PREVIEW] +# 自带预览系统URL,主要用于预览媒体文件,已内置,必须要有最后的/斜杠 +own= +# 永中云文件预览,主要用于文档预览,必须要有最后的/斜杠 +yzdcs=http://domain/ +# 永中云api code +keycode=17444844212312 + +[UNIPUSH] +# unipush的云函数转url地址,主要用于推送 +URL= +# unipush直接推送通知栏还是app接收后再创建通知栏 +IS_FORCE=false + +# 配置对象储存,主要用于聊天文件储存,可以通过后台进行配置 + +[FILESYSTEM] +driver=local +aliyun_accessId=false +aliyun_accessSecret=false +aliyun_bucket=false +aliyun_endpoint=false +aliyun_url=false +qiniu_accessKey=false +qiniu_secretKey=false +qiniu_bucket=false +qiniu_url=false +qcloud_region=false +qcloud_appId=false +qcloud_secretId=false +qcloud_secretKey=false +qcloud_bucket=false +qcloud_cdn=false \ No newline at end of file diff --git a/route/app.php b/route/app.php new file mode 100644 index 0000000..3e15522 --- /dev/null +++ b/route/app.php @@ -0,0 +1,15 @@ + +// +---------------------------------------------------------------------- +use think\facade\Route; +Route::get('captcha/[:config]','\\think\\captcha\\CaptchaController@index'); +Route::get('think', function () { + return 'hello,ThinkPHP6!'; +}); \ No newline at end of file diff --git a/start.php b/start.php new file mode 100644 index 0000000..50c918b --- /dev/null +++ b/start.php @@ -0,0 +1,37 @@ +console->run(); \ No newline at end of file diff --git a/view/index/index/down_app.html b/view/index/index/down_app.html new file mode 100644 index 0000000..35d9593 --- /dev/null +++ b/view/index/index/down_app.html @@ -0,0 +1,168 @@ + + + + + + + + + 应用下载 + + + + + + + +
+
+
+
+ +
+
+ {$config.name} +

{$config.description}

+
+ 下载 + ? +
+
+
+
声明:请注意甄别APP内容,谨防上当受骗!
+
+ + + {if condition="!request()->isMobile()"} +
+
桌面端下载:
+
+ {if condition="!empty($client.win_webclip)"} + + {/if} + {if condition="!empty($client.mac_webclip)"} + + {/if} + {if condition="empty($client.win_webclip) && empty($client.mac_webclip)"} + 暂无桌面版安装包 + {/if} +
+
+ {/if} +
+ V- {$Think.config.app.app_version}

+
+
+
+ +
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/view/index/index/downapp.html b/view/index/index/downapp.html new file mode 100644 index 0000000..1e0b39f --- /dev/null +++ b/view/index/index/downapp.html @@ -0,0 +1,648 @@ + + + + + + + + + + OZON + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+
+
+ +
+
+
+ OZON +
+ +
+
+ + +
+
+

10088个评分

+

4.9 

+

+ +

+
+
+
+

年龄

+

16+

+

+
+
+
+

排行榜

+

#1

+

应用

+
+
+
+

大小

+

2

+

M

+
+
+ + +
+

+ 简介 +

+
+
【OZON】 是一个批发采购与零售购物的跨境电商平台,源头好货厂家直购先行者,享誉全球的官方指定APP。采购进货,与工厂面对面,抢占一手低价货源;全民批发,享高性价比购物,体验一件也是批发价的生活。打开OZON,开启批发购物新模式。
+
+
+ +
+

+ 评分及评论 +

+
+
4.9 +

+ 满分 5 分 +

+
+
+
    +
  • +
    + +
    +
    +
    +
    +
  • +
  • +
    + +
    +
    +
    +
    +
    +
  • +
  • +
    + +
    +
    +
    +
    +
    +
  • +
  • +
    + +
    +
    +
    +
    +
    +
  • +
  • +
    + +
    +
    +
    +
    +
    +
  • +
+

+ 10088个评分 +

+
+
+
+ +
+
+

+ 非常不错的应用,推荐! + 04-14 +

+
+ + + + James Levine +
+
+
+ 这个应用真的太好用了,应用流畅不卡顿,画面清晰,操作便捷,玩法丰富多样,同事都在玩这个App,朋友们可以试试看,真的是非常的不错,强烈推荐推荐推荐!!! +
+
+ +
+

+ 新功能 +

+
+

+ 版本1.0 +

+
+
+
+

+ 信息 +

+
    +
  • + 供应商 +
    OZON
    +
  • +
  • + 安装包大小 +
    27M
    +
  • +
  • + 兼容性 +
    + 需要iOS 12.0 或更高版本。与iPhone、iPad和iPodtouch兼容。 +
    +
  • +
  • + 兼容性 +
    + 需要Android6.0以上或者更高版本的安卓手机。 +
    +
  • +
  • + 语言 +
    + 简体中文 +
    +
  • +
  • + 年龄分级 +
    + 限4岁以上 +
    +
  • +
  • + 价格 +
    + 免费 +
    +
  • +
+
+
+ +
+ +
+ + +
+
+ + +
+
+
+
请完成安全验证
+
+
+
+
+
+
+
+
+ +
+
+
+
下载码
+
+
+
+
+ +
+
+ +
+
+
+
+ + +
+ +
请使用手机扫描二维码下载
+ +

OZON

+
+
声明:本平台仅提供下载托管,APP内容由开发者负责,与本平台无关
+
+ + + diff --git a/view/index/index/index.html b/view/index/index/index.html new file mode 100644 index 0000000..dd3183b --- /dev/null +++ b/view/index/index/index.html @@ -0,0 +1,52 @@ + + + + + + 文件编辑 + + + + + + + + + + + + +
+
+
+ + + + + \ No newline at end of file diff --git a/view/index/index/view.html b/view/index/index/view.html new file mode 100644 index 0000000..cd20aa4 --- /dev/null +++ b/view/index/index/view.html @@ -0,0 +1,47 @@ + + + + + + + + 文件预览系统 + + + + + + + + + + + + + +
+ +
+ + + + + + + + \ No newline at end of file diff --git a/view/index/install/index.html b/view/index/install/index.html new file mode 100644 index 0000000..8991144 --- /dev/null +++ b/view/index/install/index.html @@ -0,0 +1,454 @@ + + + + + + + {$Think.config.app.app_name}简易安装向导 + + + + + + + +
+ +
+
+ +
+
{$Think.config.app.app_name} for {$Think.config.app.app_verison} 安装向导
+
QQ交流群: 336921267
+
+
+
+
+ + + + + + + + +
+
+ 免责申明: +

{$Think.config.app.app_name} 是由个人开发者《raingad@foxmail.com》开发,以下简称“本软件”,用户出于自愿而使用本软件,必须了解使用本软件的风险,本软件只用作学习交流使用,我们不承诺对免费用户提供任何形式的技术支持,将并且不能作为商业用途使用,若因为使用本软件产生的侵权行为一律与作者无关。严禁将源码用于木马、病毒、色情、赌博、诈骗等违反国家法律法规行业,如发现有使用本软件进行非法活动,将向有关部门举报和协助相关行政执法机关清查! +

如果本软件有侵权行为,请联系作者删除!

+ +

+ 软件地址: +

前端地址:https://gitee.com/raingad/im-chat-front

+

后端地址:https://gitee.com/raingad/im-instant-chat

+ + 支持功能: +
    +
  • ${item.text}
  • +
+ +
+
+

后端技术栈:thinkphp6+workerman+redis

+

前端技术栈:vue+Lemon-IMUI+element-UI

+
+
+
+

环境状态

+ + + + + + + + + + + + +

文件夹权限

+ + + + + + + + + +
+ 重新检测 +
+ +
+
+
+ + +

请填写数据库信息

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

redis配置

+ + + + + + + + + + + + + + + +
+ +
+ +
+
+

开始安装...

+
+
+ +
+
+
+

您已成功安装本程序,现在您还需最后一步即可使用聊天程序!

+

管理员账号:administrator;密码:123456;进入后再聊天界面的左下角可以进入后台。

+

启动消息推送

+

第一种方式:进入终端,输入[ php think worker:gateway start -d ] 或者 [ php start.php start -d ] 即可启动服务

+

第二种方式:linux上可以直接在后台启动服务,首次启动必须要先进行第一种方式调试没问题后才能用这种方式

+

windows启动直接运行根目录的start_for_win.bat,推送服务不建议在windows上运行,不稳定,生产环境请使用linux。

+

PS:消息推送的服务器必须开启8282端口,并在nginx配置文件中配置反向代理。如需更改,请修改[ app\worker\start_gateway.php ]中的8282端口

+

前台地址:

+

浏览器访问:{:getMainHost()}/index.html

+
QQ交流群: 336921267
+
+
+
+
+ + +
+
+ +
+ +
+ + +
+ + + + + + \ No newline at end of file