joanhey / adapterman
使用 Workerman 与任何框架和应用。
Requires
- php: ^8
- workerman/workerman: ^4.1
Suggests
- ext-event: For better performance.
This package is auto-updated.
Last update: 2024-09-03 11:45:04 UTC
README
更快的应用和可扩展性,也可用作无服务器。
使用异步事件驱动的 Workerman 运行几乎任何 PHP 应用,无需修改您的框架或应用中的一行代码。
如果您的应用或框架使用前置控制器,99% 的情况下都能正常工作。需要最小 PHP 8.0。
实际与以下工作
- Symfony
- Laravel
- CakePHP
- Yii2
- Slim
- KumbiaPHP
- ThinkPHP
- Leaf
- ... (您的应用?)
仍在测试更多框架和应用程序。无需修改一行代码。
NEW !!! Workerman 无共享模式
我们开始测试它。仍然处于实验阶段。
每个请求都是独立的,并加载 .php 文件,就像 PHP-FPM 一样。使用相同的 .php 文件。
Worker 模式性能基准
来自 Techempower 基准测试的结果。无需修改一行代码。
关注 https://twitter.com/adaptermanphp 以获取更多更新。
Symfony 6
具有完整的 ORM
Laravel 8
具有完整的 ORM。
与 Workerman 一起使用 Slim
- 无 ORM 和针对 Workerman 优化的数据库类
与 Workerman 一起的 Symfony 示例
Symfony 初始化 0 毫秒,每个请求时间减半。
Grabacion_microsoft-edge-dev_20221023170450.mp4
安装
composer require joanhey/adapterman
自动安装 Workerman。
树状结构
在哪里创建文件(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
并在 public 中保留 index.php
。
我们可以同时使用 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
帮助解决会话问题
我在内部使用了这个库超过 2 年,用于使用 Workerman 运行旧应用程序。
我们为API和微服务创建了它。因此,会话没有经过充分测试。
登录进度
与Symfony和Laravel兼容