Ciao a tutti!
Sto cominciando a familiarizzare e a fare i primi passi con MVC... avrei bisogno di alcuni chiarimenti.
Poniamo che io voglia mostrare in una pagina le info di un utente registrato.
avrò 4 files:
index.php
controller.php
model.php
view.php
la index avrà un codice del genere:
Codice PHP:
<?php
include 'controller.php';
$controller = new Controller();
$controller ->controlLogin($_SESSION['utente']);
?>
la pagina controller sarà più o meno così:
Codice PHP:
<?php
// includo il model
include 'model.php';
class Controller {
public $model;
public function __construct(){
// creo l'istanza della classe Model
$this->model = new Model();
}
public function controlLogin($utente){
// se c'è una sessione aperta applico il metodo mostra() della classe Model e carico una vista particolare
if($utente){
$this->model->mostra($utente);
include 'views.php';
}else{
// altro metodo e altra vista
$this->model->error();
include 'views_error.php';
}
}
}
la pagina model sarà più o meno così:
Codice PHP:
<?php
// posso includere una classe per l interazione con il database
class Model {
public function mostra($utente){
$query = $this->mysqli->query("SELECT * FROM utenti WHERE username = '$utente'");
$riga = $query->fetch_object();
}
}
?>
e la vista sarà cosi
Codice PHP:
<html>
<head>
</head>
<body>
<p><?php echo $riga->username;?></p>
</body>
</html>
Una volta visto l'impostazione mi servirebbe capire:
1) Ho capito correttamente il funzionamento del pattern? o sbaglio e confondo le varie funzionalità?
2) Non mi è ancora chiarissima la funzionalità del controller... cioè per ogni azione che voglio svolgere ci dovrà essere un metodo nel controller che carica una determinata vista e applica un metodo del model?
Spero di essermi spiegato bene! in caso contrario mi scuso in anticipo!
Grazie!