efureev/services

There is no license information available for the latest version (dev-master) of this package.
Maintainers

👁 efureev

Package info

github.com/efureev/laravel-services

pkg:composer/efureev/services

Statistics

Installs: 160

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

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

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

Unknown License 0db1556d4d38099858315c26c3809b71bed622e5

  • Eugene Fureev <fureev.woop@gmail.com>

This package is auto-updated.

Last update: 2026-06-29 01:41:26 UTC


README

Services is collection of your inner services.

ONLY PHP 7.1 and upper

Install

composer require efureev/services

Insert in providers sections into config/app.php:

\Fureev\Services\ServiceProvider::class,

Config (config/di.php)

All properties at your Provider class has defined into drivers section for concrete driver.

 <?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' => [
 ],
 ]
 ];

You may redefine ServiceManager and use build-in method:

<?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);
 }
}

and rebind services into DI. Example, in \App\Providers\AppServiceProvider in register method:

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