workerman / adapterman
使用Workerman使用任何框架和应用程序。
Requires
- php: ^8
- workerman/workerman: ^4.1
Suggests
- ext-event: For better performance.
This package is auto-updated.
Last update: 2024-09-13 17:06:23 UTC
README
更快、更可扩展的应用程序,也可以用作无服务器。使用异步事件驱动的Workerman运行几乎任何PHP应用程序,无需修改fw或应用程序中的一行代码。
如果您的应用程序或fw使用前端控制器,99%都会工作。需要最小PHP 8.0。
实际上正在与以下应用程序和框架一起工作
- Symfony
- Laravel
- CakePHP
- Yii2
- Slim
- KumbiaPHP
- ... (您的应用程序?)
仍在测试更多fw和应用程序。无需修改一行代码。
新功能!!! Workerman无共享模式
我们开始测试它。仍然是实验性的。
每个请求都是独立的,并加载.php文件,就像使用PHP-FPM一样。使用相同的.php文件。
性能基准Worker模式
来自 Techempower基准测试的结果。无需修改一行代码。
关注https://twitter.com/adaptermanphp 获取更多更新。
Symfony 6
Laravel 8
具有完整的ORM。
使用Workerman的Slim
- 无ORM和为Workerman优化过的db类
使用Workerman的Symfony演示
使用Workerman的Symfony初始化0ms和请求时间减半。
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();
前端控制器
对于任何fw和app都不同。
我们正在为流行的应用程序和框架创建配方。
推荐的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运行。