As fachadas de Laravel apresentam uma interface simples para as classes mais úteis da base de código de Laravel. Você pode obter informações sobre a solicitação atual e a entrada do usuário, a sessão, os caches e muito mais.
Mas se você preferir injetar suas dependências, ou se deseja usar um serviço que não tenha uma fachada, precisará encontrar uma maneira de trazer instâncias dessas classes para o seu controlador.
Todos os métodos do controlador (incluindo os construtores) são resolvidos do contêiner de Laravel, o que significa qualquer coisa que você digita que o contêiner sabe como resolver será injetado automaticamente.
Como um bom exemplo, e se você preferir ter uma instância do objeto de solicitação em vez de usar a fachada? Apenas typehint iluminate \ http \ solicitação em seus parâmetros de método:]
Public Function Store (\ iluminado \ http \ request $ request)Então, você definiu um parâmetro que deve ser passado para o método da loja (). E como você digitou, e como o Laravel sabe como resolver esse nome de classe, você terá o objeto de solicitação pronto para você usar em seu método sem trabalho de sua parte. Sem vinculação explícita, não há mais nada - está lá como a variável $ solicitação.
BTW, é assim que eu e muitos outros desenvolvedores de Laravel preferem obter a entrada do usuário: injete uma instância da solicitação e leia a entrada do usuário a partir daí, em vez de confiar na fachada de entrada.