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

    }
}
bash
php artisan make:service TestService --model=Test