PHP code example of alterindonesia / service-pattern
1. Go to this page and download the library: Download alterindonesia/service-pattern library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
alterindonesia / service-pattern example snippets
namespace App\Http\Controllers;
use Alterindonesia\ServicePattern\Controllers\BaseController;
abstract class Controller extends BaseController
{
}
namespace App\Http\Controllers;
use Alterindonesia\ServicePattern\Contracts\IServiceEloquent;
use App\Http\Requests\TestRequest;
use App\Http\Resources\TestResource;
class TestController extends Controller
{
public function __construct(
IServiceEloquent $service,
string $request = TestRequest::class,
string $response = TestResource::class
) {
parent::__construct($service, $request, $response);
}
}
namespace App\Services;
use Alterindonesia\ServicePattern\ServiceEloquents\BaseServiceEloquent;
use App\Models\Test;
class TestServiceEloquent extends BaseServiceEloquent
{
public function __construct(
Test $model
) {
parent::__construct($model);
}
}
use Illuminate\Support\Facades\Route;
Route::get('/test','App\Http\Controllers\TestController@index');
Route::post('/test','App\Http\Controllers\TestController@store');
Route::get('/test/{id}','App\Http\Controllers\TestController@show');
Route::put('/test/{id}','App\Http\Controllers\TestController@update');
Route::delete('/test/{id}','App\Http\Controllers\TestController@destroy');
namespace App\Providers;
use Alterindonesia\ServicePattern\Contracts\IServiceEloquent;
use App\Http\Controllers\TestController;
use App\Services\TestServiceEloquent;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
$this->app->when(TestController::class)
->needs(IServiceEloquent::class)
->give(TestServiceEloquent::class);
}
}