rudra/container

v2.0.0 2018-06-05 12:17 UTC

This package is auto-updated.

Last update: 2024-09-26 10:03:06 UTC


README

Build Status Scrutinizer Code Quality Code Climate CodeFactor

Code Intelligence Status Latest Stable Version Total Downloads GitHub

Rudra-Container | API

安装 | 安装

composer require rudra/container

使用 | 使用

use Rudra\Container\Rudra;

Rudra::run();

使用外观 | 使用外观

use Rudra\Container\Facades\Rudra;
设置 | 设置

将接口绑定到实现或预安排的工厂
将接口与实现或预先安排的工厂绑定

Rudra::run()->binding([
    SomeInterface::class => SomeClass::class
    ...
    SomeInterface::class => SomeFactory::class
    ...
    SomeInterface::class => 'service-name'
    ...
    SomeInterface::class => function (){
        return new SomeClass();
    }
    ...
    SomeInterface::class => function (){
        return (new SomeFactory)->create();
    }    
]);

使用外观 | 使用外观

Rudra::binding([
    SomeInterface::class => SomeClass::class
    ...
    SomeInterface::class => SomeFactory::class
    ...
    SomeInterface::class => 'service-name'
        ...
    SomeInterface::class => function (){
        return new SomeClass();
    }
    ...
    SomeInterface::class => function (){
        return (new SomeFactory)->create();
    }
]);

将服务安装到待初始化的容器中,在调用时初始化
将服务安装到待初始化的容器中,在调用时初始化

Rudra::run()->waiting([
    'service-name' => [SomeClass::class, ['param-1', 'param-2']]
    ...
    'service-name' => SomeFactory::class
    ...
    'service-name' => function (){
        return new SomeClass();
    }
    ...
     'service-name' => function (){
        return (new SomeFactory)->create();
    }
}
])

使用外观 | 使用外观

Rudra::waiting([
    'service-name' => [SomeClass::class, ['param-1', 'param-2']]
    ...
    'service-name' => SomeFactory::class
    ...
    'service-name' => function (){
        return new SomeClass();
    }
    ...
     'service-name' => function (){
        return (new SomeFactory)->create();
    }
}
])

添加到之前建立的绑定中
添加到之前建立的绑定中

Rudra::run()->binding()->set([SomeInterface::class => SomeClass::class])

使用外观 | 使用外观

Rudra::binding()->set([SomeClass::class, ['param-1', 'param-2']);

将服务添加到之前安装的服务中
将服务添加到之前安装的服务中

Rudra::run()->waiting()->set([
    'service-name' => [SomeClass::class, ['param-1', 'param-2']]
    ...
    'service-name' => SomeFactory::class
])

使用外观 | 使用外观

Rudra::waiting()->set([
    'service-name' => [SomeClass::class, ['param-1', 'param-2']]
    ...
    'service-name' => SomeFactory::class
])

调用创建的服务
调用创建的服务

Rudra::run()->get('service-name')

使用外观 | 使用外观

Rudra::get('service-name')

如果没有参数或参数已在绑定中,则服务将在调用时自动创建
如果没有参数或参数已在绑定中,则服务将在调用时自动创建

Rudra::run()->get(Service::class)

使用外观 | 使用外观

Rudra::get(Service::class)