Backend Boilerplates php Advanced

Laravel Repository Pattern

Repository + Interface pattern for Laravel Eloquent decoupling and testability.

php
interface ModuleRepositoryInterface {
    public function paginate(int $perPage): LengthAwarePaginator;
    public function findBySlug(string $slug): ?Module;
}

class EloquentModuleRepository implements ModuleRepositoryInterface {
    public function paginate(int $perPage): LengthAwarePaginator {
        return Module::where('is_published', true)->latest('published_at')->paginate($perPage);
    }
    public function findBySlug(string $slug): ?Module {
        return Module::where('slug', $slug)->firstOrFail();
    }
}

Prerequisites

  • Laravel >= 10

Pro Tips

  • → Bind the interface in AppServiceProvider.

Was this module useful?

Share your experience — it helps the team improve.

Leave Feedback

Commercial Licensing

Acquire a production access token or template license for enterprise deployment.

Module Info

Language
php
Level
Advanced
Read time
5 min
Published
Aug 2024
License
Commercial License

Newsletter

New modules every week, directly to your inbox.