???? ???? ?? ?? ? ?? ????? ??????? ?? ??? ??? ???? ???. ?? PHP ?????? ?? ???? ??? ? ?? ?? ??? ???? ??? ??? ??? ????? ?? ?? ??? ???? ???. Swoole? ??? IO, ?? ????, ???, ?? ? ?? ??? ?? ??? ? ?? PHP ??? ??? ???? ?? ?????. ThinkPHP6?? ?? ??? ??? ?? Swoole? ???? ????? ??? ???? ?? ???? ? ????.
1. Swoole ??
Swoole? ???? ?? ?? Swoole ?? ????? ???? ???. Swoole ??? PHP ?? ??? pecl? ?? ????? ?? ??? ????? ??? ? ????. ??? pecl ??? ????.
pecl install swoole
??? ??? ? php.ini? ?? ??? ?????.
extension=swoole
2. Swoole ?? ??
ThinkPHP6??? ??? ?? ??? ?? Swoole ??? ??? ? ????. . app/command ????? Swoole.php?? ??? ??? ?? ???? ?????.
namespace appcommand; use thinkconsoleCommand; use thinkconsoleInput; use thinkconsoleOutput; class Swoole extends Command { protected function configure() { // 配置自定義指令 $this->setName('swoole')->setDescription('Start swoole server'); } protected function execute(Input $input, Output $output) { // 創(chuàng)建Swoole服務(wù)器 $server = new SwooleHttpServer('0.0.0.0', 9501); $server->set([ 'worker_num' => 4, // 啟動(dòng)4個(gè)Worker進(jìn)程 ]); // 監(jiān)聽請求 $server->on('request', function ($request, $response) { // 處理請求 $response->header('Content-Type', 'text/plain'); $response->end('Hello, Swoole!'); }); // 啟動(dòng)服務(wù)器 $server->start(); } }
? ??? ?? ??? ?? Swoole ??? ??? ? ????.
php think swoole
3. HTTP ?? ??
Swoole?? HTTP ?? ?? ?? ?? ???? PHP ??????? HTTP ??? ???? ??? ????. Swoole ????? swoole_http_server ???? on('request', callback) ???? ???? HTTP ?? ???? ???? ?? ???? ??? ???? ???. ThinkPHP6??? ????? ???? HTTP ??? ??? ?? ????.
??? Swoole ???? ThinkPHP6 ????? ???? HTTP ??? ???? ??? ???? ??? ????.
$server->on('request', function ($request, $response) { // 獲取請求信息 $method = $request->server['request_method']; $uri = $request->server['request_uri']; $headers = $request->header; // 處理請求 $result = thinkacadeApp::invokeMethod('appcontrollerIndex@index', [$request, $response]); // 發(fā)送響應(yīng) $response->end($result); });
think acadeApp::invokeMethod() ???? ?? ???? ???? ???? ??? ???? ??? ? ????. ?? ??.
4. WebSocket ?? ??
Swoole?? ?? ????? ???? ???? ? ??? WebSocket ???????. ThinkPHP6??? WebSocket ??? ?? ???? ??? ? ????. ??? Swoole ???? WebSocket ??? ???? ??? ???? ??? ????.
$server->on('open', function (SwooleWebsocketServer $server, SwooleHttpRequest $request) { // 建立連接 }); $server->on('message', function (SwooleWebsocketServer $server, SwooleWebsocketFrame $frame) { // 處理消息 $result = thinkacadeApp::invokeMethod('appcontrollerWebSocket@push', [$server, $frame->data]); // 發(fā)送響應(yīng) $server->push($frame->fd, $result); }); $server->on('close', function (SwooleWebsocketServer $server, $fd) { // 斷開連接 });
on('open', callback) ????? ??? ??? ? ????. on('message', callback) ?????? ???? ???? ??? ?? ? ????. on('close', callback) ?????? ??? ?? ? ????.
5. ??? ??
Swoole? ?? ????? ??? ? ???? ?? ??? ???? ???? ??? ???? ? ?? ???? ?????. ThinkPHP6??? ???? ?? ???? ??? ? ????.
??? Swoole ???? ???? ???? ??? ???? ??? ????.
// 創(chuàng)建Swoole服務(wù)器 $server = new SwooleHttpServer('0.0.0.0', 9501); $server->set([ 'worker_num' => 4, // 啟動(dòng)4個(gè)Worker進(jìn)程 ]); // 監(jiān)聽請求 $server->on('request', function ($request, $response) { // 使用協(xié)程 go(function () use ($response) { $result = thinkacadeApp::invokeMethod('appcontrollerIndex@index'); $response->end($result); }); }); // 啟動(dòng)服務(wù)器 $server->start();
go() ???? ???? Swoole ???? ???? ??? ? ????. ?????? ??? IO ? ?? ??? ???? ???? ??? ??? ? ????.
??
ThinkPHP6?? ?? ??? ??? ?? Swoole? ???? ????? ??? ???? ?? ???? ? ????. Swoole? ???? IO, ?? ????, ???, ?? ? ?? ??? ???? ???? ?? ??? ?? ??? ? ????. Swoole? ??? ? ?? ??, ???, ??? ?? ?? ?? ?? ?? ???? ?? ? ?? ??? ??? ???? ???.
? ??? ThinkPHP6?? ?? ??? ??? ?? Swoole ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

ThinkPHP ????? ????? ??? ?????: Composer? ????, ???? ????? ???? php bin/console? ????, ?? ???? ??? http://localhost:8000? ?????.

ThinkPHP?? ??? PHP ????? ??? ?? ??? ????. ??? ???? 3.2, 5.0, 5.1, 6.0? ????, ??? ??? ??? ???? ??? ??? ???? ? ?????. ?? ?? ??? ThinkPHP 6.0.16???. ??? ??? ? PHP ??, ?? ?? ?? ? ???? ??? ??????. ??? ??? ??? ???? ?? ?? ??? ???? ?? ????.

ThinkPHP Framework? ???? ???? ??: ThinkPHP Framework? ?? ????? ?????? ??? ???. ThinkPHP ?? ????? ???? ?? ???(?? ??)? ????. ?????? ?? ????? ?????. ? ??? ?????. ThinkPHP ??????? ??????. ThinkPHP ?????? URL? ???? ?????.

Laravel?? Swoole ???? ???? ?? ?? ??? ??? ??? ? ????. ??? ??? ????. ?? ??: ?? ??? ??? ??? ? ????. ???: Linux epoll ??? ????? ???? ??? ????? ?????. ?? ??? ??: ? ?? ?? ???? ?????. ??? ??: Laravel ?????? ???? ???? ??? ?????.

Laravel? ThinkPHP ?????? ?? ??: ThinkPHP? ????? ??? ? ??? ??? ?? Laravel?? ??? ????. Laravel? ? ????? ??? ??????? ?? ThinkPHP? ? ??? ? ????.

ThinkPHP ?? ??: PHP, Composer ? MySQL ??? ?????. Composer? ???? ????? ????. ThinkPHP ?????? ???? ?????. ?????? ??? ?????. ?????? ??? ?????. ??????? ???? http://localhost:8000? ?????.

Swoole? Workerman? ?? ??? PHP ?? ????????. ??? ??, ??? ?? ? ????? ? ??? Swoole? ?? ?? ?? ??? ?? ???? ???? ?? ????? ?????. Workerman? ?? ???? ?? ??? ??? ???? ????? ? ??? ???? API? ?? ???? ? ??? ??? ???? ?????.

ThinkPHP? ?? ????, ?? ???, ?? ?? ? ?????? ???? ?? ??? ?? ??? PHP ????????. ?? ?? ???? ??? ?? 10,000? ??? ??? ??? ? ??? JD.com, Ctrip? ?? ??? ? ??? ? ?????? ????? ?? ?? ?????? ?? ?????.
