Duvida de Desenvolvedor Iniciante - PHP, AngularJS, MVC

Galera, boa tarde!

Estou desenvolvendo um software para gestão e queria algumas ideias sobre o geito certo, e como está atualmente, o software foi desenvolvido com front end no angularJS fazendo requisições ajax para o servidor, que por sua vez roda aplicação toda em PHP, como funciona o cliente requisita para o servidor enviando um status, que no caso vai como texto, o servidor recebe em uma camada que chamei de controller esta requisição, onde quando necessários também cuida da regra de negocio, mais que por sua vez, encontra-se toda no angular, como formatação, validação de campos, estratégia de geração de campos e etc, feito isso ele instancia a classe da camada DAO, e realiza o envio para o metodo que faz a interação com a base, que no caso retorna para o controller um bean ou uma msg em forma de string, para compilação no controller, que por sua vez também realiza um retorno para o front end.

Problemas encontrados, fui aplicar a biblioteca mPDF porém não consegui usando namespaces, somente via includes e gerando scripts php para gerar os pdf.
Também não utilizei composer, eu criei uma pasta chamada conf, onde ficam minhas constantes de servidor, e também o método de autoload, não sei se é o correto.

Gostaria de ideias e críticas sobre o método correto de se fazer tudo isso, Framework, opiniões de quem tem mais experiência, oque devo estudar e etc.

Eu não sei como o PHP trabalha, mas não li em nenhum momento sobre seus REST. Vai ter?

  • Usando alguma ferramenta pra gerenciar suas tarefas do front end?(Gulp, Grunt)
  • Usando alguma ferramenta pra gerenciar seus pacotes do seu front end? (Bower…)
  • Se tem REST como tá sendo feito sua segurança?

Exatamente Raul, estou querendo saber oque é preciso para melhorar, axu que a ideia do Rest está implementada, porém o método de envio e retorno que não, pois envia sim dados para o servidor, mais um status em forma de string, e o servidor em php interpreta esse status, no caso os dados são passados via JSON.

Assim o REST é chamado via ajax no front-end, o seu back-end(Projeto PHP) recebe sua chamada e a trata independente ela vai ter o response desta requisição HTTP, certo?
Vi vc mencionando de Controller e DAO, padroes semelhantes que uso nos meus projetos em Java e angularjs, acho que o caminho é deixa em REST mesmo, e no seus REST chama uma camada de negocio (Service, BO, sei lá vc que sabe) onde ele é responsável por validação daquela operação e chama o DAO ou outro service p/ prosseguir a operação.
Exemplo:
1 - Page(HTML, Bootstrap, Angularjs) request-REST GET(“app/produto”)
2 - REST ProdutoREST(Classe PHP escrita p/ disponibilizar um REST)
3 - Classe Negocio ProdutoService(valida se a operacao é valida, se todos os dados estão preenchidos e chama os DAO que irá fazer parte de persistencia nao preciso entrar em detalhes)
4- Seu REST vai retornar um HTTP Status 200 ou 500 (então no seu angularjs vc trata na suas promises os status retornado, tem varios padroes que demonstra como criar esta estrutura)

Certo, obrigado Raul e desculpa pela demora em relação a isso, axo que a estrutura ta bacana, realmente já percebi e com você comentando agora o tratamento via status do HTTP não acontece, como eu mencionei fiz este tratamento via string de texto onde, o servidor retorna uma string avisando oque aconteceu ou um array json com os dados.
Axei bacana você mencionar algo como gulp e grunt, bower e o efeitode segurança vou da uma estudada e implementar na aplicação, você axa que dessa forma como funciona no local, vou ter dificuldade para implantar em um host? Eu não utilizei composer tambem não? Qual seu ponto de vista em relação a isto?

Já envolve mundo PHP isto infelizmente não poderei ajuda-lo. Não sei como funciona as estruturas projetos PHP e este composer.

Obrigado, Raul!

Qual ferramenta adequada usar tem que partir do cenário que você vai manter. Cuidado com armadilhas como o AngularJs, a versão 1 vai ser descontinuada e a 2 é outro produto incompatível com o primeiro.

Sobre Composer, você mesmo tem que avaliar se está precisando disso ou se usaria mais por ter virado tendencia, o que para estudos seria importante para entrar no mercado. Mas focado num único cenário real para produção, se o projeto não usa um monte de parafernálias e sua equipe tem um tranquilo controle do framework e bibliotecas usadas, sem essa parte de arquitetura ser rotineira, então não precisa. Mas se for uma arquitetura complexa usando salada de frameworks, bibliotecas cheio de dependências e configuração de novas versões é problemática, ai sim essa ferramenta vai ser útil devido ter o problema para resolver.

Obrigado javaflex pela atenção, realmente eu utilizo uma única biblioteca para o backend que seria o mPDF para geração de relatórios, nem sei se é a biblioteca ideal para isso, se tiver sugestões.
A parte do código foi toda escrita, camada DAO, Bean, Controller, Viewers, é toda minha com uso do framework angularJS 1, que atendeu aos requisitos do software em primeira instância, o autoload dos namespaces foi criado por mim também, onde ele seta a partir do diretório raiz, porém estou com o problema do mPDF, onde a versão que consegui na internet não atende aos namespaces, porém a versão listada no package list atende, não sei como seria essa migração, mais estou estudando a respeito. Se tiver sujestões para essa metodologia de desenvolvimento, estou aberto pois como disse estou iniciando neste mundo kk’.