osflab / container
OSF 动态对象容器机制
3.0.0
2018-02-26 14:34 UTC
Requires
- php: ^7.1.0
- osflab/exception: ~3.0.0
Requires (Dev)
- osflab/test: ~3.0.0
Suggests
- ext-redis: *
- osflab/application: ~3.0.0
- osflab/cache: ~3.0.0
- osflab/controller: ~3.0.0
- osflab/crypt: ~3.0.0
- osflab/device: ~3.0.0
- osflab/doc-maker: ~3.0.0
- osflab/navigation: ~3.0.0
- osflab/session: ~3.0.0
- osflab/stream: ~3.0.0
- osflab/view: ~3.0.0
- twig/twig: 2.4.4
- zendframework/zend-authentication: 2.5.3
- zendframework/zend-db: 2.9.2
- zendframework/zend-i18n: 2.7.4
- zendframework/zend-i18n-resources: 2.5.2
Provides
- osflab/application: 3.0.0
- osflab/controller: 3.0.0
- osflab/db: 3.0.0
- osflab/device: 3.0.0
- osflab/doc-maker: 3.0.0
- osflab/form: 3.0.0
- osflab/image: 3.0.0
- osflab/navigation: 3.0.0
- osflab/office: 3.0.0
- osflab/pdf: 3.0.0
- osflab/safety: 3.0.0
- osflab/stream: 3.0.0
- osflab/view: 3.0.0
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 个参数
- 类名
- 类构造函数值数组
- 命名空间字符串
请参阅 OsfContainer
、ZendContainer
和 VendorContainer
获取更多示例。