aleris / container
轻量级、简洁直观的依赖注入容器,简单易用且性能优良。
0.1
2021-02-15 21:44 UTC
Requires
- php: >=8.0.0
- psr/container: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.5
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来保持了解。