eng-assys / laravel-crud-repository-design-pattern by eng_assys

An implementation of Repository Pattern to separate CRUD Business Logic using Laravel/Lumen 6.*
43
2
2
Package Data
Maintainer Username: eng_assys
Maintainer Contact: eng.assys@gmail.com (Lucas Vinicius dos Santos Assis)
Package Create Date: 2019-11-13
Package Last Update: 2020-01-09
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2025-02-06 15:03:59
Package Statistics
Total Downloads: 43
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 2
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

laravel-crud-repository-design-pattern

An implementation of Repository Pattern to separate CRUD Business Logic using Laravel/Lumen 6.*

  • Install in your package the library "spatie/laravel-fractal": "^5.6" to enable Fractal usage

Basic Usage


<?php

namespace App\Repositories;

use LaravelCrudRepository\Repositories\AbstractRepository;

use App\Models\Address;

use App\Transformers\AddressTransformer;

class AddressRepository extends AbstractRepository
{
	public function __construct($uuid = null)
	{
        $this->load($uuid, Address::class, AddressTransformer::class);
    }

    public function create($param)
    {
        AddressRepository::validate($param, [
            'street' => 'required|string|max:255',
            'number' => 'required|string|max:255',
            'district' => 'required|string|max:255',
            'complement' => 'required|string|max:255',
            'zip_code' => 'required|string|max:255',
            'state' => 'required|string|max:255',
            'city' => 'required|string|max:255',
            'country' => 'required|string|max:255'
        ]);

        return parent::create($param);
    }

    public function update($param)
    {
        AddressRepository::validate($param, [
            'street' => 'string|max:255',
            'number' => 'string|max:255',
            'district' => 'string|max:255',
            'complement' => 'string|max:255',
            'zip_code' => 'string|max:255',
            'state' => 'string|max:255',
            'city' => 'string|max:255',
            'country' => 'string|max:255'
        ]);

        return parent::update($param);
    }
}