Eu não estou usando php, mas sim NodeJs. No entanto, isso é o que notei ao usar o roteamento com AngularJs e o backend.
A solicitação inicial
Quando um usuário fizer uma solicitação inicial para seu aplicativo. Ele passa pela lógica do php primeiro. (por exemplo,
$app->get('/requests', 'getRequests')
). No meu caso O trabalho do php/back-end aqui são duas coisas:-
Obtenha dados do back-end apenas para fins de SEO (a maioria dos rastreadores não executa client-js, portanto, você precisa inserir esses dados antes de enviar a página ao usuário)
-
Mais importante ainda, forneça o arquivo de índice em seu aplicativo angular junto com todo o JS. Uma vez que o usuário recebe isso, o Angular inicia e você está pronto para ir.
Solicitações subsequentes
Depois que o usuário tiver carregado seu aplicativo Angular. O servidor (php) não sabe nada sobre como o usuário navega em seu aplicativo angular . Lembre-se, angular é do lado do cliente e tenta reduzir o número de solicitações ao servidor. Quando o usuário navegar para "(#)/requests/1234", ele disparará o
.when('/requests/:id'
rota, mas não o $app->get('/requests/:id', 'getRequest');
. Se você deseja acessar um endpoint que obtém dados do seu banco de dados, você precisa usar o $http
service dentro do angular e faça algo assim $http.get('requests/1234')
e obter os dados dessa forma. Deixe-me saber se isso não foi claro, vote / aceite se foi :)