Skip to main content

Laravel Single Action Controller

Single Action Controller — это контроллер в приложении который включает в себя магический метод __invoke который и является обработчиком запроса. 

Пакет написал разработчик Илья Сакович, смысл пакета заключается в том, чтобы не раздувать контроллеры до больших размеров и сделать маршруты более приятными.

Сейчас этот пакет включен в стандарную поставку laravel и его можно использовать сразу же после установки фреймворка.

Для создания контроллера вам нужно создать класс в котором будет реализован метод __invoke или использовать команду — php artisan make:controller ShowProfile --invokable.

Маршрут для такого контроллера прописывается очень просто:

<?php
Route::get('user/{id}', 'ShowProfile');

// Или
Route::get('user/{id}', ShowProfile::class);

Сам контроллер имеет вид:

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class ShowProfile extends Controller
{
    /**
     * Show the profile for the given user.
     *
     * @param  int  $id
     * @return View
     */
    public function __invoke($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

Вот так просто можно создавать компактные и читабельные контроллеры.

Источник — https://laravel.com/docs/5.7/controllers#single-action-controllers

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *