dvaknheo / workermanhttpd
workerman http 服务器和 duckphp 插件
Requires
- php: >=7.2.0
- workerman/workerman: ^4.0.4
Requires (Dev)
- dvaknheo/duckphp: >=1.2.10
- dvaknheo/libcoverage: >=1.0.5
- phpunit/php-code-coverage: 8.0.2
README
*** v1.0.2 ***
什么是 WorkerManHttpd
为 workerman 平台和 fpm 平台封装 Workerman
直接使用 echo 和超级全局 $_GET,$_POST 等
某些系统函数需要封装:
- exit
- header
- setcookie
- session_start
- session_id
- session_destro
- session_set_save_handler
- set_exception_handler (待办)
- register_shutdown_function (待办)
例如 session_start(); => WorkermanHttpd::session_start(); 调用 WorkermanHttpd::system_wrapper_get_providers() 显示
使用方法
composer require dvaknheo/workermanhttpd
<?php require(__DIR__.'/vendor/autoload.php'); function hello() { \WorkermanHttpd\WorkermanHttpd::header('test: '.DATE(DATE_ATOM)); echo "<h1> hello ,have a good start.</h1><pre>\n"; var_dump($_GET,$_POST,$_SERVER); echo "</pre>"; return true; // 正常true , 404 false; } $options=[ 'port'=>8080, 'http_handler'=>'hello', //* more default options /*// //'host' =>'127.0.0.1', // //'port' =>'8787', // 'worker_name' => 'WorkermanHttpd', // 'worker_count' => -1, // 'worker_properties' => [], // 'request_class' => '', // as Request::class 'command' => 'start', // stop , reoad 'background' => false, // -b 'gracefull' => false, // -g //// //'http_handler' => null, //执行的 http_handler 'http_handler_basepath' => '', //for next version 'http_handler_root' => null, //for next version 'http_handler_file' => null, //for next version 'http_exception_handler' => null, //for next version 'http_404_handler' => null, //for next version 'with_http_handler_root' => false, //for next version 'with_http_handler_file' => false, //for next version //*/ ]; \WorkermanHttpd\WorkermanHttpd::RunQuickly($options);
浏览 http://127.0.0.1:8080/ 显示 $_SERVER
类
...
ExitException
不直接使用 WorkermanHttpd::Exit();
HttpServerForDuckPhp
封装 DuckPhp\Http\Server
Request
扩展 Workerman\Protocols\Http\Request 使用 SingletonExTrait
使用 Request::G(MyRequest::G()) 替换
Response
扩展 Workerman\Protocols\Http\Response 使用 SingletonExTrait
使用 Request::G(MyRequest::G()) 替换
SingletonExTrait
可替换的 trait,如 DuckPhp 中
WorkermanHttpd
主类 SingletonExTrait
静态函数
RunQuickly($options)
// 如名称
WorkermanHttpd::Request() 获取 Request 对象 Response 获取 Request 对象 OnWorkerStart($worker) ... OnMessage($connection, $request) ...
G($object = null)
使用 WorkermanHttpd::G(MyWorkermanHttpd::G()) 替换
注意
php duckphp-project run --http-server=WorkermanHttpd/WorkermanHttpd # --command start