aleris/container

轻量级、简洁直观的依赖注入容器,简单易用且性能优良。

0.1 2021-02-15 21:44 UTC

This package is auto-updated.

Last update: 2024-09-16 05:42:24 UTC


README

一个轻量级、简洁直观的依赖注入容器,简单易用且性能优良。支持配置文件和所有标准注入方法 -- 构造函数、设置器、注解,以及属性。还包括一个Di包装类,允许静态访问容器方法,以实现更高的简洁性和效率。

安装

使用Composer进行安装

composer require aleris/container

基本用法

支持标准容器方法 -- has, get, set, make, call

use Aleris\Container\Container;

$cntr = new Container('/path/to/definitions.php');

// Set and get
$cntr->set('full_name', 'John Doe');
// Get service
$logger = $cntr->get(LoggerInterface::class);
$logger->info("Here I am");

// Make and set
$user = $cntr->makeset(User::class, ['id' => 311]);

// Call via method setter injection
$cntr->call([$user, 'updateStatus'], ['status' => 'inactive']);

构造函数

构造函数接受以下参数,其中没有任何一个是必需的。

方法

以下基本方法被支持,如同所有容器。

Singleton Di 类

本包包含一个Di类,它作为单例存在,允许静态访问容器方法,而不是在类与类、方法与方法之间传递容器对象。这样做是为了提供效率和简洁性,并且假设你只管理一个DI容器。

修改/src/Di.php文件中的属性,因为它们被用作容器的构造函数参数。以下是一个示例用法。

namespace myApp;

use Aleris\Container\Di;
use myApp\Users\User;

// Get logger
$logger = Di::get(LoggerInterface::Class);

// Make user object
Di::make(User::class, ['id' => 52]);

// Set and get variable
Di::set('full_name', 'John Doe');
$name = Di::get('full_name');   // John Doe

关注Aleris

未来将带来许多好的东西,包括新的高质量开源包、更高级的文章/教程,涉及实用的主题等。通过加入我们网站上的邮件列表或关注Twitter上的@mdizak1来保持了解。