lumax/dependency-injection-component

1.3.0 2024-05-05 13:13 UTC

This package is auto-updated.

Last update: 2024-09-05 13:49:30 UTC


README

Version 1.3.0 PHP Coverage 96.36% License GPL--3.0--or--later

一个用于管理依赖和依赖注入的PHP包。

安装

您可以通过 Composer 安装此包

composer require lumax/dependency-injection-component

用法

DependencyContainer

DependencyContainer 类提供了一种简单的方法来管理和检索依赖。您可以按照以下方式添加和检索依赖:

use Luma\DependencyInjectionComponent\DependencyContainer;

// Create a container
$container = new DependencyContainer();

// Add a dependency
$container->add(MyDependency::class, new MyDependency());

// Retrieve a dependency
$dependency = $container->get(MyDependency::class);

DependencyManager

DependencyManager 类允许您从YAML配置文件中加载依赖并将它们注册到 DependencyContainer 中。以下是如何使用它的示例:

use Luma\DependencyInjectionComponent\DependencyContainer;
use Luma\DependencyInjectionComponent\DependencyManager;

// Create a container
$container = new DependencyContainer();

// Create a manager and load dependencies from a YAML file
$manager = new DependencyManager($container);
$manager->loadDependenciesFromFile('path/to/dependencies.yaml');

在您的YAML配置文件(dependencies.yaml)中,您可以定义服务和它们的注入参数。

设置您的服务/依赖定义

以下是一个示例 dependencies.yaml 文件,演示了如何定义服务和它们的注入参数:

services:
  myService:
    class: 'Namespace\MyService'
    arguments:
      - 'argument1'
      - 'argument2'
      - '@anotherService'  # Inject another service

以下是 dependencies.yaml 文件中元素的分解:

  • services:本节定义服务和它们的配置。
  • alias:您为服务选择的选择别名 - myService
  • class:服务类的完全限定名称。
  • arguments:构造函数参数数组。使用 "@" 来引用其他服务。

一旦您设置了包含所需服务和配置的 dependencies.yaml 文件,您就可以使用依赖注入包加载和管理这些依赖。

许可

本软件包是开源软件,许可协议为 GNU通用公共许可证,版本3.0(GPL-3.0)