Hi there dev!
In this brief article, I will be sharing a useful resource you could use in your Laravel projects while building your APIs with the repository pattern.
From my perspective, It's a common, a little bit of frustration among laravel developers who use the repository pattern regularly, to have to manually create repository class and interfaces.
Hence, the solution!
I wrote a small package called laravel-api-interface-gen. which gives you ability to use the following artisan commands.
php artisan make:repositoryinterface Book php artisan make:repository Book php artisan make:interface Book
php artisan make:repositoryinterface Book will create a
Repositories folder in your project and within the Repositories folder, It will create the
Interfaces folder. Then, it creates the repository and Interface (in this case) called
BookRepositoryInterface in their respective folders.
Then, it also creates the
RepositoryServiceProvider file in your
Providers folder where you bind the repository to the interface created.
After which you can register the
RepositoryServiceProvider in your app config file.
You also will be able to simply generate a repository (without the interface) using,
php artisan make:repository ModelName
Likewise, generate an interface (without the repository) using,
php artisan make:interface ModelName
To install, from your console, run the command,
composer require idtitanium/laravel-api-interface-gen
Supports Laravel 6 and above.
If you want to know more about about the Repository Pattern in laravel, I have a beginner article HERE.
Happy Coding :)