Skip to content

Commit 57807fb

Browse files
author
liutao
committed
feat: upgrade 2.0
1 parent 997d047 commit 57807fb

File tree

4 files changed

+49
-11
lines changed

4 files changed

+49
-11
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
}
1313
],
1414
"require": {
15-
"workerman/workerman": ">=4",
15+
"workerman/workerman": ">=5.1",
1616
"workerman/psr7": "*"
1717
}
1818
}

src/ConfigProvider.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace MicroPHP\Workerman;
5+
6+
use MicroPHP\Framework\Config\ConfigProviderInterface;
7+
8+
class ConfigProvider implements ConfigProviderInterface
9+
{
10+
public function config(): array
11+
{
12+
return [
13+
'publish' => [
14+
'workerman' => [
15+
'from' => __DIR__ . '/config.php',
16+
'to' => base_path('config/workerman.php'),
17+
],
18+
],
19+
];
20+
}
21+
}

src/WorkermanHttpServer.php

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
use MicroPHP\Framework\Http\ServerConfig;
1212
use MicroPHP\Framework\Http\Traits\HttpServerTrait;
1313
use MicroPHP\Framework\Router\Router;
14+
use Symfony\Component\Console\Output\OutputInterface;
1415
use Workerman\Connection\TcpConnection;
16+
use Workerman\Events\Fiber;
1517
use Workerman\Protocols\Http\Request;
1618
use Workerman\Psr7\Response;
1719
use Workerman\Psr7\ServerRequest;
@@ -21,7 +23,7 @@ class WorkermanHttpServer implements HttpServerInterface
2123
{
2224
use HttpServerTrait;
2325

24-
public function run(Router $router): void
26+
public function run(Router $router, OutputInterface $output): void
2527
{
2628
$this->setRuntime();
2729
$strategy = new ApplicationStrategy();
@@ -30,16 +32,9 @@ public function run(Router $router): void
3032
$serverConfig = new ServerConfig();
3133

3234
$httpWorker = new Worker($serverConfig->getUri(true));
33-
35+
$config = Config::get('workerman', []);
3436
$httpWorker->count = $serverConfig->getWorkers();
35-
36-
$httpWorker->onMessage = function (TcpConnection $connection, Request $request) use ($router) {
37-
$psr7Request = new ServerRequest($request->rawBuffer());
38-
39-
$response = $this->routeDispatch($router, \MicroPHP\Framework\Http\ServerRequest::fromPsr7($psr7Request));
40-
$connection->send(new Response($response->getStatusCode(), $response->getHeaders(), $response->getBody(), $response->getProtocolVersion(), $response->getReasonPhrase()));
41-
};
42-
37+
$config['callback']($httpWorker, $router, $output);
4338
Worker::runAll();
4439
}
4540

src/config.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
use MicroPHP\Framework\Router\Router;
5+
use Symfony\Component\Console\Output\OutputInterface;
6+
use Workerman\Connection\TcpConnection;
7+
use Workerman\Protocols\Http\Request;
8+
use Workerman\Psr7\Response;
9+
use Workerman\Psr7\ServerRequest;
10+
use Workerman\Worker;
11+
12+
return [
13+
'callback' => function(Worker $httpWorker, Router $router, OutputInterface $output) {
14+
$httpWorker->eventLoop = \Workerman\Events\Fiber::class;
15+
$httpWorker->onMessage = function (TcpConnection $connection, Request $request) use ($router, $output) {
16+
$psr7Request = new ServerRequest($request->rawBuffer());
17+
18+
$response = $this->routeDispatch($router, \MicroPHP\Framework\Http\ServerRequest::fromPsr7($psr7Request));
19+
$connection->send(new Response($response->getStatusCode(), $response->getHeaders(), $response->getBody(), $response->getProtocolVersion(), $response->getReasonPhrase()));
20+
};
21+
}
22+
];

0 commit comments

Comments
 (0)