lumax / dependency-injection-component
依赖注入包
1.3.0
2024-05-05 13:13 UTC
Requires
- lumax/framework-component: ^1.1
- psr/container: ^2.0
- symfony/yaml: ^6.3
Requires (Dev)
- phpunit/phpunit: ^10.3
README
一个用于管理依赖和依赖注入的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)。