bnf/service-provider-bridge-bundle

此 Symfony Bundle 允许 Symfony 应用程序使用在 container-interop/service-provider 中定义的服务提供者

安装: 289

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 5

类型:symfony-bundle

3.0.0 2018-09-12 12:44 UTC

This package is auto-updated.

Last update: 2024-09-13 02:21:46 UTC


README

Scrutinizer Code Quality Build Status Coverage Status

container-interop/service-provider 桥接 Bundle

service-provider(如 container-interop 中定义)导入到 Symfony 应用程序中。

这是从 thecodingmachine/service-provider-bridge-bundle 分支而来,以支持 Symfony 4。感谢 David Négrier。

用法

安装

Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle 添加到您的内核中(即 app/AppKernel.php 文件)。

AppKernel.php

    public function registerBundles()
    {
        $bundles = [
            ...
            new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle()
        ];
        ...
    }

用法

您必须在 Bundle 的构造函数中手动声明服务提供者。

AppKernel.php

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            ...
            new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle([
                new MyServiceProvide1(),
                new MyServiceProvide2()
            ])
        ];
        ...
    }
}

或者,您也可以传递服务提供者类的名称。这很有趣,因为服务提供者 Bundle 不会在服务不需要时实例化服务提供者。因此,您可以提高应用程序的性能。

AppKernel.php

    public function registerBundles()
    {
        $bundles = [
            ...
            new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle([
                MyServiceProvide1::class,
                MyServiceProvide2::class
            ])
        ];
        ...
    }

最后,如果您需要向服务提供者的构造函数传递参数,可以通过传递一个数组来完成。

AppKernel.php

    public function registerBundles()
    {
        $bundles = [
            ...
            new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle([
                [ MyServiceProvide1::class, [ "param1", "param2" ] ],
                [ MyServiceProvide2::class, [ 42 ] ],
            ])
        ];
        ...
    }