efureev/services

此包的最新版本(dev-master)没有可用的许可信息。

dev-master 2018-10-31 19:41 UTC

This package is auto-updated.

Last update: 2024-08-29 05:06:18 UTC


README

Services 是您内部服务的集合。

仅支持 PHP 7.1 及以上版本

安装

composer require efureev/services

config/app.php 中的 providers 部分插入

\Fureev\Services\ServiceProvider::class,

配置(config/di.php)

您 Provider 类的所有属性都在具体驱动程序的 drivers 部分中定义。

 <?php
 
 return [
     //'name'    => 'testing', // Name component in DI. Default = 'services' 
     'drivers' => [
         'user'  => [
             // Allow load driver into app DI. Expl: app('services.user')
             'defer' => false
         ],
         'test'  => [
             // if it's not defined - use class CustomProvider  
             'provider' => \App\Services\Test\Provider::class,
             'count'    => 1 // local property into class \App\Services\Test\Provider
         ],
         'defer' => [
         ],
     ]
 ];

您可以重新定义 ServiceManager 并使用内置方法

<?php

namespace App\Services;

use App\Services\User\Provider as UserProvider;

class ServiceManager extends \Fureev\Services\ServiceManager
{
    protected function createUserDriver(?array $driverConfig = [])
    {
        return $this->buildProvider(UserProvider::class, $driverConfig);
    }
}

和重新绑定 services 到 DI。例如,在 \App\Providers\AppServiceProvider 中的 register 方法中

$this->app->instance(app('config')->get(ServiceManager::configSection() . '.name'), new ServiceManager($this->app));