dvaknheo/workermanhttpd

workerman http 服务器和 duckphp 插件

v1.0.6 2024-05-20 06:29 UTC

This package is auto-updated.

Last update: 2024-09-20 07:12:16 UTC


README

English | 中文

*** 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