Skip to content

Latest commit

 

History

History
executable file
·
87 lines (60 loc) · 1.79 KB

README.md

File metadata and controls

executable file
·
87 lines (60 loc) · 1.79 KB

laraquick

A collection of classes to be extended/used in laravel applications for quick development.

Introduction

The library contains traits with well documented methods that should be used by controllers and models to enhance coding speed.

Installation

composer require d-scribe/laraquick

Dependencies

>= v1.*

  • PHP >= 7.0
  • Laravel - ~5.5
  • Guzzle - ~6.0

v0.*

  • PHP >= 5.6.0
  • Laravel - 5.4.*
  • Laravel Fractal - ^4.0
  • Guzzle - ~6.0

Example

An example controller for a Book model is:

use App\Book;
use Laraquick\Controllers\Traits\Api;

class BookController extends Controller {

    use Api;

    protected function model(): string
    {
        return Book::class;
    }

    // if you have a custom form request class
    protected function validationRequest(): string
    {
        return BookRequest::class;
    }

    // if you don't have a custom form request class
    protected function validationRules(array $data, $id = null): array
    {
        return [
            'title' => 'required|max:200',
            'author' => 'required|max:50',
            'genre' => 'required'
        ];
    }
}

And with just the above, the controller would take care of listing (w/ pagination), and all CRUD operations and give the right JSON responses.

Route::httpResource('books', BookController::class);

What if Web and not API?

Oh, that's covered too with the version 1.5 and above. Just swap out the Api trait for its Web counterpart, and you're good.

Documentation

Get a full walk-through

Contribution

Contributions are absolutely welcome. Create a PR and I'll as swiftly as possible merge it up.