kenphp/container

PSR-11兼容的PHP容器

1.0.1 2019-01-16 23:11 UTC

This package is auto-updated.

Last update: 2024-09-24 05:00:18 UTC


README

这是一个简单的PSR-11兼容的PHP容器。这个库是KenPHP项目的一部分,但也可以独立使用。

要求

  • PHP 7.0或更高版本

安装

使用Composer安装是最简单的方法

$ composer require kenphp/container

方法

可用方法的列表

  • get($id)

    通过标识符查找容器中的条目并返回它。

  • has($id)

    如果容器可以返回给定标识符的条目,则返回true。否则返回false。

  • set($id, $item)

    将项目设置到容器中。项目可以是值或函数。如果函数返回一个对象,它将被视为单例。

  • setFactory($id, callable $factory)

    设置对象工厂。工厂必须是一个返回对象的callable实例,每次使用get方法获取项目时都会调用该工厂。

示例

<?php
use Ken\Container\Container;

$container = new Container();

// Sets item with identifier `Mock1`
$container->set(Mock1::class, function(Container $c) {
    return new Mock1();
});

// Sets item with identifier `Mock2`
$container->set(Mock2::class, function(Container $c) {
    $m1 = $c->get(Mock1::class);
    return new Mock2($m1);
});

// Sets item with identifier `app_name`
$container->set('app_name', 'Application Title');

// Gets item with identifier `Mock1`
$mock1 = $container->get(Mock1::class);

$mock2 = $container->get(Mock2::class);

echo $container->get('app_name'); // prints `Application Title`