Skip to content

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

License

Notifications You must be signed in to change notification settings

ezra-obiwale/laraquick

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.