赵7v/illuminate-container-slim-bridge

Illuminate (Laravel) 在 Slim 中的容器集成

1.1.2 2022-01-03 00:05 UTC

README

Packagist Version

此包配置 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);