Skip to content

Commit

Permalink
[3.0] 升级框架核心依赖版本 (#591)
Browse files Browse the repository at this point in the history
* 运行环境版本升级,PHP >= 8.1,Swoole >= 5.0

* 升级依赖组件的版本

* 修复

* 修复

* 修复

* 修复

* 增加 Swoole v5.1.0 测试

* 移除组件的 phpunit dev 依赖

* 修复测试

* 修复测试
  • Loading branch information
Yurunsoft committed Oct 18, 2023
1 parent 4fe5f4c commit 8c7ab09
Show file tree
Hide file tree
Showing 92 changed files with 609 additions and 674 deletions.
118 changes: 10 additions & 108 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,14 @@ jobs:
fail-fast: false
matrix:
swoole:
- version: 5.0-php8.2
- version: 5.1-php8.2
postgresql_version: ""
- version: 5.0-php8.1
- version: 5.1-php8.1
postgresql_version: ""
- version: 5.0-php8.0
- version: 5.0-php8.2
postgresql_version: ""
- version: 4.8-php8.1
- version: 5.0-php8.1
postgresql_version: ""
- version: 4.8-php8.0
postgresql_version: "v4.8.0"
- version: 4.8-php7.4
postgresql_version: "v4.8.0"
roadrunner: [2.7.*]
env:
ENV_SERVICE: swoole
Expand Down Expand Up @@ -112,8 +108,8 @@ jobs:
fail-fast: false
matrix:
swoole:
- version: 4.8-php8.0
postgresql_version: f5eda17f89d160d0a89ac7c5db4636bdaefd48e6
- version: 5.1-php8.2
postgresql_version: ""
roadrunner: [2.7.*]
env:
ENV_SERVICE: swoole
Expand Down Expand Up @@ -190,7 +186,7 @@ jobs:
strategy:
fail-fast: false
matrix:
swoole-cli: [v5.0.3, v4.8.11]
swoole-cli: [v5.0.3]
env:
MYSQL_DOCKER_VERSION: "8.0"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -281,14 +277,9 @@ jobs:
strategy:
fail-fast: false
matrix:
php: ["7.4", "8.0", "8.1", "8.2"]
swoole: [v5.0.3, v4.8.13]
php: ["8.1", "8.2"]
swoole: [v5.1.0, v5.0.3]
roadrunner: [2.7.*]
exclude:
- php: 7.4
swoole: v5.0.3
- php: 8.2
swoole: v4.8.13
env:
MYSQL_SERVER_PASSWORD: "root"
PHP_VERSION: ${{ matrix.php }}
Expand Down Expand Up @@ -407,7 +398,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php: ["7.4", "8.0", "8.1"] # 部分扩展还未在 pecl 发布 PHP 8.2 Windows 版扩展,所以无法测试
php: ["8.1"] # 部分扩展还未在 pecl 发布 PHP 8.2 Windows 版扩展,所以无法测试
roadrunner: [2.7.*]
extensions:
[
Expand Down Expand Up @@ -483,92 +474,3 @@ jobs:
- name: Print logs
if: failure()
run: php .github\print-logs.php

# ci-php82:
# name: Linux PHP-${{ matrix.php }} Swoole-${{ matrix.swoole.version }} RoadRunner-${{ matrix.roadrunner }}
# runs-on: ubuntu-20.04
# strategy:
# fail-fast: false
# matrix:
# php: [8.2.0RC3]
# swoole:
# # - version: v5.0.3
# # postgresql_version: ""
# # - version: v4.8.13
# # postgresql_version: ""
# - version: fix-curl-hook-php8.2
# postgresql_version: ""
# roadrunner: [2.7.*]
# env:
# ENV_SERVICE: php
# POSTGRESQL_VERSION: ${{ matrix.swoole.postgresql_version }}
# PHP_VERSION: ${{ matrix.php }}
# SWOOLE_VERSION: ${{ matrix.swoole.version }}
# MYSQL_DOCKER_VERSION: "8.0"
# REDIS_SERVER_HOST: redis
# ROADRUNNER_DOCKER_VERSION: ${{ matrix.roadrunner }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# COMPOSER_ENV: --ignore-platform-reqs
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# - name: Cache dependencies
# uses: actions/cache@v2
# with:
# path: /tmp/composer
# key: ${{ runner.os }}-composer-${{ matrix.swoole.version }}-${{ hashFiles('/composer.json') }}
# - name: Prepare
# uses: ./.github/actions/ci-prepare
# with:
# env: ${{ env.ENV_SERVICE }}
# - name: Test
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test
# - name: Test swoole
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-swoole
# - name: Test workerman
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-workerman
# - name: Test workerman-gateway
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-workerman-gateway
# - name: Test roadrunner
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-roadrunner
# - name: Test fpm
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-fpm
# - name: Test jwt
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-jwt
# - name: Test queue
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-queue
# - name: Test amqp
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-amqp
# - name: Test kafka
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-kafka
# - name: Test grpc
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-grpc
# - name: Test snowflake
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-snowflake
# - name: Test mqtt
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-mqtt
# - name: Test smarty
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-smarty
# - name: Test pgsql
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-pgsql
# - name: Test phar
# if: ${{ env.test_prepared && always() }}
# run: docker exec ${ENV_SERVICE} composer test-phar
# - name: Print logs
# if: failure()
# run: docker exec ${ENV_SERVICE} php .github/print-logs.php
4 changes: 2 additions & 2 deletions .github/workflows/phpcs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ jobs:
tests:
runs-on: ubuntu-20.04
env:
SWOOLE_DOCKER_VERSION: 4.8-php7.4
POSTGRESQL_VERSION: v4.8.0
SWOOLE_DOCKER_VERSION: 5.0-php8.1
POSTGRESQL_VERSION: ""
ENV_SERVICE: swoole-only
steps:
- name: Checkout
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/phpstan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ jobs:
strategy:
fail-fast: false
matrix:
swoole-docker: [4.8-php7.4]
swoole-docker: [5.0-php8.1]
env:
SWOOLE_DOCKER_VERSION: ${{ matrix.swoole-docker }}
POSTGRESQL_VERSION: v4.8.0
POSTGRESQL_VERSION: ""
ENV_SERVICE: swoole-only
steps:
- name: Checkout
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/rector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ jobs:
strategy:
fail-fast: false
matrix:
swoole-docker: [4.8-php7.4]
swoole-docker: [5.0-php8.1]
env:
SWOOLE_DOCKER_VERSION: ${{ matrix.swoole-docker }}
POSTGRESQL_VERSION: v4.8.0
POSTGRESQL_VERSION: ""
ENV_SERVICE: swoole-only
steps:
- name: Checkout
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

[![Latest Version](https://img.shields.io/packagist/v/imiphp/imi.svg)](https://packagist.org/packages/imiphp/imi)
![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/imiphp/imi/ci.yml?branch=3.0)
[![Php Version](https://img.shields.io/badge/php-%3E=7.4-brightgreen.svg)](https://secure.php.net/)
[![Swoole Version](https://img.shields.io/badge/swoole-%3E=4.8.0-brightgreen.svg)](https://github.com/swoole/swoole-src)
[![Php Version](https://img.shields.io/badge/php-%3E=8.1-brightgreen.svg)](https://secure.php.net/)
[![Swoole Version](https://img.shields.io/badge/swoole-%3E=5.0-brightgreen.svg)](https://github.com/swoole/swoole-src)
[![imi Doc](https://img.shields.io/badge/docs-passing-green.svg)](https://doc.imiphp.com/v3.0/)
[![imi License](https://img.shields.io/badge/license-MulanPSL%202.0-brightgreen.svg)](https://github.com/imiphp/imi/blob/master/LICENSE)
[![star](https://gitee.com/yurunsoft/IMI/badge/star.svg?theme=gvp)](https://gitee.com/yurunsoft/IMI/stargazers)
Expand Down Expand Up @@ -92,9 +92,9 @@ imi 框架进阶教程——五子棋游戏开发(免费7集全)<https://space.b
## 运行环境

* Linux 系统 (Swoole 不支持在 Windows 上运行)
* [PHP](https://php.net/) >= 7.4
* [PHP](https://php.net/) >= 8.1
* [Composer](https://getcomposer.org/) >= 2.0
* [Swoole](https://www.swoole.com/) >= 4.8.0
* [Swoole](https://www.swoole.com/) >= 5.0
* Redis、PDO 扩展

## Docker
Expand Down
47 changes: 18 additions & 29 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,35 @@
"license": "MulanPSL-2.0",
"description": "imi 是一款支持长连接微服务分布式的 PHP 开发框架,可在 PHP-FPM、Swoole、Workerman 和 RoadRunner 等多种容器环境下运行。它支持 HttpApi、WebSocket、TCP、UDP、MQTT 服务的开发。",
"require": {
"php": ">=7.4",
"php": ">=8.1",
"ext-json": "*",
"composer-runtime-api": "^2.0",
"monolog/monolog": "^2.2",
"phpdocumentor/reflection-docblock": "^5.2",
"psr/container": "~1.1|~2.0",
"psr/http-message": "~1.0",
"monolog/monolog": "~3.0",
"phpdocumentor/reflection-docblock": "~5.3",
"psr/container": "~2.0",
"psr/http-message": "~1.1|~2.0",
"psr/http-server-middleware": "~1.0",
"psr/log": "~1.0|~2.0|~3.0",
"psr/simple-cache": "~1.0|~2.0",
"psr/log": "~2.0|~3.0",
"psr/simple-cache": "~2.0|~3.0",
"symfony/console": "^5.1|^6.0",
"symfony/event-dispatcher": "^5.1|^6.0",
"symfony/polyfill-php80": "^1.23",
"symfony/polyfill-php81": "^1.23",
"symfony/polyfill-php82": "^1.26",
"symfony/process": "^5.1|^6.0",
"vlucas/phpdotenv": "~5.3",
"vlucas/phpdotenv": "~5.5",
"yurunsoft/doctrine-annotations": "^1.73.0"
},
"require-dev": {
"psr/container": "~1.1.0",
"psr/http-message": "~1.0.0",
"psr/http-server-middleware": "~1.0.0",
"psr/log": "~1.0.0",
"psr/simple-cache": "~1.0.0",
"composer/semver": "^3.3.2",
"php-cs-fixer/shim": "~3.17.0",
"phpstan/phpstan": "~1.8.0",
"phpunit/phpunit": "~9.6",
"rector/rector": "~0.13",
"symfony/polyfill-uuid": "^1.27",
"yurunsoft/ide-helper": "~1.0",
"yurunsoft/yurun-http": "^4.0.0"
},
"replace": {
"symfony/polyfill-php71": "*",
"symfony/polyfill-php72": "*",
"symfony/polyfill-php73": "*",
"symfony/polyfill-php74": "*"
"yurunsoft/yurun-http": "^5.0.0"
},
"replace": {},
"autoload": {
"psr-4": {
"Imi\\": "src/"
Expand Down Expand Up @@ -98,16 +87,16 @@
],
"install-test": "@php --ri swoole && composer install && cd ../ && composer test",
"test-swoole": "@php src/Components/swoole/bin/swoole-phpunit -c src/Components/swoole/tests/phpunit.xml",
"test-workerman": "@php src/Components/workerman/vendor/bin/phpunit -c src/Components/workerman/tests/phpunit.xml",
"test-workerman-gateway-w": "@php src/Components/workerman-gateway/vendor/bin/phpunit -c src/Components/workerman-gateway/tests/phpunit.xml --testsuite workerman",
"test-workerman-gateway-s": "@php src/Components/workerman-gateway/vendor/bin/phpunit -c src/Components/workerman-gateway/tests/phpunit.xml --testsuite swoole",
"test-workerman": "@php vendor/bin/phpunit -c src/Components/workerman/tests/phpunit.xml",
"test-workerman-gateway-w": "@php vendor/bin/phpunit -c src/Components/workerman-gateway/tests/phpunit.xml --testsuite workerman",
"test-workerman-gateway-s": "@php vendor/bin/phpunit -c src/Components/workerman-gateway/tests/phpunit.xml --testsuite swoole",
"test-workerman-gateway": [
"@composer test-workerman-gateway-w",
"@composer test-workerman-gateway-s"
],
"test-roadrunner": "@php src/Components/roadrunner/vendor/bin/phpunit -c src/Components/roadrunner/tests/phpunit.xml",
"test-fpm": "@php src/Components/fpm/vendor/bin/phpunit -c src/Components/fpm/tests/phpunit.xml",
"test-jwt": "@php src/Components/jwt/vendor/bin/phpunit -c src/Components/jwt/tests/phpunit.xml",
"test-roadrunner": "@php vendor/bin/phpunit -c src/Components/roadrunner/tests/phpunit.xml",
"test-fpm": "@php vendor/bin/phpunit -c src/Components/fpm/tests/phpunit.xml",
"test-jwt": "@php vendor/bin/phpunit -c src/Components/jwt/tests/phpunit.xml",
"test-queue": "@php src/Components/swoole/bin/swoole-phpunit -c src/Components/queue/tests/phpunit.xml",
"test-amqp": [
"AMQP_TEST_MODE=swoole php src/Components/swoole/bin/swoole-phpunit -c src/Components/amqp/tests/phpunit.xml",
Expand All @@ -118,9 +107,9 @@
"KAFKA_TEST_MODE=workerman php src/Components/swoole/bin/swoole-phpunit -c src/Components/kafka/tests/phpunit.xml"
],
"test-grpc": "@php src/Components/swoole/bin/swoole-phpunit -c src/Components/grpc/tests/phpunit.xml",
"test-snowflake": "@php src/Components/snowflake/vendor/bin/phpunit -c src/Components/snowflake/tests/phpunit.xml",
"test-snowflake": "@php vendor/bin/phpunit -c src/Components/snowflake/tests/phpunit.xml",
"test-mqtt": "@php src/Components/swoole/bin/swoole-phpunit -c src/Components/mqtt/tests/phpunit.xml",
"test-smarty": "@php src/Components/smarty/vendor/bin/phpunit -c src/Components/smarty/tests/phpunit.xml",
"test-smarty": "@php vendor/bin/phpunit -c src/Components/smarty/tests/phpunit.xml",
"test-pgsql": "@php src/Components/swoole/bin/swoole-phpunit -c src/Components/pgsql/tests/phpunit.xml",
"test-phar": "@php src/Components/phar/tests/run-tests.php",
"test-components": [
Expand Down
6 changes: 3 additions & 3 deletions dev/test-coverage-actions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ elif [[ $testType = "components" ]]; then
"snowflake"
)

test "workerman-gateway-workerman" "php $paramsXdebug -dxdebug.mode=coverage src/Components/workerman-gateway/vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite workerman --coverage-php=./dev/cover/workerman-gateway-coverage.php -v"
test "workerman-gateway-workerman" "php $paramsXdebug -dxdebug.mode=coverage vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite workerman --coverage-php=./dev/cover/workerman-gateway-coverage.php -v"

test "workerman-gateway-swoole" "php $paramsXdebug -dxdebug.mode=coverage src/Components/workerman-gateway/vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite swoole --coverage-php=./dev/cover/workerman-gateway-swoole-coverage.php -v"
test "workerman-gateway-swoole" "php $paramsXdebug -dxdebug.mode=coverage vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite swoole --coverage-php=./dev/cover/workerman-gateway-swoole-coverage.php -v"

export AMQP_TEST_MODE=swoole
test "amqp-swoole" "php $paramsXdebug -dxdebug.mode=coverage src/Components/swoole/bin/swoole-phpunit -c ./src/Components/amqp/tests/phpunit.xml --coverage-php=./dev/cover/amqp-swoole-coverage.php -v"
Expand All @@ -75,7 +75,7 @@ fi

for name in "${phpUnitCommands[@]}"
do
cmd="php $paramsXdebug -dxdebug.mode=coverage src/Components/$name/vendor/bin/phpunit -c ./src/Components/$name/tests/phpunit.xml --coverage-php=./dev/cover/$name-coverage.php -v"
cmd="php $paramsXdebug -dxdebug.mode=coverage vendor/bin/phpunit -c ./src/Components/$name/tests/phpunit.xml --coverage-php=./dev/cover/$name-coverage.php -v"
test "$name" "$cmd"
done

Expand Down
6 changes: 3 additions & 3 deletions dev/test-coverage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ swoolePhpUnitCommands=(

for name in "${phpUnitCommands[@]}"
do
cmd="php $paramsXdebug -dxdebug.mode=coverage src/Components/$name/vendor/bin/phpunit -c ./src/Components/$name/tests/phpunit.xml --coverage-php=./dev/cover/$name-coverage.php -v"
cmd="php $paramsXdebug -dxdebug.mode=coverage vendor/bin/phpunit -c ./src/Components/$name/tests/phpunit.xml --coverage-php=./dev/cover/$name-coverage.php -v"
test "$name" "$cmd"
done

Expand All @@ -69,8 +69,8 @@ test "kafka-swoole" "php $paramsXdebug -dxdebug.mode=coverage src/Components/swo
export KAFKA_TEST_MODE=workerman
test "kafka-workerman" "php $paramsXdebug -dxdebug.mode=coverage src/Components/swoole/bin/swoole-phpunit -c ./src/Components/kafka/tests/phpunit.xml --coverage-php=./dev/cover/kafka-workerman-coverage.php -v"

test "workerman-gateway-workerman" "php $paramsXdebug -dxdebug.mode=coverage src/Components/workerman-gateway/vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite workerman --coverage-php=./dev/cover/workerman-gateway-coverage.php -v"
test "workerman-gateway-workerman" "php $paramsXdebug -dxdebug.mode=coverage vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite workerman --coverage-php=./dev/cover/workerman-gateway-coverage.php -v"

test "workerman-gateway-swoole" "php $paramsXdebug -dxdebug.mode=coverage src/Components/workerman-gateway/vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite swoole --coverage-php=./dev/cover/workerman-gateway-swoole-coverage.php -v"
test "workerman-gateway-swoole" "php $paramsXdebug -dxdebug.mode=coverage vendor/bin/phpunit -c ./src/Components/workerman-gateway/tests/phpunit.xml --testsuite swoole --coverage-php=./dev/cover/workerman-gateway-swoole-coverage.php -v"

php dev/merge-coverage.php $1
6 changes: 3 additions & 3 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![imi logo](https://cdn.jsdelivr.net/gh/imiphp/imi@3.0/res/logo.png)

[![Latest Version](https://img.shields.io/packagist/v/imiphp/imi.svg)](https://packagist.org/packages/imiphp/imi) ![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/imiphp/imi/ci.yml?branch=3.0) [![Php Version](https://img.shields.io/badge/php-%3E=7.4-brightgreen.svg)](https://secure.php.net/) [![Swoole Version](https://img.shields.io/badge/swoole-%3E=4.8.0-brightgreen.svg)](https://github.com/swoole/swoole-src) [![imi Doc](https://img.shields.io/badge/docs-passing-green.svg)](/v3.0/) [![imi License](https://img.shields.io/badge/license-MulanPSL%202.0-brightgreen.svg)](https://github.com/imiphp/imi/blob/master/LICENSE) [![star](https://gitee.com/yurunsoft/IMI/badge/star.svg?theme=gvp)](https://gitee.com/yurunsoft/IMI/stargazers)
[![Latest Version](https://img.shields.io/packagist/v/imiphp/imi.svg)](https://packagist.org/packages/imiphp/imi) ![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/imiphp/imi/ci.yml?branch=3.0) [![Php Version](https://img.shields.io/badge/php-%3E=8.1-brightgreen.svg)](https://secure.php.net/) [![Swoole Version](https://img.shields.io/badge/swoole-%3E=5.0.0-brightgreen.svg)](https://github.com/swoole/swoole-src) [![imi Doc](https://img.shields.io/badge/docs-passing-green.svg)](/v3.0/) [![imi License](https://img.shields.io/badge/license-MulanPSL%202.0-brightgreen.svg)](https://github.com/imiphp/imi/blob/master/LICENSE) [![star](https://gitee.com/yurunsoft/IMI/badge/star.svg?theme=gvp)](https://gitee.com/yurunsoft/IMI/stargazers)

## 介绍

Expand Down Expand Up @@ -81,9 +81,9 @@ imi 框架进阶教程——五子棋游戏开发(免费7集全)<https://space.b
## 运行环境

* Linux 系统 (Swoole 不支持在 Windows 上运行)
* [PHP](https://php.net/) >= 7.4
* [PHP](https://php.net/) >= 8.1
* [Composer](https://getcomposer.org/) >= 2.0
* [Swoole](https://www.swoole.com/) >= 4.8.0
* [Swoole](https://www.swoole.com/) >= 5.0.0
* Redis、PDO 扩展

## Docker
Expand Down
4 changes: 2 additions & 2 deletions doc/base/env.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
## 运行环境

- Linux 系统 (Swoole 不支持在 Windows 上运行)
- [PHP](https://php.net/) >= 7.4
- [PHP](https://php.net/) >= 8.1
- [Composer](https://getcomposer.org/) >= 2.0
- [Swoole](https://www.swoole.com/) >= 4.8.0
- [Swoole](https://www.swoole.com/) >= 5.0.0
- Redis、PDO 扩展

## Windows 开发者
Expand Down
Loading

0 comments on commit 8c7ab09

Please sign in to comment.