O uso de um controlador frontal e cabeçalhos é a melhor maneira de imitar uma resposta no PHP?

StackOverflow https://stackoverflow.com/questions/195036

  •  10-07-2019
  •  | 
  •  

Pergunta

Eu tenho pesquisado estruturas PHP ultimamente para alguns projetos pessoais e parece que a maioria deles usa um controlador frontal para imitar uma resposta. O controlador obtém os parâmetros da solicitação e redireciona enviando os cabeçalhos apropriados, dependendo da lógica. Esta é a "resposta". Essa é a melhor maneira de fazer isso no PHP, ou existem outras teorias sobre como lidar com re-escavação e respostas?

Foi útil?

Solução

Um controlador frontal se presta muito bem a um ambiente da Web, permitindo que você canalize todas as solicitações para o seu aplicativo. Como o HTTP é apátrida e um usuário pode, em certo sentido, tropeçar inadvertidamente em partes do seu aplicativo por acidente (ou seja, atingindo URL aleatórias), um controlador frontal permite determinar o ponto de entrada do seu aplicativo e responder adequadamente.

editar: Em resposta aos comentários, acho que a confusão pode ser que Java tenha muito mais estrutura do que PHP, o que pode estar supercomplicando a coisa toda? Em última análise, o PHP pode fornecer a interação muito básica da solicitação à resposta:

switch($_GET['page']) {
  case "one";
      print "page one!";
      break;
  default:
      print "default page";
      break;
}

E a partir daí você pode colocar em todos os tipos de coisas para controladores frontais que passam solicitando objetos para baixo uma corrente de filtro para um controlador de página que redireciona para o modelo apropriado que capta dados através da sua camada de abstração do banco de dados, o filtra, de volta ao controlador e Na visão que constrói a resposta apropriada, o tempo todo disparando ganchos de eventos aleatórios. Por fim, cabe a você (como desenvolvedor) escolher qual nível de complexidade/separação você está procurando. Esta é a beleza e a maldade do PHP :)

Outras dicas

Eu acho que você está confundindo uma resposta HTTP com um objeto de resposta nas estruturas que você olhou. Um controlador frontal é o gateway para o seu aplicativo - todas as solicitações (HTTP) passam por ele e ele rotas para o controlador/ação apropriado. O processamento de uma solicitação não resulta em uma resposta retornada (geralmente as solicitações são destinadas apenas a enviar informações ao servidor), no entanto, todas as solicitações passariam pelo controlador frontal.

Um objeto de solicitação é frequentemente usado para encapsular o ambiente e os parâmetros de solicitação HTTP e fornecer uma API para recuperá -los. Seu complemento, o objeto de resposta, é frequentemente usado para encapsular o processo de geração de uma resposta HTTP, incluindo os cabeçalhos de geração.

Existem outras abordagens para lidar com solicitações e roteamento, que não são exclusivos do PHP (e nem o controlador frontal), como um controlador de página, ou não usando uma estrutura MVC.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top