Введите родительский намек::__аргументы construct() в контроллерах

#laravel #laravel-4 #inversion-of-control #ioc-container

#laravel #laravel-4 #инверсия управления #ioc-контейнер

Вопрос:

У меня есть BaseController в приложении на базе Laravel Framework со следующим кодом:

 class BaseController extends Controller {
    public function __construct(Credentials $credentials) {
      $this->credentials = $credentials;
}
  

Затем все мои другие контроллеры расширят BaseController:

 class PostController extends BaseController {
public function __construct(PostRepository $post)
{
    $this->post = $post;
    parent::__construct();
}
  

Однако мне нужно было бы ввести подсказку класса учетных данных в parent::__construct(); всех моих контроллеров. Есть ли какой-либо способ избежать этого?

Заранее спасибо

Ответ №1:

Я могу решить это с помощью следующего кода:

 class BaseController extends Controller {    

public function __construct()
{
    $this->credentials = App::make('Credentials'); // make sure to use the fully qualified namespace of Credentials if need be
}
}