faiverson / gateway-pattern
Abstraction Layer to use repository/gateway pattern in Laravel 5.5 or higher
Requires
- php: >=7.0
- laravel/framework: >=5.5
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ^6.3
This package is not auto-updated.
Last update: 2024-11-05 00:08:08 UTC
README
[![Coverage Status](https://coveralls.io/repos/github/faiverson/gateways/badge.svg?branch=master)](https://coveralls.io/github/faiverson/gateways?branch=master)Gateways Installation
This package is a layer to interact between Controller and Model. If you want to create an abstraction layer to centralize all the queries in one class, instead of being adding models (eloquent queries) in a controller. What about to repeat that code in a command or observer or any other peace of the puzzle. This is where Gateways are handy! You only need to inject the Gateway dependency whereever you want.
- Install the package Gateways using composer:
composer require faiverson/gateway-pattern
- Run the command:
php artisan vendor:publish
Done!
How to Use
-
Go to the console and you can run:
make:gateways:controller Create a new controller class make:gateways:full Create a new Repository class make:gateways:gateway Create a new Gateway class make:gateways:interface Create a new Interface class make:gateways:model Create a new Eloquent model class make:gateways:repository Create a new Repository class
-Copy the line generated in your console into app/Providers/RepositoryServiceProvider.php e.g.$this->app->bind('App\Repositories\Interfaces\FooInterface', 'App\Repositories\FooRepository');
-
create your route
License
This package is open-sourced software licensed under the Apache license.