Aggiungere funzionalità personalizzate



Come dichiarato e ribadito più volte nel corso della guida, uno dei vantaggi principali di un modello OOP risiede nell'estensibilità dell'applicazione, ovvero nella possibilità di aggiungere funzionalità personalizzate senza l'occorrenza di riscrivere completamente il nucleo principale. In questo caso ad esempio, vogliamo aggiungere un controllo che ci permetta di validare un ulteriore campo HTML del nostro form: la password.

Per velocizzare le procedure, supponiamo che la password dell'utente sia la stringa "ahy8978yha". Ora non ci resta che estendere la classe FormCheck con le funzionalità desiderate:

// ----------------------------------------
// class MoreFormCheck
//		extends FormCheck
// ----------------------------------------

class MoreFormCheck extends FormCheck {

	public $pw;
	public $pw2;
	
	// costruttore
	public function __construct() {
		parent::__construct();
		
		$this->pw1 = $_POST['pw1'];
		$this->pw2 = $_POST['pw2'];
		
		$this->setErrorMsgs(array('pw' => 'La password non è corretta.'));
	}
	
	// metodi di checking
	public function checkPw() {
		if($this->pw1 === 'ahy8978yha' && $this->pw2 === 'ahy8978yha') {
			echo "

La password è stata inviata correttamente.

"; $this->clean['pw'] = $this->pw; } else { $this->trackErrorMsg('pw'); } } // ...

Come possiamo vedere, la nostra classe MoreFormCheck, estendendo la precedente FormCheck, guadagna tutti i suoi metodi, senza l'occorrenza di una totale riscrittura. Dobbiamo solo ridefinire parte del costruttore, sia per dichiarare che per inizializzare le proprietà che conterranno le password. Tramite la chiamata del precedente costruttore (fornito dalla classe astratta AFormCheck) unito alla keyword parent, possiamo ripetere le precedenti procedure di inizializzazione. La chiamata al metodo setErrorMsgs infine, ci permette di impostare il messaggio di errore che verrà visualizzato nel caso in cui le password siano errate.

Il metodo checkPw si occuperà di gestire la nuova funzione di checking che andiamo ad aggiungere per controllare i valori delle password fornite dagli utenti. Il suo comportamento fondamentale è identico a quello di tutti gli altri metodi di checking ereditati da FormCheck.

A questo punto non ci resta che finalizzare la classe ridefinendo il metodo pubblico checkAll, che ovviamente conterrà la chiamata al nuovo metodo checkPw:

// ...

public function checkAll() {
                $this->checkName();
                $this->checkLastname();
                $this->checkEMail();
                $this->checkYear();
                $this->checkPw();
                return $this->getErrorMsg();
        }

}

Ora la classe è completa e pronta per essere inizializzata:

// ----------------------------------------
// Implementazione
// ----------------------------------------
$form = new MoreFormCheck();

if(!$form->checkAll()) { 
        exit();
}
else {
        echo "<p><strong>Nome:</strong>" . $form->clean['name'] . "</p>";
        echo "<p><strong>Cognome:</strong>" . $form->clean['lastname'] . "</p>";
        echo "<p><strong>Mail:</strong>" . $form->clean['email'] . "</p>";
        echo "<p><strong>Year:</strong>" . $form->clean['year'] . "</p>";
        echo "<p><strong>Password:</strong>" . $form->clean['pw'] . "</p>";
}

Ultimi articoli PHP

Sessioni PHP: cosa sono, come si usano

Dalla configurazione di PHP, alla gestione delle sessioni in un...

Continuous Integration: automatizziamo i client con Phing

Continuous Integration: automatizziamo i client con Phing. Esempi...

Archiviazione delle applicazioni PHP con Phar

Come incorporare intere applicazioni PHP all'interno di un singolo...

I traits in PHP 5.4

Cosa sono, a cosa servono e come si unsano i traits, la novità per...

PHP 5.4: il web server integrato

Impara ad usare il web server integrato nella versione 5.4 di PHP:...

Altri articoli

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Guida PHP con Windows e IIS

Installare ambienti per lo sviluppo e la produzione di applicazioni...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti