osflab/container

OSF 动态对象容器机制

3.0.0 2018-02-26 14:34 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:26:02 UTC


README

OSF 容器管理你的类的实例,以优化性能和可访问性。定义每个类的实例化策略,让 OSF 容器创建和管理你的对象。

特性

  • 延迟类实例化
  • 优化实例化策略管理
  • 依赖管理
  • 模拟对象生成 & 高级模拟策略
  • 对象访问极其简化

安装

至少需要 php 7.1 和 composer

sudo apt install composer

在你的应用程序中通过 composer

这是在非 OSF 项目中使用此功能的推荐方法。

只需在你的 composer.json 文件中添加 osflab/container

从 github

来测试组件或参与其开发。

git clone https://github.com/osflab/container.git
cd container && composer update

单元测试启动

vendor/bin/runtests

用法

例如,要使用 Osf\Cache 组件(在任何地方使用你的代码)

$cache = \Osf\Container\OsfContainer::getCache();

创建你自己的容器

use Osf\Container\AbstractContainer;

class MyContainer extends AbstractContainer
{
    /**
     * Build and get on-demand \My\Class instance(s)
     * @return \My\Class
     */
    public static function getMyClass(): \My\Class
    {
        return self::buildObject('\My\Class');
    }
}

AbstractContainer::buildObject() 方法接受 3 个参数

  • 类名
  • 类构造函数值数组
  • 命名空间字符串

请参阅 OsfContainerZendContainerVendorContainer 获取更多示例。