00f100/fcphp-provider

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

FcPHP 提供者管理器

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