av / bonefish-di2

此包已被弃用且不再维护。作者建议使用av/bonefish-injection包。
此包的最新版本(v2.0)没有提供许可证信息。

此项目维护Bonefish依赖注入容器

v2.0 2014-10-04 18:44 UTC

This package is not auto-updated.

Last update: 2019-02-20 18:11:16 UTC


README

Scrutinizer Code Quality Code Coverage Build Status

Bonefish-DI2是一个简单小巧的依赖注入容器。这与Bonefish-DI基本相同,但使用了Nette\Reflection以支持更简单的注解

特性

  • 使用@inject注解注入服务
  • 默认实现懒加载依赖注入

安装

请使用Composer安装此包。

$ composer require av/bonefish-di2:dev-master

用法

简单创建带有注入,无需将其添加到容器中

// Create an Object and inject all Services
$container = new Bonefish\DependencyInjection\Container();
$foo = $container->create('\Some\Random\Class');
// or with parameters
$bar = $container->create('\Some\Random\Class',array('bar','baz'));

创建一个新的服务并将其保存到容器中

// Create a service, no parameters here
$container = new Bonefish\DependencyInjection\Container();
$service = $container->get('\Some\Random\Service');

您还可以创建对象,稍后将其添加以用作服务

// Create an Object and inject all Services
$container = new Bonefish\DependencyInjection\Container();
$bar = $container->create('\Some\Random\Class',array('bar','baz'));
$container->add('\Some\Random\Class',$bar);

您还可以定义别名

// Create an Object and inject all Services
$container = new Bonefish\DependencyInjection\Container();
$service = $container->get('\Some\Random\Service');
$container->alias('Alias','\Some\Random\Service');
// This will now return \Some\Random\Service
$service2 = $container->get('Alias');

您还可以检查别名是否设置,拆除整个容器并列出容器中的所有服务。