fuelphp / dependency
该软件包已被废弃,不再维护。未建议替代包。
基于League\Container的Fuel依赖包
dev-master / 2.0.x-dev
2016-05-09 14:44 UTC
Requires
- php: >=5.4
- league/container: ^2.0
Requires (Dev)
- codeception/codeception: ~2.0
- scrutinizer/ocular: ^1.3
This package is auto-updated.
Last update: 2023-01-30 20:25:14 UTC
README
基于League\Container的Fuel依赖包。
使用方法
Dependency包是League\Container的扩展,用于处理FuelPHP框架中的依赖。大部分功能相同,但也增加了一些自定义功能。这意味着我们不鼓励任何人单独使用此包,因为增加的功能主要是FuelPHP特定的。
本文档涵盖了容器的基本使用方法以及增加的功能。要获取完整文档,请查看原始的文档。
容器
容器是依赖包的主要组件,将所有部分连接在一起。你可以将其视为(PHP)对象存储。容器是注册资源、服务提供者和检索依赖的地方。
$container = new Fuel\Dependency\Container;
定义
定义可以是类字符串名称或返回实例或类名的闭包。
字符串定义
// Register $container->add('string', 'stdClass'); // Resolve $instance = $container->get('string');
闭包定义
// Register $container->add('closure.object', function() { return new stdClass; }); // Resolve $instance = $container->get('closure.object');
服务提供者
服务提供者用于将包暴露给容器。服务提供者可以向容器提供资源,也可以在命名空间上操作。命名空间是一个字符串前缀,它将标识符映射到提供者的工厂方法。
use League\Container\ServiceProvider; class MyProvider extends ServiceProvider { protected $provides = ['some.identifier', 'other.resource']; public function register() { $this->container->add('some.identifier', 'stdClass'); $this->container->singleton('other.resource', function() { return new Something($this->container->resolve('database.connection')); )); } }
Fuel扩展
Fuel向容器添加了两个主要功能
- 创建多例实例
- 创建新实例,无论它是单例还是多例
多例
// Register $container->add('closure::object1', function() { return new stdClass; }); $container->add('closure::object2', function() { return new stdClass; }); // Resolve object1 = $container->multiton('closure', 'object1'); objects = $container->multiton('closure');
Forge
// Register $container->singleton('closure.object', function() { return new stdClass; }); // Resolve // Always returns a newly resolved definition $instance = $container->forge('closure.object');
贡献
感谢您考虑为FuelPHP框架做出贡献。请参阅CONTRIBUTING以获取详细信息。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。