kenphp/container
PSR-11兼容的PHP容器
1.0.1
2019-01-16 23:11 UTC
Requires
- php: >=7.0.0
- psr/container: ^1.0
Requires (Dev)
- codeception/codeception: ^2.5
- codeception/specify: ^1.1
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`