bogosoft / cornpop
一个遵循PSR规范的用于生成HTTP请求响应的微型框架。
Requires
- php: >=7.4
- bogosoft/configuration: ^2
- psr/container: ^1
- psr/http-message: ^1
- psr/http-server-handler: ^1
- psr/http-server-middleware: ^1
- psr/log: ^1
Requires (Dev)
- guzzlehttp/psr7: ^1.6
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-09-13 17:01:19 UTC
README
一个遵循PSR规范的用于生成HTTP请求响应的微型框架。
CornPop提供了一个可扩展的核心,用于设置和执行HTTP响应管道。
核心期望各种基于HTTP的对象的PSR实现,但它本身不提供任何实现,让您可以自由地引入自己的实现(BYOI)。
您需要BYOI的包括
Bogosoft\Configuration\ConfigurationInterface
Psr\Container\ContainerInterface
Psr\Http\Message\ResponseFactoryInterface
Psr\Http\Message\ResponseInterface
Psr\Http\Message\ServerRequestInterface
Psr\Http\Server\MiddlewareInterface
Psr\Http\Server\RequestHandlerInterface
Psr\Log\LoggerInterface
需求
- PHP 7.1+
安装
composer require bogosoft/cornpop
内核
KernelBase
类,您需要扩展,本身实现了 RequestHandlerInterface
接口。基内核上实现的方法只有 RequestHandlerInterface::handler
方法。调用此方法将启动一系列操作,并最终返回HTTP响应。
配置
内核首先处理的是获取应用程序配置。此配置的类型为 Bogosoft\Configuration\ConfigurationInterface
。
虽然CornPop没有提供任何PSR对象的实现,但它附带了一个 ArrayConfiguration
,可以用作应用程序配置。
传递给内核的HTTP请求可以用来配置配置,可以说是。
日志记录
一旦获取了配置,就使用它来获取一个类型为 Psr\Log\LoggerInterface
的记录器。
依赖注入(DI)容器
在获取记录器后,使用记录器和配置来获取一个类型为 Psr\Contaienr\ContainerInterface
的DI容器。
后备处理器
然后使用容器来获取一个后备请求处理器,类型为 Psr\Http\Server\RequestHandlerInterface
,当配置的任何中间件都没有返回HTTP响应时将被调用。
这将在返回404响应等情况下非常有用。
中间件
容器再次用于配置要调用的中间件组件的序列。每个组件都需要是 Psr\Http\Server\MiddlewareInterface
类型,并且将按照排队顺序调用。
执行
一旦中间件组件排队,它们将依次被调用。如果中间件组件返回响应而不是调用传入的请求处理器,它将中断进一步的中间件处理。