plugin-master/container

PluginMaster DI 容器。

1.0.0 2023-06-19 19:48 UTC

This package is auto-updated.

Last update: 2024-09-21 00:35:47 UTC


README

为PHP项目提供简化的依赖注入容器。我们为PluginMaster(WordPress插件开发框架)创建了此包。

依赖注入容器主要用于管理类及其方法所需的依赖项。当我们需要创建类的实例或调用类的方法时,容器帮助我们顺利地处理这些依赖项。

我开发了这个新的PHP容器,目的是简化依赖管理。它提供的功能包括:

  1. get: 此函数允许您检索已定义的类的实例或别名。

  2. make: 用于创建类的新的实例,使用任何必要的参数,它还将替换使用提供的类名创建的对象。

  3. call: 调用类的方法。它可以接受各种格式的可调用参数,例如

    a. [class::class, 'method']
    b. [new class(), 'method']
    c. 'class@method'
    d. class::class (将调用 _invoke 方法).

  4. 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