eden/server

Express风格的服务器

4.0.2 2015-11-13 10:28 UTC

This package is auto-updated.

Last update: 2024-09-13 20:47:24 UTC


README

Build Status

====

安装

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);来访问。如果您的路由使用常见的请求方法,如POSTGETPUTDELETE,则建议使用包装方法。

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做出贡献

Eden的贡献遵循Github工作流程。请在贡献之前阅读。

##使用Eden仓库和您的分支设置您的机器

  1. 分支仓库
  2. 启动本地终端,从您分支的 v4 分支创建一个新分支,分支名称应描述您的更改内容。可能的分支名称类型
    • 修复bug
    • 功能
    • 改进
  3. 进行您的更改。始终确保在所有提交上签出(git commit -s -m "提交信息")

##创建拉取请求

  1. 请确保在创建拉取请求之前运行 phpunit
  2. 将您的代码推送到您的远程分支。
  3. 回到您的GitHub上的分支,提交一个拉取请求。
  4. Eden开发者将审查您的代码,并在它被分类为合适时将其合并。