O AngularJS é muito poderoso quando se trata de HTML5 interativo e de associação de modelos. Por outro lado, estruturas PHP como o Yii permitem o desenvolvimento rápido, bem estruturado, seguro e poderoso de aplicativos da web. Ambas as tecnologias fornecem meios sofisticados para acesso a dados, iteração e layout de página.
É uma boa ou má prática misturar essas duas abordagens ("configuração da página" do lado do cliente e do servidor) ou isso é contra o significado de aplicativos da Web HTML5 AJAX interativos e integrados?
Não estou falando sobre gerar JS usando PHP ( veja esta pergunta ) - estou falando sobre gerar uma exibição que fará uso do AngularJS.
Eu também sei que uma página AngularJS deve (ou pode) se comunicar com o servidor via serviços REST para obter dados ( consulte esta pergunta ) em vez de recuperá-la diretamente, por exemplo, de variáveis PHP. Mas para mim, parece mais conveniente projetar o "quadro" para todo o aplicativo da Web separadamente em PHP (por exemplo, criar o menu principal ou manipular autorizações / sessões etc.)
Respostas:
Parece que você pode se sentir mais confortável com o desenvolvimento do PHP, mas isso impede que você utilize todo o potencial com aplicativos da Web.
É de fato possível que o PHP processe parciais e exibições inteiras, mas eu não o recomendaria.
Para utilizar plenamente as possibilidades de HTML e javascript para criar um aplicativo da Web, ou seja, uma página da Web que se assemelha mais a um aplicativo e depende muito da renderização do lado do cliente, considere permitir que o cliente mantenha toda a responsabilidade de gerenciar o estado e a apresentação. Isso será mais fácil de manter e mais amigável.
Eu recomendo que você se sinta mais à vontade em uma abordagem mais centrada na API. Em vez de fazer com que o PHP produza uma visualização pré-renderizada e use angular para mera manipulação de DOM, você deve considerar que o back-end do PHP produza os dados que devem ser executados no RESTFully e deve ser apresentado pelo Angular.
Usando o PHP para renderizar a exibição:
/user/account
Como o mesmo problema pode ser resolvido com uma abordagem centrada na API, produzindo JSON assim:
api/auth/
e no Angular você pode obter e gerenciar o lado do cliente de resposta.
Para combinar o lado do cliente e o servidor da maneira que você propôs, pode ser adequado para projetos menores em que a manutenção não é importante e você é o autor único, mas eu me inclino mais para a maneira centrada na API, pois isso será uma separação mais correta das preocupações e seja mais fácil de manter.
fonte
a wall of javascript
? Sou novo no mundo da API Angular / JS depois de anos de renderização em PHP, portanto essa discussão é interessante para mim.