의존성 주입과 IoC 컨테이너 주위에서 머리를 감싸려고하고 있는데, 예를 들어 UserController를 사용하고 있습니다. UserController가 생성자에 의존하는 것을 정의한 다음 App :: bind()를 사용하여 해당 객체를 바인딩합니다. 만약 내가 Input :: get() facade/method/thing을 사용한다면 Request 객체를 사용하지 않을 것인가? 요청 객체가 삽입되었거나 동일한 요청 인스턴스로 doesInput :: get()이 해결되었으므로 이제 다음 코드를 사용해야합니까? 나는 정적 인 정면을 사용하고 싶지만 그들이 사출되지 않은 물체를 해결할 수는 없다.laravel - 의존성 주입과 IoC 컨테이너
$this->request->get('email');
의존성 주입
<?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');
}
전역 상태, 결합을위한 정적 호출 (특히 프레임 워크에 대한) 및 종속성 해결을위한 서비스 로케이터로 인해 오브젝트 api의 거짓말 쟁이가되어 다음과 같이 facades를 통해 다음을 옹호합니다. – Jimbo
@Jimbo 나는 당신이 Laravel과의 나의 불안감을 근본이라고 생각합니다. –