Originariamente inviato da Italians
Sto provando a studiare anche la programmazione ad oggetti, ma non ho ben capito come impostare uno script. Le basi credo di averle acquisite (vabbè, devo studiarmi meglio il tutto), però non riesco ad immaginare come, per esempio, possa essere impostato un form per l'invio dei dati...
Guarda facciamo l'esempio dell'invio di una email.
Nel metodo piu' banale creerai uno script in cui imposterai destinatario, mittente, eventuali header aggiuntivi, contenuto del messaggio, registrando queste informazioni e poi chiamerai la funzione mail(). Eventualmente in mezzo agli assegnamenti effettuerai dei controlli sui vari dati (magari verifichi che il destinatario appartenga a una lista di indirizzi iscritti a una newsletter, controllerai che il messaggio non contenga tag HTML, e via dicendo).
Codice PHP:
<?php
if ( !check_valid_recipient($rcp_address) )
die('Indirizzo non presente');
$content = strip_tags($content);
// altri assegnamenti e controlli
mail($rcp_address, $subject, $content, $headers);
Con l'approccio OO invece tu pensi questo: devo mandare una mail, alla mail posso pensare come ad un oggetto che ha delle caratteristiche (mittente, destinatario, subject, etc) e su cui posso eseguire azioni (cambiare indirizzo, inviarla). Quindi crei una classe che avra' dei metodi (funzioni) che ti permetteranno di eseguire queste azioni.
Codice PHP:
<?php
$message = new Mailmessage();
$message->set_recipient($rcp_address);
$message->add_header('X-Mailer: PHP Class');
$message->add_content($content);
$message->send;
Alla fine e' la stessa cosa, ma in OOP il tutto viene organizzato in contenitori (le classi). Nell'approccio procedurale si puo' ottenere un'organizzazione simile con namespace/convenzioni sui nomi e utilizzo ordinato di funzioni, ma richiede una certa dose di disciplina e buona volonta' del programmatore, mentre con l'approccio OO sei abbastanza costretto ad organizzare le cose.