takeoo / laravel-service-layer
There is no license information available for the latest version (v0.2.2) of this package.
Lightweight service layer for laravel application!
v0.2.2
2017-03-19 21:46 UTC
Requires
- php: >=7.0.0
- laravel/framework: >=5.1
This package is auto-updated.
Last update: 2024-11-29 05:35:28 UTC
README
Extra simple, lightweight service manager module for laravel app
Installation
- Require repository
composer require takeoo/laravel-service-layer
-
Add \Takeoo\Service\TakeooServiceServiceProvider::class to config/app.php "providers" array
-
Run:
php artisan vendor:publish
Usage
- Create new service class (Example.php) anywhere in your project:
//Example.php namespace My\Service\Namespace; use Takeoo\Service; class MyService extends Service { // your code }
or if you do not want to extend Service.php just use Service trait;
//Example.php namespace My\Service\Namespace; use Takeoo\Service\Traits; class MyService { use Service; // your code }
- when you created new service class, you have to register it:
- go to config/service.php
- add your service to "services" array:
'services' => [ 'Example' => \My\Service\Namespace\Example::class, ]
- Add Service trait to your Controller.php class (if you extend it with all your controllers) or to every controller class in which you want to use Service layer
By default all services are created as singletons, if you want to create non singleton class, provided its alias in "service.non-singleton" array
Code
In code you can call your service as:
$service = $this->getService("Example");
if you want to use autocomplete (tested in JetBrains IDE) add PHPDoc above variable
/** * @var \My\Service\Namespace\Example $serivce */ $service = $this->getService("Example");
or you can always create helper functions for your commonly used services e.g:
/** * return \My\Service\Namespace\Example */ public function getExampleService() { return $this->getService("Example"); }