开源项目 Equip Framework 使用教程
项目介绍
Equip Framework 是一个基于 PHP 的开源微框架,旨在提供一个轻量级、灵活且易于扩展的开发环境。该框架遵循 PSR-7 和 PSR-15 标准,支持中间件模式,适用于构建 RESTful API 和微服务。
项目快速启动
安装
首先,确保你已经安装了 Composer。然后,通过以下命令安装 Equip Framework:
composer require equip/framework
创建项目结构
创建一个新的项目目录,并在其中初始化 Composer:
mkdir my-equip-project
cd my-equip-project
composer init
配置
在项目根目录下创建一个 public
目录,并在其中创建一个 index.php
文件:
<?php
require __DIR__ . '/../vendor/autoload.php';
use Equip\Application;
use Equip\Handler\ExceptionHandler;
use Equip\Handler\JsonContentHandler;
use Equip\Handler\RoutingHandler;
use Equip\Handler\FormContentHandler;
use Equip\Handler\DispatchHandler;
use Equip\Handler\EmitHandler;
use Equip\Handler\EnvironmentHandler;
use Equip\Handler\MethodHandler;
use Equip\Handler\PayloadHandler;
use Equip\Handler\AcceptHandler;
$app = new Application([
ExceptionHandler::class,
JsonContentHandler::class,
FormContentHandler::class,
RoutingHandler::class => [
'routes' => [
'GET /' => function ($request, $response, $next) {
$response->getBody()->write('Hello, Equip!');
return $response;
},
],
],
DispatchHandler::class,
EmitHandler::class,
EnvironmentHandler::class,
MethodHandler::class,
PayloadHandler::class,
AcceptHandler::class,
]);
$app->run();
运行
使用 PHP 内置服务器运行你的应用:
php -S localhost:8000 -t public
访问 http://localhost:8000
,你应该会看到 "Hello, Equip!" 的消息。
应用案例和最佳实践
构建 RESTful API
Equip Framework 非常适合构建 RESTful API。以下是一个简单的示例,展示如何创建一个处理用户数据的 API:
use Equip\Handler\RoutingHandler;
$app = new Application([
ExceptionHandler::class,
JsonContentHandler::class,
FormContentHandler::class,
RoutingHandler::class => [
'routes' => [
'GET /users' => function ($request, $response, $next) {
$users = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
];
$response->getBody()->write(json_encode($users));
return $response->withHeader('Content-Type', 'application/json');
},
'POST /users' => function ($request, $response, $next) {
$data = $request->getParsedBody();
// 处理用户数据
$response->getBody()->write(json_encode(['status' => 'created']));
return $response->withHeader('Content-Type', 'application/json');
},
],
],
DispatchHandler::class,
EmitHandler::class,
EnvironmentHandler::class,
MethodHandler::class,
PayloadHandler::class,
AcceptHandler::class,
]);
中间件的使用
Equip Framework 支持中间件模式,可以在请求处理链中插入自定义逻辑。例如,创建一个简单的日志中间件:
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
class LoggerMiddleware implements MiddlewareInterface
{
public function process(Request $request, RequestHandler $handler): Response
{
error_log('Request received: ' . $request->getMethod() . ' ' . $request->get