Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu tenho uma duvida que ate hoje não consegui chegar a conclusão de qual á melhor forma, pois atualmente estou estudando a arquitetura MVC por conta.
Se alguém puder me ajudar ou mandar algum artigo que trata sobre o assunto.
Imagina que o meu diretório esteja organizado dessa forma:
ASSETS
JAVASCRIPT
IMAGENS
APP
CONTROLLER
MODELS
ROUTES
VIEWS
CONFIG
SERVER
DB
INDEX.PHP
E na views tem uma página que eu gostaria de listar os clientes via ajax, da forma "tradicional" caso eu gostaria que essa listagem fosse feita no carregamento da página, no controller eu faria essa requisição ao model e entregava para a view um array de clientes, certo?
Mas no cenário em que eu preciso desses clientes via ajax, qual seria a melhor forma?
Eu pensei em duas situações, primeira:
No model uma variável chamada função, que recebe por GET qual função executar, ai ficaria algo do tipo no modelCliente.php
<?php
$funcao = $_GET['funcao'];
$objCliente = new Cliente;
$lista = $objCliente->$funcao();
class Cliente{
public function all(){
...
echo $array_clientes;
}
}
?>
Ai no JS, seria algo desse tipo:
$.ajax({
url: "clienteModel.php",
type: "get",
data: {funcao: "all"},
success: function(result){
console.log(result);
}
})
A segunda maneira seria a **modelCliente.php** assim:
<?php
class Cliente{
public function all(){
...
return $array_clientes;
}
}
?>
Ai teria uma página em PHP ponte, seria algo desse tipo **listar_todos.php**:
<?php
include_once "modelCliente.php";
$model_cliente = new Cliente;
$clientes = $model_cliente->all();
echo $clientes;
?>
Ai no JS, seria algo desse tipo:
$.ajax({
url: "listar_todos.php",
success: function(result){
console.log(result);
}
})
A segunda maneira eu acho mais simples, porém eu teria que ter um arquivo ponte para todas as classes do model e onde eu deixaria esses arquivos na arquitetura MVC?Deve-se entender que o MVC foi criado muito antes da existência da internet. Ou seja, muitas novidades foram introduzidas.
Se for analizar ao pé da letra, nenhum dos seus exemplos é MVC. Precisou emitir/imprimir alguns caracteres, deve ser feito na view.
Entretanto, ninguém lhe obriga a utilizar o MVC em tudo ou ao pé da letra. Uma leitura para entender um pouco do MVC pode ser realizada abaixo:
Sobre a organização de arquivos, isso não é de responsabilidade do MVC:
Valeu pela resposta dos dois, consegui abrir mais a mente sobre a arquitetura MVC.
A segunda é uma maneira mais MVC de ser, pois funcionaria como se fosse um controller chamando uma model e respondendo para uma view.