# workermanhttpd **Repository Path**: dvaknheo/workermanhttpd ## Basic Information - **Project Name**: workermanhttpd - **Description**: workermanhttpd Workerman 的web服务器 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-28 - **Last Updated**: 2022-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WorkermanHttpd [English](README.md) | [中文](README-zh-CN.md) *** v1.0.2 *** ## WorkerManHttpd 是什么 WorkermanHttpd 致力于 Workerman 代码和 fpm 平台 代码几乎不用修改就可以双平台运行。 是对 Workerman 类的一个包裹。 直接用 echo 输出。直接用超全局变量 $\_GET,$\_POST 等 只有少量系统函数改为 WorkermanHttpd 封装,按字母排序有: - exit - header - setcookie - session_start - session_id - session_destro - session_set_save_handler - set_exception_handler (TODO) - register_shutdown_function (TODO) 比如原先代码里有 `exit()`; 要修改成 `WorkermanHttpd::exit()`; 调用参数都一样 比如原先代码里有 `session_start()`; 要修改成 `WorkermanHttpd::session_start()`; 调用参数都一样 具体可以调用 `WorkermanHttpd::system_wrapper_get_providers()`看有什么 ## 基本应用 ```shell composer require dvaknheo/workermanhttpd ``` ```php hello ,have a good start.
\n";
var_dump($_GET,$_POST,$_SERVER);
echo "";
return true; // 正常true , 404 false;
}
$options=[
'port'=>8080,
'http_handler'=>'hello',
//* 更多的默认选项
/*//
//'host' =>'127.0.0.1', //绑定IP
//'port' =>'8787', //绑定端口
'worker_name' => 'WorkermanHttpd', //标题
'worker_count' => -1, //CPU
'worker_properties' => [], //给 Worker 类传递的属性
'request_class' => '', //默认的请求类,一般不动。
'command' => 'start', //对应命令 , stop 等
'background' => false, //后台模式
'gracefull' => false, //优雅模式
//// 这段是几个服务器通用的
//'http_handler' => null, //执行的 http_handler
'http_handler_basepath' => '', //下版本再说, 资源目录
'http_handler_root' => null, //下版本再说,
'http_handler_file' => null, //下版本再说,
'http_exception_handler' => null, //下版本再说,对应set_exception_handler
'http_404_handler' => null, //下版本再说,404 处理
'with_http_handler_root' => false, //下版本再说,是否主目录 index.php
'with_http_handler_file' => false, //下版本再说,是否开启资源文件读取
//*/
];
\WorkermanHttpd\WorkermanHttpd::RunQuickly($options);
```
浏览器打开 http://127.0.0.1:8080/
这个例子展现了 $_SERVER 里有的东西
## 类解读
除了主类和 SingletonExTrait其他类都是无状态的
### ExitException
中断的异常类。一般不直接用,你需要 `WorkermanHttpd::Exit()`;
### HttpServerForDuckPhp
封装了 `DuckPhp\Http\Server` 的类 用于 DuckPhp 工程
### Request
可变单例请求类, 扩充自 `Workerman\Protocols\Http\Request` 使用 `SingletonExTrait`
可用 Request::G(MyRequest::G()) 替换
### Response
可变单例请求类, 扩充自 `Workerman\Protocols\Http\Response` 使用 `SingletonExTrait`
可用 Request::G(MyRequest::G()) 替换
### SingletonExTrait
可变单例类。 和 DuckPhp 的一样效果
### WorkermanHttpd
主类。主要调用这个。 使用 `SingletonExTrait`
#### 静态方法
RunQuickly($options)
快速运行
WorkermanHttpd::Request()
获得当前 Request 对象。
Response
获得当前 Response 对象。
OnWorkerStart($worker)
事件处理
OnMessage($connection, $request)
消息处理。
G($object = null)
可用 WorkermanHttpd::G(MyWorkermanHttpd::G()) 修改你的实现
## 备忘
php duckphp-project run --http-server=WorkermanHttpd/WorkermanHttpd # --command start