Go to file
2024-07-19 12:26:19 +08:00
app 升级wandoubaba/res支持php-di注入自定义错误码,升级illuminate系列库至版本10.x 2024-01-09 11:25:32 +08:00
build build.sh 2023-10-19 15:26:45 +08:00
config 升级workerman到4.1.5,webman升级到1.5.5,webman-framework版本1.5.20,其他依赖包全部升级,php镜像切换为quay.io/wandoubaba517/workerman:8.2.20 2024-07-19 12:26:19 +08:00
jsonrpc 调整jsonrpc/Client中的注释,config/jsonrpc中的配置方式 2024-01-08 15:58:55 +08:00
process init 2023-10-17 11:35:39 +08:00
public init 2023-10-17 11:35:39 +08:00
runtime init 2023-10-17 11:35:39 +08:00
support 升级workerman到4.1.5,webman升级到1.5.5,webman-framework版本1.5.20,其他依赖包全部升级,php镜像切换为quay.io/wandoubaba517/workerman:8.2.20 2024-07-19 12:26:19 +08:00
.env.example 调整jsonrpc/Client中的注释,config/jsonrpc中的配置方式 2024-01-08 15:58:55 +08:00
.gitignore init 2023-10-17 11:35:39 +08:00
composer 升级workerman到4.1.5,webman升级到1.5.5,webman-framework版本1.5.20,其他依赖包全部升级,php镜像切换为quay.io/wandoubaba517/workerman:8.2.20 2024-07-19 12:26:19 +08:00
composer.json update monolog到3.5 2024-03-04 12:00:38 +08:00
composer.lock 升级workerman到4.1.5,webman升级到1.5.5,webman-framework版本1.5.20,其他依赖包全部升级,php镜像切换为quay.io/wandoubaba517/workerman:8.2.20 2024-07-19 12:26:19 +08:00
envexample illuminate各个包版本升级到10.x,删除docker.conf文件,删除console脚 2023-12-23 12:31:40 +08:00
LICENSE init 2023-10-17 11:35:39 +08:00
php 升级workerman到4.1.5,webman升级到1.5.5,webman-framework版本1.5.20,其他依赖包全部升级,php镜像切换为quay.io/wandoubaba517/workerman:8.2.20 2024-07-19 12:26:19 +08:00
php.ini init 2023-10-17 11:35:39 +08:00
README.md 升级workerman到4.1.5,webman升级到1.5.5,webman-framework版本1.5.20,其他依赖包全部升级,php镜像切换为quay.io/wandoubaba517/workerman:8.2.20 2024-07-19 12:26:19 +08:00
start.php init 2023-10-17 11:35:39 +08:00
webman 升级workerman到4.1.5,webman升级到1.5.5,webman-framework版本1.5.20,其他依赖包全部升级,php镜像切换为quay.io/wandoubaba517/workerman:8.2.20 2024-07-19 12:26:19 +08:00
windows.bat init 2023-10-17 11:35:39 +08:00
windows.php 升级wandoubaba/res支持php-di注入自定义错误码,升级illuminate系列库至版本10.x 2024-01-09 11:25:32 +08:00

基于docker的webman-jsonrpc

我们在php:8.2.20-cli基础上安装了运行webman必要的一些扩展和开发中常用的扩展以及composer制作成workerman:8.2.20镜像因此在开发环境中不需要再额外配置php环境直接写业务代码即可。

版本

./php start.php start
Workerman[start.php] start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.1.15          PHP version:8.2.20           Event-Loop:\Workerman\Events\Event
-------------------------------------------- WORKERS ---------------------------------------------
proto   user            worker          listen                   processes    status           
tcp     root            webman          http://0.0.0.0:8787      8             [OK]            
tcp     root            monitor         none                     1             [OK]            
tcp     root            jsonrpc         jsonNL://0.0.0.0:8021    8             [OK]            
--------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.

依赖

只要系统环境中有docker即可生产环境需要docker-compose不需要安装php环境。

使用方法

# composer
./composer require xxxx
# 启动服务
./php start.php start
# 执行其它php命令
./php -m
./php webman build:bin

服务端口

在.env文件中可以定义服务端口默认情况下docker容器是在host网络下启动的当然实际使用中也可以改成端口映射模式。

生产环境使用

创建一个docker-compose.yml文件

services:
  webman:
    image: quay.io/wandoubaba517/workerman:8.1.27
    container_name: webman
    restart: always
    volumes:
      - ./:/app/service
    working_dir: /app/service
    stdin_open: true
    ports:
      - 8787:8787
    # 部署生产时启动这一句
    command: ['php', 'start.php', 'start']
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8787/"]
      interval: 5s
      retries: 3
      start_period: 5s
      timeout: 10s

然后直接执行前提要有docker-compose插件

docker compose up -d

一些有用的文件

文件 作用 用法或说明
composer 调起容器中的composer命令的shell脚本 用法与主机中的compose完全一致./composer $args...
php 调起容器中的php命令的shell脚本 用法与主机中的php一致但注意执行./php start.php start命令时不要加-d参数
php.ini 映射到容器中的php.ini配置文件 容器中已经安装的扩展都有单独的配置文件,这里不会有体现

已安装PHP扩展

php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
event
exif
fileinfo
filter
ftp
gd
gmp
hash
iconv
imagick
json
libxml
mbstring
mongodb
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
readline
redis
Reflection
session
SimpleXML
sockets
sodium
SPL
sqlite3
standard
tokenizer
xlswriter
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
zookeeper

[Zend Modules]
Zend OPcache

开发说明

jsonrpc服务端配置

主要在config/process.php中配置,.env文件可以辅助。

jsonrpc控制器

app/jsonrpc目录中参照示例创建控制器文件和方法即可。

jsonrpc客户端配置

主要在config/jsonrpc.php中配置,.env文件可以辅助。

客户端调用服务端的方法

$res1 = \jsonrpc\Client::service('default', 'Demo')->hello('Json');
$res2 = \jsonrpc\Client::service('user', 'User')->login('admin', '123456');
$res3 = \jsonrpc\Client::service('default', 'Demo')->text();