00f100/fcphp-provider

此包最新版本(0.3.1)没有可用的许可证信息。

FcPHP 提供者管理器

安装: 52

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 1

分支: 1

公开问题: 0

类型:

0.3.1 2018-08-04 19:25 UTC

This package is auto-updated.

Last update: 2024-09-18 05:25:42 UTC


README

此包用于管理提供者。本包使用 FcPhp Di 进行依赖注入。

Build Status codecov Total Downloads

安装方法

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()) ....