Dúvida - Aplicação do MVC com Php
Estou a alguns meses estudando desenvolvimento web. Tem sido tudo muito novo para mim, pois meus primeiros passos com a programação foi atráves do Delphi para desenvolvimento de software.
Pois então, ultimamente tenho me dedicando a estudar php e desenvolver alguns projetos com as skills básicas da web. Html, css, js e o php. Já consegui desenvolve alguns projetos bem interessantes. entre eles o ImagenDay que conseme uma API da Nasa e faz posters de forma automatica de imagens do cosmos. Desenvolvi também um CRUD básico e de forma intuitiva, BookSpoiler.
Diante disso decidi estudar e aprender a desenvolver projetos utilizando arquitetura MVC com o PHP e surgiu uma dúvida. Desenvolver uma aplicação web que tenha uma organização em MVC, porém essa aplicação apenas faz solicitações com a fetch do js ao servidor que tenha scripts php e conectado ao banco de dados. Esse servidor estará organizado com MVC e OOP. Porém, servirá apenas para recebe requisições. Algo parecido e seguindo a mesma linha do que foi feito no BookSpoiler. No qual, as pag eram feita apenas comm html e js puro e utilizava a fetch para realizar as requisições ao servidor php.
Gostária de sabe se essa forma de desenvolvimento é algo válida para projetos. Se é "correto" desenvolve aplicações com arquitetura MVC e OOP organizando e utilizando o Php apenas para recebe requisições.
Abraços a todos vocês!!
Na verdade isso que você está fazendo é criar uma aplicação frontend que consome uma api, ao meu ver não constitui um mvc, pois seu front está desacoplado do restante, mas essa é a minha opinião e não uma verdade absoluta.
Acredito que você esteja fazendo assim para ter reatividade e não ter refresh na página, mas quando você for estudar Laravel e seu ecossistema, você vai descobrir que existe uma ferramenta maravilhosa chamada Livewire que vai fazer tudo isso sem que você tenha que relar em uma linha de js sequer.
O que vejo como 'mais correto' é fazer como os grandes fazem, já padronizaram, tem um controller que comunica diretamente com a view e com o model, sem intermediários. Outra forma de se fazer isso é com o Laravel Inertia, por exemplo, que permite que exista essa funcionalidade entre o controller e um front em react ou vue.
Boa sorte nos estudos.
Na programação nao existe "o mais correto", tudo que funciona é válido. Existem sim arquiteturas mais utilizadas e que se tornam um padrão. Por exemplo, no php temos o framework laravel em evidencia, ja no Java o Spring Boot. E assim vai...
Como você citou arquitetura MVC, hoje em dia ela não é tão mais aplicada assim. O que existe hoje é um servidor "backend" que é uma API e um "frontend" que consome essa API. São aplicações distintas.
No php por exemplo, você pode usar laravel para ver essa mágica acontecer. Quer testar? Instale o laravel em sua maquina e crie um projeto padrão deles lá, que ja vem inclusive com autenticação e um frontend qualquer (vue ou react..).