eden / server
Express风格的服务器
Requires
- php: >=5.4.1
- eden/array: 4.*
- eden/core: 4.*
- eden/registry: 4.*
- eden/string: 4.*
This package is auto-updated.
Last update: 2024-09-13 20:47:24 UTC
README
====
安装
composer install eden/server
====
简介
Eden Server是一个Express风格的Web服务。它允许所有类型的Web框架开发,因为它严重依赖于外部中间件。下面是一个快速使用的示例。
eden('server')
->route('*', function($request, $response) {
$response->set('body', 'Hello World!');
})
->render();
它接受并调用三种类型的中间件,在响应过程中的特定时间。
全局中间件
全局中间件在生成任何响应之前被调用。一些全局中间件的例子可以是
- 安全 - 如CSRF检查、验证码、CORS、HTPASSWD等。
- API - 如Facebook登录、Paypal等。
- 实用工具 - 如geoip、本地化、国际化等。
您可以简单地以这种方式添加全局中间件。
eden('server')->add(function($request, $response) {
$response->set('body', 'Hello World!');
});
路由中间件
路由中间件在请求形成后立即调用,在全局中间件之后。为了使路由可用,您需要请求方法、所需的路由路径和回调处理程序。
您可以简单地以这种方式添加路由中间件。
eden('server')->route('POST', '/some/path/*/foo', function($request, $response) {
$response->set('body', 'Hello World!');
});
路由可以接受表示为*
的动态变量,这在示例路由/some/path/*/foo
中有描述。这些变量可以通过在路由处理程序回调中调用$id = $request->get('variables', 0);
来访问。如果您的路由使用常见的请求方法,如POST
、GET
、PUT
、DELETE
,则建议使用包装方法。
eden('server')->post('/some/path/*/foo', function($request, $response) {
$response->set('body', 'Hello World!');
});
eden('server')->get('/some/path/*/foo', function($request, $response) {
$response->set('body', 'Hello World!');
});
eden('server')->put('/some/path/*/foo', function($request, $response) {
$response->set('body', 'Hello World!');
});
eden('server')->delete('/some/path/*/foo', function($request, $response) {
$response->set('body', 'Hello World!');
});
对于上述所有方法,您也可以通过返回以下字符串来设置响应。
eden('server')->get('/some/path/*/foo', function($request, $response) {
return 'Hello World';
});
错误中间件
当全局或路由中间件抛出异常时,会调用错误中间件。您可以简单地以这种方式添加错误中间件。
eden('server')->error(function(
$request,
$response,
$type,
$level,
$class,
$file,
$line,
$message
) {
$response->set('body', 'Hello World!');
});
====
API
====
添加
添加全局中间件
用法
eden('server')->add(function $callback);
参数
function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->add(function($request, $response) {
$response->set('body', 'Hello World!');
});
====
所有
为所有方法添加路由中间件
用法
eden('server')->all(string $path, function $callback);
参数
string $path
- 路由路径function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->all('/some/*/path', function($request, $response) {
$response->set('body', 'Hello World!');
});
====
子项
返回具有相同配置的新实例
用法
eden('server')->child();
参数
返回 Eden\Server\Index
====
删除
为delete方法添加路由中间件
用法
eden('server')->delete(string $path, function $callback);
参数
string $path
- 路由路径function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->delete('/some/*/path', function($request, $response) {
$response->set('body', 'Hello World!');
});
====
错误
添加错误中间件
用法
eden('server')->error(function $callback);
参数
function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->error('/some/*/path', function($request, $response) {
$response->set('body', 'Hello World!');
});
====
获取
为get方法添加路由中间件
用法
eden('server')->get(string $path, function $callback);
参数
string $path
- 路由路径function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->get('/some/*/path', function($request, $response) {
$response->set('body', 'Hello World!');
});
====
get请求
返回请求对象
用法
eden('server')->getRequest();
参数
返回 Eden\Registry\Index
====
get响应
返回响应对象
用法
eden('server')->getResponse();
参数
返回 Eden\Registry\Index
====
获取父级
返回父级服务器
用法
eden('server')->getParent();
参数
返回 Eden\Server\Index
====
输出
评估响应以确定输出。然后当然,输出它
用法
eden('server')->output(Eden\Registry\Index $response);
参数
Eden\Registry\Index $response
- 要评估的响应对象
返回 Eden\Server\Index
示例
eden('server')->output($response);
====
发布
为post方法添加路由中间件
用法
eden('server')->post(string $path, function $callback);
参数
string $path
- 路由路径function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->post('/some/*/path', function($request, $response) {
$response->set('body', 'Hello World!');
});
====
处理
开始处理请求
用法
eden('server')->process();
参数
返回 array
- 包含请求和响应
====
设置
为put方法添加路由中间件
用法
eden('server')->put(string $path, function $callback);
参数
string $path
- 路由路径function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->put('/some/*/path', function($request, $response) {
$response->set('body', 'Hello World!');
});
====
重定向
浏览器重定向
用法
eden('server')->redirect(string $path);
参数
string $path
- 要重定向的位置
返回 mixed
示例
eden('server')->redirect();
====
渲染
处理和输出
用法
eden('server')->render();
参数
返回 Eden\Server\Index
====
路由
添加路由中间件
用法
eden('server')->route(string $method, string $path, function $callback);
参数
string $method
- 请求方法string $path
- 路由路径function $callback
- 中间件处理程序
返回 Eden\Server\Index
示例
eden('server')->route('POST', '/some/*/path', function($request, $response) {
$response->set('body', 'Hello World!');
});
====
设置父级
返回我们是否能够输出某些内容
用法
eden('server')->setParent(Eden\Server\Index $parent);
参数
Eden\Server\Index $parent
- 父级服务器
返回 Eden\Server\Index
示例
eden('server')->setParent($parent);
====
成功
返回我们是否能够输出某些内容
用法
eden('server')->success();
参数
返回 bool
====
对Eden的贡献遵循Github工作流程。请在贡献之前阅读。
##使用Eden仓库和您的分支设置您的机器
- 分支仓库
- 启动本地终端,从您分支的
v4
分支创建一个新分支,分支名称应描述您的更改内容。可能的分支名称类型- 修复bug
- 功能
- 改进
- 进行您的更改。始终确保在所有提交上签出(git commit -s -m "提交信息")
##创建拉取请求
- 请确保在创建拉取请求之前运行
phpunit
。 - 将您的代码推送到您的远程分支。
- 回到您的GitHub上的分支,提交一个拉取请求。
- Eden开发者将审查您的代码,并在它被分类为合适时将其合并。