赵7v / illuminate-container-slim-bridge
Illuminate (Laravel) 在 Slim 中的容器集成
1.1.2
2022-01-03 00:05 UTC
Requires
- php: ^7.3 || ~8.0.0 || ~8.1.0
- illuminate/container: ^7.23 || ^8.0
- php-di/invoker: ^2.0
- slim/slim: ^4.2.0
Requires (Dev)
- vimeo/psalm: ^4.6
This package is auto-updated.
Last update: 2024-08-29 21:22:26 UTC
README
此包配置 Slim 以与 Illuminate 容器 一起工作。默认情况下,容器支持自动注入。
安装
composer require p7v/illuminate-container-slim-bridge
最小设置
不使用官方的 Slim\Factory\AppFactory
,使用 Bridge
类创建您的应用程序
<?php require 'vendor/autoload.php'; $app = \P7v\IlluminateContainerSlim\Bridge::create();
使用预配置容器进行设置
如果您需要事先配置容器,请将配置好的容器传递给方法
<?php require 'vendor/autoload.php'; $container = new \Illuminate\Container\Container(); /** Configure your container */ $app = \P7v\IlluminateContainerSlim\Bridge::create($container);
使用服务提供者配置容器
您可以使用服务提供者进行容器配置。您的服务提供者必须扩展 P7v\IlluminateContainerSlim\ServiceProvider
。然后,将服务提供者的名称列表提供给 Bridge 的 usingProviders
方法。
class AppServiceProvider extends \P7v\IlluminateContainerSlim\ServiceProvider { public function register(): void { $this->bind('key', function () { return new stdClass(); }); $this->singleton(RepositoryInterface::class, Repository::class); } }
<?php require 'vendor/autoload.php'; $providers = [ AppServiceProvider::class, ]; $app = \P7v\IlluminateContainerSlim\Bridge::usingProviders($providers);