laravel - zastrzyk zależności i kontener IoC

Próbuję owinąć głowę wokół wtrysku zależności i kontenera IoC i używam mojego UserController jako przykładu. Definiuję to, od czego zależy UserController w jego konstruktorze, a następnie wiążę te obiekty za pomocą App :: bind (). Jeśli korzystam z elewacji / metody / rzeczy Input :: get (), czy nie korzystam z obiektu Request, który właśnie do niego wstawiłem? Czy powinienem używać następującego kodu zamiast tego, teraz, gdy obiekt Request jest wstrzykiwany lub doesInput :: get () rozwiązuje ten sam przypadek żądania? Chciałbym użyć statycznych fasad, ale nie, jeśli rozwiążą one obiekty nie wstrzyknięte.

$this->request->get('email');

Wstrzyknięcie zależności

<?php
App::bind('UserController', function() {
    $controller = new UserController(
        new Response,
        App::make('request'),
        App::make('view'),
        App::make('validator'),
        App::make('hash'),
        new User
    );
    return $controller;
});

UserController

<?php
class UserController extends BaseController {

protected $response;
protected $request;
protected $validator;
protected $hasher;
protected $user;
protected $view;

public function __construct(
    Response $response,
    \Illuminate\Http\Request $request,
    \Illuminate\View\Environment $view,
    \Illuminate\Validation\Factory $validator,
    \Illuminate\Hashing\BcryptHasher $hasher,
    User $user
){
    $this->response = $response;
    $this->request = $request;
    $this->view = $view;
    $this->validator = $validator;
    $this->hasher = $hasher;
    $this->user = $user;
}

public function index()
{
    //should i use this?
    $email = Input::get('email');
    //or this?
    $email = $this->request->get('email');

    //should i use this?
    return $this->view->make('users.login');

    //or this?
    return View::make('users.login');
}

questionAnswers(1)

yourAnswerToTheQuestion