Boilerplate Laravel dengan penerapan SOLID sederhana menggunakan pola Service + Repository + Interface. Contoh domain yang tersedia adalah User.
- PHP 8.2
- Laravel 12
- Pest
- Service contract: app/Contracts/Interfaces/UserServiceInterface.php
- Repository contract: app/Contracts/Repositories/UserRepositoryInterface.php
- Service: app/Services/UserService.php
- Repository: app/Repositories/EloquentUserRepository.php
- Controller: app/Http/Controllers/UserController.php
- Enum: app/Enums/UserStatus.php
- Helper: app/Helpers/helpers.php
Binding interface ke implementasi ada di app/Providers/AppServiceProvider.php:
- UserRepositoryInterface -> EloquentUserRepository
- UserServiceInterface -> UserService
Helper global dimuat lewat Composer files autoload. Jalankan:
composer dump-autoload
Contoh helper:
user_display_name($user)
Resource users sudah disediakan di routes/web.php dan mengembalikan JSON.
- GET /users
- GET /users/{id}
- POST /users
- PUT /users/{id}
- DELETE /users/{id}
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan serve
- Controller hanya koordinasi request/response
- Service berisi aturan bisnis sederhana
- Repository mengisolasi akses data
- Kontrak menjaga dependensi tetap pada abstraction
MIT