A simple Laravel 5 and laravel 6 library that allows you to implement Repository Pattern with a single command

A simple Laravel 5 and laravel 6 library that allows you to implement Repository Pattern with a single command

A simple Laravel 5 and laravel 6 library that allows you to implement Repository Pattern with a single command

Originally published at learninglaravel.net

Installation

composer require salmanzafar/laravel-repository-pattern

Features

Will generate all the functionality for Repository pattern implementation

  • ServiceClass
  • Interface
  • ServiceProvider

Enable the package (Optional)

This package implements Laravel auto-discovery feature. After you install it the package provider and facade are added automatically for laravel >= 5.5.

Configuration

Publish the configuration file

This step is required

php artisan vendor:publish --provider="Salman\RepositoryPattern\RepositoryPatterServiceProvider"

Usage

After publishing the configuration file just run the below command

php artisan make:repo ModelName

That's it, Now you've successfully implemented the repository pattern

Example

php artisan make:repo Car

CarRepositoryInterface.php

<?php

namespace App\Repositories;

interface CarRepositoryInterface { /** * Get's a record by it's ID * * @param int */ public function get($id);

/**
 * Get's all records.
 *
 * @return mixed
 */
public function all();

/**
 * Deletes a record.
 *
 * @param int
 */
public function delete($id);

/**
 * Updates a record.
 *
 * @param int
 * @param array
 */
public function update($id, array $data);

}

CarRepository.php

<?php

namespace App\Repositories;

use App\Car;

class CarRepository implements CarRepositoryInterface { /** * Get's a record by it's ID * * @param int * @return collection */ public function get($id) { return Car::find($id); }

/**
 * Get's all records.
 *
 * @return mixed
 */
public function all()
{
    return Car::all();
}

/**
 * Deletes a record.
 *
 * @param int
 */
public function delete($id)
{
    Car::destroy($id);
}

/**
 * Updates a post.
 *
 * @param int
 * @param array
 */
public function update($id, array $data)
{
    Car::find($id)-&gt;update($data);
}

}

Now go to

Repositories/RepositoryBackendServiceProvider.php and register the interface and class you have'just created

<?php

namespace App\Repositories;

use Illuminate\Support\ServiceProvider;

class RepositoryBackendServiceProvider extends ServiceProvider {

public function register()
{
    $this-&gt;app-&gt;bind(
        /*
        * Register your Repository classes and interface here
        **/

        'App\Repositories\CarRepositoryInterface',
        'App\Repositories\CarRepository'
    );
}

}

And now in your app/Http/Controllers/Carcontroller


<?php

namespace App\Http\Controllers;

use App\Car; use App\Repositories\CarRepositoryInterface;

class CarController extends Controller { protected $car;

public function __construct(CarRepositoryInterface $car)
{
    $this-&gt;$car = $car;
}

/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{
    $data = $this-&gt;car-&gt;all();

    return $data;
}

}

That's it you've successfully implemented Repository pattern in your code.

Source Code

https://github.com/salmanzafar949/Laravel-Repository-Pattern

Originally published at learninglaravel.net

=========================

Thanks for reading :heart: If you liked this post, share it with all of your programming buddies! Follow me on Facebook | Twitter

☞ RESTful API with Laravel: Build a real API with Laravel

☞ Master Laravel - A php framework for Beginner to Advanced

☞ PHP with Laravel for beginners - Become a Master in Laravel

☞ Projects in Laravel: Learn Laravel Building 10 Projects

☞ Laravel 2019, the complete guide with real world projects

☞ Laravel for RESTful: Build Your RESTful API with Laravel

☞ Real Time Single Page Forum App with Pusher Laravel & vuejs

☞ Master Laravel PHP in 2019 for Beginners and Intermediate


web-development laravel php

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

PHP Web Application Development Company

As a top **PHP Web Application Development Company in USA**[https://www.dataeximit.com/php-development-services/](https://www.dataeximit.com/php-development-services/ "https://www.dataeximit.com/php-development-services/"), we at Data EximIT have...

PHP Website Development

Skenix Infotech is a leading PHP Web Development Company that helps companies get results with industry best practices. Get affordable PHP Development Services.

Laravel Development Company

Skenix Infotech is a top Laravel Website Development Company with Expert Laravel Developers that provides robust Laravel Development Services at fair costs.

Hire Dedicated PHP Developer

Looking to hire affordable yet experienced PHP developers? **[Hire Dedicated PHP Developer](https://hourlydeveloper.io/hire-dedicated-php-developer/ "Hire Dedicated PHP Developer")**, who can convert your idea to reality, within the stipulated...

Hire PHP Developer

Looking to develop a PHP based website from scratch or revamp your existing website? **[HourlyDeveloper.io](https://hourlydeveloper.io/ "HourlyDeveloper.io")** has always been an industry leader for companies and business owners looking to hire...