Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou com uma duvida, como faço um arquivo de roteamento em projetos PHP que não utiliza framework?
Um arquivo que toda requisição iria passar por ele, como o bootstrap do Zend.
A resposta mais insossa seria querystrings, onde verifica-se parâmetros GET diversos presentes na URL (se presentes) e vai ordenando os includes.
Não é exatamente um roteamento, mas funcionou bem durantes anos a fio.
Sem querystrings, você cria uma RewriteRule num arquivo .htaccess que direciona toda e qualquer requisição que não precise ser acessada diretamente (imagens, javascripts, css...) para o index.php:
RewriteEngine On
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php [L]
Já no dito arquivo você deve identificar qual foi a requisição feita e qual Controller é responsável por ela.
Como todo bom framework existem diversos pequenos componentes e cada qual faz apenas uma determinada tarefa:
-
FrontController é o primeiro jogador a entrar em cena. Ele quem recebe a requisição feita e delega as tarefas subsequentes.
Se nenhum Controller puder gerenciar a Requisição, ele também é responsável pelo envio do 404.
-
Router, convocado pelo FrontController é ele quem analisa a Requisição recebida e, de acordo com a lógica do seu sistema determina a qual Controller a requisição pertence.
-
Aqui temos um componente opcional. o Application Controller a grosso modo serve para configurar tudo aquilo que a aplicação necessitar desse ponto em diante.
É nele que, por exemplo, cria-se o objeto de conexão que será perpetuado por um Registry
Sua presença é extremamente útil pois permite que cada uma das classes instanciadas depois dele tenham apenas uma única responsabilidade.
Porém ele não é um componente vital para a Aplicação como um todo. Sem ele, caímos na opção "b" e, nesse caso, todo o setup ocorre no Controller.
[*]Instanciado o Controller é o "MVC Básico", que recebe informações da View, faz uma pré-verificação, instancia a Model que consulta a fonte de dados (banco, arquivo de texto, XML, JSON, WebService...), recebe os dados, informa à View e o ciclo se repete.
Essa última etapa se desdobra em diversos outros pequenos pontos que não vêm ao caso do escopo do tópico.
Bons estudos :thumbsup: