efureev / services
此包的最新版本(dev-master)没有可用的许可信息。
dev-master
2018-10-31 19:41 UTC
Requires
- efureev/support: ~1.0
- illuminate/support: ~5.6
Requires (Dev)
- phpstan/phpstan: ^0.10.3
- phpunit/phpunit: ^7.0
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));