00f100 / fcphp-provider
此包最新版本(0.3.1)没有可用的许可证信息。
FcPHP 提供者管理器
0.3.1
2018-08-04 19:25 UTC
Requires
- php: >=7.2
- 00f100/fcphp-autoload: 0.*
- 00f100/fcphp-cache: 0.*
- 00f100/fcphp-di: 0.*
Requires (Dev)
- 00f100/phpdbug: *
- phpunit/phpunit: 6.*
README
此包用于管理提供者。本包使用 FcPhp Di 进行依赖注入。
安装方法
Composer
$ composer require 00f100/fcphp-provider
或 composer.json
{ "require": { "00f100/fcphp-provider": "*" } }
使用方法
创建一个扩展 IProviderClient
的类以注入您应用程序的依赖项
<?php namespace Some\Example { use FcPhp\Di\Interfaces\IDi; use FcPhp\Provider\Interfaces\IProviderClient; class ProviderClientExample implements IProviderClient { /** * Method to configure Di in providers * * @param FcPhp\Di\Interfaces\IDi $di Di Instance * @return void */ public function getProviders(IDi $di) :IDi { $di->set('Class', '\Class', [], ['SetConfiguration', => ['item1', 'item2', 'item3']]); $di->set('Class2', '\Class', ['instance' => $this->get('Class')]); return $di; } } }
创建 IProvider 的新实例以处理提供者
<?php use FcPhp\Di\Facades\DiFacade; use FcPhp\Provider\Facades\ProviderFacade; $PathCache = 'tests/var/cache'; $pathToAutoload = 'tests/*/*/config'; $provider = ProviderFacade::getInstance($pathToAutoload, $PathCache); $di = DiFacade::getInstance(); // Add new provider to process $provider->addProviders(['Some\Example\ProviderClientExample']); // Execute ... $provider->make(); // Now instance of di have configuration ... $di->make('Class2'); // Return new \Class(new \Class()) ....