weebel/container
最新稳定版本:0.1.2
Composer 安装命令:
composer require weebel/container
包简介
A simple and minimal but yet powerful container
README 文档
README
A simple and minimal but yet powerful container
Installing
Using composer:
composer require weebel/container
Usage
You must make a container instance using the following command:
$container = \Weebel\Container\Container::getInstance();
Suppose that we have a service called App\UserBuilder:
namespace App; class UserBuilder { public function __construct(public UserRepositoryInterface $userRepository, public string $type) { } }
Now setting instances:
$container->set('user_builder', new App\UserBuilder()); $container->set('user_builder', fn()=>new App\UserBuilder());
For getting a service from the container by id:
$container->get('user_builder'); $container->get(App\UserBuilder::class);
Setting aliases:
$container->alias('user_builder', App\UserBuilder::class); $container->alias(App\UserBuilderInterface::class, App\UserBuilder::class);
- Remember when defining an alias, the result of the both of the keys are exactly the same which means
Defining multiple instances or tags for service
$container->set('user_builder', App\UserBuilder::class); $container->set('admin_user_builder', App\UserBuilder::class);
Setting arguments for an instance or tag
$container->addArgument('admin_user_builder', 'type', 'admin'); $container->addArgument(App\UserBuilder::class, 'type', 'normal');
If you want to use a tag as an argument you must use '@' before the name of it. Otherwise, it would be considered as a string
$container->set('admin_repository', AdminRepository::class); $container->addArgument(App\UserBuilder::class, 'userRepository', '@admin_repository'); $container->addArgument(App\UserBuilder::class, 'userRepository', fn(\Psr\Container\ContainerInterface $container)=> $container->get(AdminRepository::class)); $container->addArgument(App\UserBuilder::class, 'userRepository', '@'.AdminRepository::class);
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 3
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2023-01-10