geekish / slimbox
带有 Unbox 容器的 Slim 框架
Requires
- php: ^5.6|^7.0
- mindplay/unbox: ^2.0
- slim/slim: ^3.5
Requires (Dev)
- phpunit/phpunit: ^5.0
- satooshi/php-coveralls: ^1.0
- squizlabs/php_codesniffer: ^2.7
This package is auto-updated.
Last update: 2024-09-11 14:33:11 UTC
README
将 mindplay/unbox 带入 Slim 框架。
安装
通过 Composer
composer require geekish/slimbox
用法
服务提供者
本包中最重要的类是 Geekish\Slimbox\DefaultServicesProvider
。它确保了与 Slim 所需的相同服务通过 Unbox 可用。除了容器更改之外,它还与 Slim\DefaultServicesProvider
不同,首先注册服务下的 FQCN,然后通过接口注册别名,最后注册 slim(例如 "router","foundHandler")使用的简短别名。通过类名注册服务使 Unbox 能够自动将它们作为依赖项注入到其他类中。
服务提供者不会自动为您注册,所以您需要自己完成
use Geekish\Slimbox\DefaultServicesProvider; use mindplay\unbox\ContainerFactory; $factory = new ContainerFactory; $factory->add(new DefaultServicesProvider); $container = $factory->createContainer();
设置
还包括 Geekish\Slimbox\Settings
,它扩展自 Slim\Collection
。此类替换了 Slim 在 "settings" 下注册的简单数组(参见:Slim 默认设置)。
设置可以通过 DefaultServicesProvider
的构造函数提供
$factory->add(new DefaultServicesProvider([ "outputBuffering" => "prepend", ]));
或者通过 ContainerFactory
上的 configure()
方法
$factory->configure( Settings::class, function (Settings $settings) { $settings['displayErrorDetails'] = true; return $settings; } );
容器和容器工厂(可选)
本包包含从 Unbox 的扩展(最终)容器和 ContainerFactory。用法几乎与直接使用 Unbox 完全相同,除了扩展容器部分实现了 ArrayAccess。这允许您将容器用作数组来 访问 服务;然而,由于 Unbox 使用工厂类来创建容器,您不能使用数组表示法在容器上设置/配置服务。
要使用扩展的 ContainerFactory
use Geekish\Slimbox\ContainerFactory; use Geekish\Slimbox\DefaultServicesProvider; use Slim\App; $factory = new ContainerFactory; $factory->add(new DefaultServicesProvider([ "outputBuffering" => "prepend", ])); $container = $factory->createContainer();
包中的 Container
和 ContainerFactory
的使用完全是可选的;它们仅包含以便于使用并与 Slim 包含的 Container
保持一致性。只需将上面的代码段中的 Geekish\Slimbox\ContainerFactory
替换为 mindplay\unbox\ContainerFactory
即可。
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CONDUCT 了解详细信息。
安全
如果您发现任何安全问题,请通过电子邮件 hannahwarmbier@gmail.com 而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。