plugin-master / container
PluginMaster DI 容器。
1.0.0
2023-06-19 19:48 UTC
Requires
- php: ^8.0
- psr/container: ^2.0
README
为PHP项目提供简化的依赖注入容器。我们为PluginMaster(WordPress插件开发框架)创建了此包。
依赖注入容器主要用于管理类及其方法所需的依赖项。当我们需要创建类的实例或调用类的方法时,容器帮助我们顺利地处理这些依赖项。
我开发了这个新的PHP容器,目的是简化依赖管理。它提供的功能包括:
-
get: 此函数允许您检索已定义的类的实例或别名。
-
make: 用于创建类的新的实例,使用任何必要的参数,它还将替换使用提供的类名创建的对象。
-
call: 调用类的方法。它可以接受各种格式的可调用参数,例如
a.
[class::class, 'method']
b.[new class(), 'method']
c.'class@method'
d.class::class
(将调用 _invoke 方法). -
set: 将别名分配给类或回调函数。has: 检查容器是否已解析某个类或别名。
简而言之,我开发了这个新的PHP容器来简化依赖管理,使其更加易于使用和直接,尤其是对于不需要更高级功能的项。
安装包
composer require plugin-master/container
示例
$container = new \PluginMaster\Container\Container();
1. 设置别名
$container->set('User', function () {
return new User();
});
2. 获取别名
$user = $container->get('User') ;
3. 调用类或回调函数的方法
$container->call('Project@user', ['name' => 'PHP IS POWER' ]);
$container->call('Project#user', ['name' => 'AL EMRAN' ], ['methodSeparator'=>'#']);
$container->call([Project::class, 'user'], ['name' => 'AL EMRAN' ]);
4. 从类创建对象
$project = $container->make(Project::class, ['name' => 'Make User' ]);
$user = $container->make(User::class);
5. 从提供的类获取对象
$user = $container->get(User::class);
6. 检查解析对象或别名是否存在
$user = $container->has(User::class);
测试
1. 克隆仓库
git clone https://github.com/WP-PluginMaster/container.git
2. 安装依赖
composer install
3. 运行index.php文件
php Index.php