Migrar sistema php para angular2 ou 4
Olá pessoas,
Estou construindo um sistema em angular2 para substituir outro sistema php. Eu queria saber se tem como ir atualizando aos poucos.
Eu queria trocar a parte de cadastro de clientes, depois de compras e assim por diante até trocar completamente o front-end do sistema.
Mas não sei se tem como fazer isso. Alguém tem alguma idéia?
Estou construindo um sistema em angular2 para substituir outro sistema php. Eu queria saber se tem como ir atualizando aos poucos.
Eu queria trocar a parte de cadastro de clientes, depois de compras e assim por diante até trocar completamente o front-end do sistema.
Mas não sei se tem como fazer isso. Alguém tem alguma idéia?
Eduardo Monteiro
Curtidas 0
Melhor post
Joel Rodrigues
12/06/2017
Fala, Eduardo. Beleza?
É importante que fique claro que o Angular atua no front-end, enquanto o PHP se encarrega principalmente do back-end. Logo, para que seu front-end em Angular funcione ele precisará de um back-end servindo dados e funcionalidades para ele. Normalmente isso é feito por meio de uma API REST.
Sendo assim, é possível sim fazer a migração aos poucos, principalmente se estiver usando MVC. Nesse caso você criaria novos métodos no controller para expor e receber dados no formato JSON e os consumiria por meio do Angular.
Abraço.
É importante que fique claro que o Angular atua no front-end, enquanto o PHP se encarrega principalmente do back-end. Logo, para que seu front-end em Angular funcione ele precisará de um back-end servindo dados e funcionalidades para ele. Normalmente isso é feito por meio de uma API REST.
Sendo assim, é possível sim fazer a migração aos poucos, principalmente se estiver usando MVC. Nesse caso você criaria novos métodos no controller para expor e receber dados no formato JSON e os consumiria por meio do Angular.
Abraço.
GOSTEI 2
Mais Respostas
Eduardo Monteiro
09/06/2017
Joel Rodrigues,
Obrigado pela resposta. Estou usando MVC com CakePHP e já exponho dados através de REST para views em PHP + JQuery. Só que o JavaScript possui muitas linhas de código para interação com o usuário. Daí a necessidade de trocar do CakePHP para o Angular. Já estudei bastante e criei alguns projetos, mas não encontrei nunhum lugar que mostrasse um exemplo de como migrar um sistema legado para Angular 4. Uma vez que ele cria aplicações singlepages eu não conseguia entender como migrar aos poucos um sistema multipage para ele.
Depois de muita pesquisa encontrei algumas soluções que podem ajudar quem estiver passando pelo mesmo problema.
1. Se quiser apenas melhorar a interação com o usuário nas views, sem sair do padrão multipage e do back-end em PHP. Uma boa solução é usar ReactJs ou Vue. Vue é uma tecnologia nova, mas aparentemente pode ter um futuro brilhante. Gostei muito do Vue e se fosse uma tecnologia mais madura, estaria usando agora.
2. Se for mudar de estrutura, como é o meu caso, Angular pode ser interessante. A proposta do angular 4 é ser uma plataforma de desenvolvimento, um framework bem completo. No back-end, o NodeJs permite usar processamento assíncrono, dando respostas mais rápidas para o front-end. Essa foi a minha escolha.
Para fazer a migração, não sei se é a melhor forma, mas estou criando um token de acesso no CakePHP. A autenticação com o usuário será a última coisa a ser removida. Quando o usuário entra no sistema, crio um token no CakePHP e armazeno no banco de dados (isso futuramente vai ser migrado para o Redis ou Memcache). Quando o usuário precisa entrar num módulo que está escrito em Angular 4, o controller do CakePHP é usado para redirecionar o usuário para fora do sistema, enviando o token de acesso no cabeçalho da requisição.
Então, no angular 4, basta pegar o token de acesso, solicitar as informações do usuário ao NodeJS ( que está acessando o mesmo banco de dados) usando o token enviado pelo PHP. Daí as duas aplicações conseguem trabalhar juntas e isoladas uma da outra. Note que nessa forma de trablho, os módulos Angular 4 não possuem uma autenticação. Ela é realizada apenas com o token enviado pelo CakePHP.
Nos meus testes aqui, tudo funcionou bem, e como a sessão do usuário é controlada pelo banco de dados, elimino a possibilidade da sessão expirar caso o usuário fique muito tempo nos módulos em angular 4 e não entre nos módulos em PHP.
Se alguém tiver alguma dica de como melhorar isso, sou todo ouvidos. Essa foi a melhor solução que encontrei.
Obrigado pela resposta. Estou usando MVC com CakePHP e já exponho dados através de REST para views em PHP + JQuery. Só que o JavaScript possui muitas linhas de código para interação com o usuário. Daí a necessidade de trocar do CakePHP para o Angular. Já estudei bastante e criei alguns projetos, mas não encontrei nunhum lugar que mostrasse um exemplo de como migrar um sistema legado para Angular 4. Uma vez que ele cria aplicações singlepages eu não conseguia entender como migrar aos poucos um sistema multipage para ele.
Depois de muita pesquisa encontrei algumas soluções que podem ajudar quem estiver passando pelo mesmo problema.
1. Se quiser apenas melhorar a interação com o usuário nas views, sem sair do padrão multipage e do back-end em PHP. Uma boa solução é usar ReactJs ou Vue. Vue é uma tecnologia nova, mas aparentemente pode ter um futuro brilhante. Gostei muito do Vue e se fosse uma tecnologia mais madura, estaria usando agora.
2. Se for mudar de estrutura, como é o meu caso, Angular pode ser interessante. A proposta do angular 4 é ser uma plataforma de desenvolvimento, um framework bem completo. No back-end, o NodeJs permite usar processamento assíncrono, dando respostas mais rápidas para o front-end. Essa foi a minha escolha.
Para fazer a migração, não sei se é a melhor forma, mas estou criando um token de acesso no CakePHP. A autenticação com o usuário será a última coisa a ser removida. Quando o usuário entra no sistema, crio um token no CakePHP e armazeno no banco de dados (isso futuramente vai ser migrado para o Redis ou Memcache). Quando o usuário precisa entrar num módulo que está escrito em Angular 4, o controller do CakePHP é usado para redirecionar o usuário para fora do sistema, enviando o token de acesso no cabeçalho da requisição.
Então, no angular 4, basta pegar o token de acesso, solicitar as informações do usuário ao NodeJS ( que está acessando o mesmo banco de dados) usando o token enviado pelo PHP. Daí as duas aplicações conseguem trabalhar juntas e isoladas uma da outra. Note que nessa forma de trablho, os módulos Angular 4 não possuem uma autenticação. Ela é realizada apenas com o token enviado pelo CakePHP.
Nos meus testes aqui, tudo funcionou bem, e como a sessão do usuário é controlada pelo banco de dados, elimino a possibilidade da sessão expirar caso o usuário fique muito tempo nos módulos em angular 4 e não entre nos módulos em PHP.
Se alguém tiver alguma dica de como melhorar isso, sou todo ouvidos. Essa foi a melhor solução que encontrei.
GOSTEI 1