2017 © Pedro Peláez
 

library laravel-controllers

Saritasa controllers for typical operations

image

saritasa/laravel-controllers

Saritasa controllers for typical operations

  • Thursday, May 3, 2018
  • by saritasa
  • Repository
  • 4 Watchers
  • 5 Stars
  • 2,286 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 23 Versions
  • 16 % Grown

The README.md

Laravel Controllers

PHP Unit PHP CodeSniffer codecov Release PHPv Downloads, (*1)

Controllers for common UI and endpoints in Laravel,
like API authentication, password change, login page, etc., (*2)

Laravel 9.x/10.x

Install the saritasa/laravel-controllers package:, (*3)

$ composer require saritasa/laravel-controllers  

## Available controllers
There are 2 types of controllers:
* Web - interactive UI for user - traditional Laravel controllers.
Many of them just provide out-of-the-box Laravel functionality,
using built-in traits.
* Api - for programmatic integration with 3d party applications,
like mobile apps (iOS, Android) or single-page HTML applications,
built on modern frontend frameworks - React.JS, AngularJS, VueJs, etc.
API utilizes Dingo/Api library
and custom extensions for it: saritasa/dingo-api-custom, (*4)

Controllers, described below, exist, but you must register routes for them manually, (*5)

Methods

  • function json($data, IDataTransformer $transformer = null): Response

Example:, (*6)

class UserApiController extends BaseApiController
{    
  public function __construct(UserTransformer $userTransformer)
  {      
    parent::__construct($userTransformer);  
  }

  public function editUserProfile(Request $request, User $user): Response  
  {
    $this->validate($request, $user->getRuels());
    $user->fill($request->all());
    $user->save();
    return $this->json($user);
  }
}

### JWTAuthApiController Authenticate API Controller. Uses JWT authentication
Utilizes Dingo\Api JWT Auth
settings and underlying tymon\jwt-auth, (*7)

Example: routes\api.php:, (*8)

app('api.router')->version(config('api.version'), ['namespace' => 'Saritasa\Laravel\Controllers\Api'],    
  function (\Dingo\Api\Routing\Router $api) {  
    // Authentication $api->post('auth', 'AuthController@login');   // Login $api->put('auth', 'AuthController@refreshToken'); // Refresh expired token                
    $api->delete('auth', 'AuthController@logout')->middleware('api.auth'); // Logout  
  });

Customize login request

In some case, we're using email field for login with email or username in application. So, the email field should validation by required and string rule. Or you want to use username instead of email., (*9)

How to bind ILoginRequest with custom request class

<?php

namespace App\Providers;

use App\Http\Requests\Auth\LoginRequest;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\ServiceProvider;
use Saritasa\LaravelControllers\Requests\Concerns\ILoginRequest;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->app->bind(ILoginRequest::class, LoginRequest::class);
    }
}
<?php

namespace App\Http\Requests\Auth;

use Illuminate\Foundation\Http\FormRequest;
use Saritasa\LaravelControllers\Requests\Concerns\ILoginRequest;

class LoginRequest extends FormRequest implements ILoginRequest
{
    /**
     * @inheritDoc
     */
    public function rules(): array
    {
        return [
            'username' => 'required|string',
            'password' => 'required|string',
        ];
    }
}

ForgotPasswordApiController, ResetPasswordApiController These controllers are responsible for handling password reset emails.

Utilize native Laravel password management without UI, in JSON API., (*10)

Example: routes\api.php:, (*11)

app('api.router')->version(config('api.version'), ['namespace' => 'Saritasa\Laravel\Controllers\Api'],
  function (\Dingo\Api\Routing\Router $api) {
    $api->post('auth/password/reset', 'ForgotPasswordApiController@sendResetLinkEmail');
    $api->put('auth/password/reset', 'ResetPasswordApiController@reset');
  });

Contributing

  1. Create fork, checkout it
  2. Develop locally as usual. Code must follow PSR-1, PSR-2 -
    run PHP_CodeSniffer to ensure, that code follows style guides
  3. Cover added functionality with unit tests and run PHPUnit to make sure, that all tests pass
  4. Update README.md to describe new or changed functionality
  5. Add changes description to CHANGES.md file. Use Semantic Versioning convention to determine next version number.
  6. When ready, create pull request

Make shortcuts

If you have GNU Make installed, you can use following shortcuts:, (*12)

  • make cs (instead of php vendor/bin/phpcs) -
    run static code analysis with PHP_CodeSniffer
    to check code style
  • make csfix (instead of php vendor/bin/phpcbf) -
    fix code style violations with PHP_CodeSniffer
    automatically, where possible (ex. PSR-2 code formatting violations)
  • make test (instead of php vendor/bin/phpunit) -
    run tests with PHPUnit
  • make install - instead of composer install * make all or just make without parameters -
    invokes described above install, cs, test tasks sequentially -
    project will be assembled, checked with linter and tested with one single command

Resources

The Versions

03/05 2018

dev-master

9999999-dev

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

19/01 2018

2.0.7

2.0.7.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

17/01 2018

2.0.6

2.0.6.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

17/01 2018

2.0.5

2.0.5.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

06/10 2017

2.0.4

2.0.4.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

06/10 2017

2.0.3

2.0.3.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

26/09 2017

2.0.2

2.0.2.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

12/09 2017

2.0.1

2.0.1.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

04/07 2017

2.0.0

2.0.0.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

04/07 2017

1.0.13

1.0.13.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

29/06 2017

1.0.12

1.0.12.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel api restful

14/06 2017

1.0.11

1.0.11.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

13/06 2017

1.0.10

1.0.10.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

09/06 2017

1.0.9

1.0.9.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

08/06 2017

1.0.8

1.0.8.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

08/06 2017

1.0.7

1.0.7.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

07/06 2017

1.0.6

1.0.6.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

07/06 2017

1.0.5

1.0.5.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

07/06 2017

1.0.4

1.0.4.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

07/06 2017

1.0.3

1.0.3.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

12/05 2017

1.0.2

1.0.2.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

07/04 2017

1.0.1

1.0.1.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel

07/04 2017

1.0.0

1.0.0.0

Saritasa controllers for typical operations

  Sources   Download

MIT

The Requires

 

The Development Requires

by Sergey Populov

laravel