Laravel: Необходимо ли контроллерам расширять Illuminate \ Routing \ Controller?и почему? - PullRequest
0 голосов
/ 05 июня 2018
  • Обязательно ли для контроллеров расширение Illuminate\Routing\Controller?
  • Что произойдет, если используется простой класс контроллера, который не расширяется Illuminate\Routing\Controller?
  • Каковы преимуществарасширения Illuminate\Routing\Controller?

Пример:

use Illuminate\Routing\Controller as BaseController;

class Controller extends BaseController
{
}


class UserController extends Controller
{
    public function show($id)
    {
        // ...
    }
}


Route::get('user/{id}', 'UserController@show');

против

class Controller
{
}


class UserController extends Controller
{
    public function show($id)
    {
        // ...
    }
}


Route::get('user/{id}', 'UserController@show');

1 Ответ

0 голосов
/ 05 июня 2018

Проверьте ниже ответы на свои вопросы

  1. Расширение базового контроллера не обязательно.Он будет работать правильно без расширения базового контроллера.

  2. Он будет работать, как обычно, без каких-либо проблем, покажет ожидаемый результат.

  3. Это будет иметь много преимуществ с вашим простым контроллером,Всегда рекомендуется использовать базовый контроллер.Он включает в себя множество вещей, таких как связующее ПО

    public function middleware($middleware, array $options = [])
    {
    foreach ((array) $middleware as $m) {
        $this->middleware[] = [
            'middleware' => $m,
            'options' => &$options,
        ];
    }
    
    return new ControllerMiddlewareOptions($options);
    }
    

Магический метод

public function __call($method, $parameters)
{
    throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].');
}

Просто изучите этот класс, и вы получите полное представление о том, что вы можете сделатьпосле расширения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...