Ciao a tutti
sto provado, per motivi di studio, a fare un'implementazione semplice del paradigma mvc (so che esistono zend framework, ecc...), volevo sapere se sono sulla strada giusta
il progetto sarà composto dalle seguente cartelle:
dir principale: nome_progetto
sottodirectory:
bean
action
dao
css
js
nella directory principale ci saranno tutte le view
Supponendo di vole implementare una funzionalità che permetta di salvare i dati di una form di registrazione, le classi che dovrei creare sarebbero
View: signup_view.php
Controller: action/signup_action.php
Model: bean/signup_bean.php
Dao: dao/signup_dao.php
La servlet istanzia un model (signupi_bean.php) e chiama la classe (signup_dao.php) che si occuperà di salvare i dati sul db tramite un metodo save_signup.php
I metodi in comune, tipo la connessione al db vengono messi in una classe e tutti i dao estenderanno quella classe
Riassumendo:
View -> chiama la Servlet -> istanzia e popola il Model
istanzia il Dao e chiama il metodo che interagiraà con il db
ritorna ad una view
In particolare vorrei che mi controllasse la correttezza della classe: signup_action.php
Vediamo il codice
db_config.php
Codice PHP:
<?php
// web
$mysqli = new mysqli($mysql_server, $mysql_user, $mysql_password, $db_name);
if(mysqli_connect_errno()) {
echo "Connection Failed: " . mysqli_connect_errno();
exit();
}
?>
signup_view.php
Una form in html che raccoglie i campi: nome, cognome, email
signup_bean.php
Codice PHP:
<?
class utente_bean
{
private $id;
private $email;
private $cognome;
private $nome;
//elenco di tutti i metodi get e set
function get_cognome() {
return $this->cognome;
}
function set_cognome($cognome) {
return $this->cognome = $cognome;
}
function get_nome() {
return $this->nome;
}
function set_nome($nome) {
return $this->nome = $nome;
}
ecc..
?>
signup_dao.php
Codice PHP:
<?
class signup_dao {
var $conn;
function signup_dao(&$conn) {
$this->conn =& $conn;
}
function save(&$signup_bean) {
if ($signup_bean->id == 0) {
$this->insert($signup_bean);
} else {
$this->update($signup_bean);
}
}
function delete(&$signup_bean) {
}
function insert(&$signup_bean) {
#generate id
#insert record into db
#set id on signup_bean
$query = "INSERT INTO utente (nome,cognome,email)
VALUES (?, ?, ?)";
if ($stmt = $mysqli->prepare($query)) {
$stmt->bind_param("sss", $signup_bean-get_nome(), $signup_bean-get_cognome(), $signup_bean-get_email());
$stmt -> execute();
$stmt -> close();
}
}
function update(&$signup_bean) {
}
}
?>
signup_action.php
Codice PHP:
<?php
require_once("../db_config.php");
require_once('../signup_bean.php');
require_once('../signup_dao.php');
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$email = $_POST['email'];
$signup_bean = new signup_bean();
$signup_bean>set_nome(nome);
$signup_bean>set_cognome($cognome);
$signup_bean>set_email($email);
$signup_bean = new signup_dao($mysqli);
$signup_dao>save($signup_bean);
$mysqli->close();
$message = "Utente registrato";
$_SESSION['messaggio'] = $message;
header('Location: ../index.php?page=msg');
?>
Che ne dite?