Laravel 4 - Construtor pai de chamada de construtor filho com injeção de dependência

Estou construindo um CMS usando o Laravel 4 e tenho um controlador de administração base para as páginas de administração que se parece com isso:

class AdminController extends BaseController {

    public function __construct(UserAuthInterface $auth, MessagesInterface $message, ModuleManagerInterface $module)
    {
        $this->auth = $auth;
        $this->user = $this->auth->adminLoggedIn();
        $this->message = $message;
        $this->module = $module;
    }
}

Estou usando o contêiner IOC do Laravel para injetar as dependências de classe no construtor. Eu então tenho várias classes de controlador que controlam os diferentes módulos que compõem o CMS e cada classe estende a classe admin. Por exemplo:

class UsersController extends AdminController {

    public function home()
    {
        if (!$this->user)
        {
            return Redirect::route('admin.login');
        }
        $messages = $this->message->getMessages();
        return View::make('users::home', compact('messages'));
    }
}

Agora isso funciona perfeitamente, no entanto, meu problema, que é um problema menor e mais eficiente, ocorre quando eu adiciono um construtor aoUsersController classe. Por exemplo:

class UsersController extends AdminController {

    public function __construct(UsersManager $user)
    {
        $this->users = $users;
    }

    public function home()
    {
        if (!$this->user)
        {
        return Redirect::route('admin.login');
        }
        $messages = $this->message->getMessages();
        return View::make('users::home', compact('messages'));
    }
}

Como a classe filha agora tem um construtor, isso significa que o construtor do pai não está sendo chamado e, assim, as coisas das quais a classe filha é dependente, comothis->user não são mais válidos, causando erros. Eu posso chamar a função de construção do controlador de administração viaparent::__construct() no entanto, como preciso passar as dependências de classe, preciso configurar essas dependências no construtor filho, resultando em algo parecido com isto:

class UsersController extends AdminController {

    public function __construct(UsersManager $user, UserAuthInterface $auth, MessagesInterface $message, ModuleManagerInterface $module)
    {
        parent::__construct($auth, $messages, $module);
        $this->users = $users;
    }

    // Same as before
}

Agora isso funciona bem em termos de funcionalidade; no entanto, não parece muito eficiente ter que incluir as dependências do pai em cada classe filha que tenha um construtor. Também parece bastante confuso. O Laravel fornece uma maneira de contornar isso, ou o PHP suporta uma maneira de chamar o construtor pai e filho sem precisar chamarparent::__construct() da criança?

Eu sei que esta é uma pergunta longa para o que efetivamente não é um problema, mas mais eu apenas me preocupo com eficiência, mas eu aprecio quaisquer ideias e / ou soluções.

Desde já, obrigado!

questionAnswers(5)

yourAnswerToTheQuestion