Laravel - Dependency Injection und der IoC Container

Ich versuche, meinen Kopf um Abhängigkeitsinjektion und den IoC-Container zu wickeln, und ich verwende meinen UserController als Beispiel. Ich definiere, wovon der UserController in seinem Konstruktor abhängt, und binde dann diese Objekte mit App :: bind () an ihn. Wenn ich die Input :: get () -Fassade / -Methode / -Sache verwende, nutze ich nicht das Request-Objekt, das ich gerade injiziert habe? Sollte ich stattdessen den folgenden Code verwenden, nachdem das Request-Objekt injiziert wurde, oder wird Input :: get () in dieselbe Request-Instanz aufgelöst? Ich möchte die statischen Fassaden verwenden, aber nicht, wenn sie sich in nicht injizierte Objekte auflösen.

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

Abhängigkeitsspritze

<?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');
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage