dakujem/slim-factory
一个帮助您启动Slim v4应用的微型工具。
1.0
2020-11-10 10:05 UTC
Requires
- php: ^7.2 || ^8.0
- psr/container: ^1
- slim/slim: ^4
Requires (Dev)
- ext-json: *
- dakujem/sleeve: ^1.0
- nette/tester: ^2.3
- slim/psr7: ^1.2
This package is auto-updated.
Last update: 2024-08-29 10:09:17 UTC
README
💿
composer require dakujem/slim-factory
用法
use Dakujem\Slim\SlimFactory;
构建App实例,可选提供装饰器和/或App实例的容器
$app = SlimFactory::build(); $app = SlimFactory::build($decorators); $app = SlimFactory::build($decorators, $container);
或者,使用容器中的核心服务构建App实例,可选装饰器
$app = SlimFactory::buildFromContainer($container); $app = SlimFactory::buildFromContainer($container, $decorators);
如果您已经有一个Slim App
实例,您可以使用装饰器来装饰它
$app = Slim\Factory\AppFactory::create( ... ); SlimFactory::decorate($app, $decorators);
一个 装饰器可以是
AppDecoratorInterface
实现的实例- 此类名称的字符串
- 提供此类实例的调用提供者 **
- 直接装饰Slim应用实例的调用 **
class MiddlewareDecorator implements AppDecoratorInterface { public function decorate(App $slim): void { $slim->addRoutingMiddleware(); $slim->addBodyParsingMiddleware(); $slim->addErrorMiddleware(); } } // The following 4 decorators are equivalent: $decorators = [ new MiddlewareDecorator(), // a decorator instance MiddlewareDecorator::class, // a class name fn() => new MiddlewareDecorator(), // a decorator provider function(App $slim): void { // a callable decorator $slim->addRoutingMiddleware(); $slim->addBodyParsingMiddleware(); $slim->addErrorMiddleware(); } ];
** 注意
如果使用调用作为装饰器,无论其签名如何,都会始终调用。
如果调用返回装饰器(
AppDecoratorInterface
的实现)的实例,则立即应用返回的装饰器。调用接收被装饰的App的实例作为第一个参数,这与
AppDecoratorInterface::decorate
方法的签名相同。
测试
使用以下命令运行单元测试
$
composer test
贡献
欢迎提出想法、功能请求和其他贡献。请发送PR或创建问题。