Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Organização de arquivos

Olá a todos , tenho uma dúvida que creio que seja simples e queria participar mais do fórum.Então é o seguinte , sobre o modelo MVC , dentro dos diretórios , devo orgaznizar meus arquivos em pastas ?Ex: Dentro da Controller eu crio uma pasta onde fica o arquivo responsável por carregar uma view, ou deixo tudo solto dentro da Controller , misturada com outros arquivos?

1 resposta
solução!

Olá Gilherme, Tudo bem?

Normalmente você vai ter os arquivos separados, eventualmente você deverá ter alguma forma de autoload (https://www.php-fig.org/psr/psr-4/) que deve ajuda-lo a usar os arquivos uns dentro dos outros.

É comum ter em um framework um diretório para as views, um para os models e um para os controllers.

Também é comum em sistemas MVC em php você ter um arquivo que serve como ponto de entrada da aplicação, ex. index.php, app.php, bootstrap.php, controller.php, cujo o objetivo muitas vezes é:

  1. Iniciar o autoload na aplicação.
  2. Iniciar o container/repositório de dependências e carregar as configurações.
  3. Rotear a chamada que foi feita para ele para o controller correto, injetando as dependências necessárias.
  4. Capturar erros para evitar mensagens de debug ou telas em branco aos usuários.

Em alguns casos de alguns frameworks por exemplo o controller pode devolver um objeto para seu invocador, em outros casos já vi implementações em que o controller despacha diretamente a resposta para o cliente.

No caso de devolver ao invocador você pode devolver uma resposta por exemplo, informando a view desejada, o conteúdo, um código HTTP, etc e programar algo para processar esta resposta, desta forma tirando a responsabilidade de montar um header em json por exemplo do controller e passando para a aplicação, deixando o controller responsável apenas pelo processamento.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software