Anch’io sto cercando d’implementare la registrazione di un nuovo utente con l’invio di una mail di conferma.
La prima cosa che dovrebbe fare l’applicazione è chiedere la sola email all’utente.
Poi dovrebbe partire una mail di conferma all’utente registrato
E una volta confermato, cliccando sul link contenuto nella mail, può proseguire inserendo il resto dei dati di registrazione.
Stavo pensando di prendere spunto da questo corso base:
http://www.mtxweb.ch/php_learn/?p=665
anche per meglio capire le differenze tra usare una programmazione ben fatta, ma comunque tradizionale,
e quella mediante l’utilizzo di un potente framework 2.0.
Ho ancora un pò di confusione in testa e volevo chiarire i miei dubbi.
I miei dubbi nascono dalla lettura delle best practices di programmazione su yii, dove spiegano che nel controller dovrebbero essere sempre scritte poche righe di programmazione, cosa che condivido.
E il grosso dovrebbe essere scritto nel modello.
Negli screen cast è spiegato come passare i dati da controller a view, ma non ho trovato alcun esempio che spieghi come si faccia per interagire col modello.
Proseguendo in questo piccolo esempio. io farei così:
Per prima cosa creo la tabella user e poi la classe associata tramite gii (quindi creo il modello User)
Poi sempre tramite gii, creerei il controller per la gestione della registrazione.
<?php
class IscrizioneController extends Controller
{
public function actionIndex()
{
if(isset($_REQUEST['mail'])) {
//verificata che la mail sia formalmente corretta
//genero il link, mando la mail
//....
//dove e come lo metto questo spezzone di codice?
//....
//visualizzo il layout in cui invito l'utente a controllare la sua posta elettronica
$this->render('ok');
} else {
$this->render('index'); //visualizzo il form per richiedere la mail
}
}
public function actionMail()
{
die('qui gestisco il link di accettazione della mail');
}
}
?>
Ecco a questo punto, ho le idee molto vaghe.
Dove e come lo inserisco il codice di controllo?
nella classe User? O ne devo creare una nuova? E la creo manualmente o esiste qualche tool?