quantumca / adapterman
使用 Workerman 与任何框架和应用程序。
Requires
- php: ^8
- workerman/workerman: ^4.1
Suggests
- ext-event: For better performance.
This package is auto-updated.
Last update: 2024-09-18 00:46:06 UTC
README
更快的应用,更可扩展,也可以作为无服务器使用。使用异步事件驱动的 Workerman 运行几乎任何 PHP 应用,无需修改您的框架或应用中的一行代码。
如果您的应用或框架使用前端控制器,99%的情况都能工作。需要最低 PHP 8.0。
实际工作与
- Symfony
- Laravel
- CakePHP
- Yii2
- Slim
- KumbiaPHP
- ThinkPHP
- ... (您的应用?)
仍在测试更多框架和应用程序。无需修改一行代码。
NEW !!! Workerman 无共享模式
我们开始测试它。仍处于实验阶段。
每个请求都是独立的,并加载 .php 文件,就像使用 PHP-FPM 一样。使用相同的 .php 文件。
性能基准 Worker 模式
来自 Techempower 基准测试的结果。无需修改一行代码。
关注 https://twitter.com/adaptermanphp 获取更多更新。
Symfony 6
带有完整 ORM
延迟 
Laravel 8
带有完整 ORM。
延迟 
Slim with Workerman
- 无 ORM
Symfony demo with Workerman
Symfony 初始化 0ms 和每个请求的一半时间。
Grabacion_microsoft-edge-dev_20221023170450.mp4
安装
composer require quantumca/adapterman
自动安装 Workerman。
启动服务器
./vendor/bin/adapterman start laravel
结构
在哪里创建文件(《server.php》和《start.php》)
.
├── app(dir)
├── public(dir)
├── vendor(dir)
├── composer.json
├── server.php
└── start.php
服务器
server.php
<?php require_once __DIR__ . '/vendor/autoload.php'; use Adapterman\Adapterman; use Workerman\Worker; Adapterman::init(); $http_worker = new Worker('http://0.0.0.0:8080'); $http_worker->count = 8; $http_worker->name = 'AdapterMan'; $http_worker->onWorkerStart = static function () { //init(); require __DIR__.'/start.php'; }; $http_worker->onMessage = static function ($connection, $request) { $connection->send(run()); }; Worker::runAll();
前端控制器
对于任何框架和应用都是不同的。
我们正在为流行的应用程序和框架创建食谱。
推荐 start.php
并将 index.php
留在 public 中。
我们可以同时使用 Workerman 和 php-fpm 运行应用程序。
workerman 中的可用命令
运行您的应用程序。
php server.php start
php server.php start -d
php server.php status
php server.php status -d
php server.php connections
php server.php stop
php server.php stop -g
php server.php restart
php server.php reload
php server.php reload -g
Workerman 文档: https://github.com/walkor/workerman-manual
您还可以直接选择不同的 cli php.ini
php -c cli-php.ini server.php start
帮助解决会话问题
我已经在内部使用这个库超过两年,用于使用 Workerman 运行旧应用。
我们是为 API 和微服务制作的。因此,会话没有得到很好的测试。
登录进度
它支持使用 Symfony 和 Laravel。