Newsgroup: it.comp.www.php
Titolo: riorganizzazione pagina php con classi

(posto di nuovo questo thread semplificandolo in modo forse da renderlo
piu' leggibile)
Sto iniziando a usare la progr. ad oggetti in php5 (ho fatto qcosina in
java ma poco)
Dunque vorrei trasformare una pagina che ho fatto utilizzando le classi.
Vi dico come ho pensato la cosa e ditemi se son proprio fuori strada o
meno.
innanzi tutto ecco come è fatta la pagina ora(ho cercato di suddividerla
in sezioni seguendo un minimo di logica per avere unpo' di chiarezza)
sezione 1: una serie di controlli su dei parametri che arrivano
nell'url;in caso negativo fermo lo script altrimenti stampo un messaggio
(qui nessuna operazione sul db)
sezione2: collegamento al db
sezione 3:viene fatta una select sul db che estrae una serie di dati di
alcuni utenti(tra cui la mail) e parte un ciclo while; all'interno di
questo ciclo ho individuato 2 sottosezioni della 3
sezione 3 sottosezione 1:istanzio un oggeto
htmlMimeMail(
http://www.phpguru.org/static/mime.mail.html
) e invio una
mail all'indirizzo ricavato tramite la select della sezione 3(non vi
preoccupate non faccio spamming, giuro!!! :-) ).(oppure tale oggetto lo
istanzio prima del ciclo e qui uso solo il suo metodo)
sezione 3 sottosezione 2: eseguo un INSERT nel db per scrivere che ho
inviato la mail X,Y
finito il ciclo della sezione 3 lo script è praticamente finito
****************************************
****
organizzazione con classi nella pagina
istanzio un oggetto della classe Controllo e chiamo il metodo
eseguiControlli che mi esegue i controlli che appunto facevo nella sezione
1
istanzio un oggetto($oggetto_connessione) della classe Connessione che si
connette al DB e ha un metodo get() che restituisce appunto la connessione
in modo che le altre classi la possano usare; nel metodo __destruct della
classe Connessione chiudo la connessione
a questo punto nella pagina tramite un'istruzione
$mia_connessione=$oggetto_connessione->get_connectionDB() ho a
disposizione la connessione
istanzio un oggetto della classe ClassePrincipale(le passo la connessione)
e chiamo un metodo che appunto esegue una select e fa partire il ciclo; in
questo metodo vengono istanziati i 2 oggetti delle Classi(compresa
htmlMimeMail) che svolgono le sottosezioni della sezione 3 e vengono
chiamati i metodi relativi all'interno del ciclo.
Che ve ne pare??
Accetto tutte le critiche del mondo ma cercate di essere semplici che per
me è la prima volta che programmo ad oggetti in php5.
grazie
Ultima modifica ad opera dell'utente Prazision il 05-02-2006 alle 13:32
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 me è la prima volta che programmo ad oggetti in php5.
Troppo complicato ... il post.
Perchè non butti giu' due righe con delle classi scritte in php o java,  
magari anche con codice non completo ma che renda l'idea? Secondo me è il  
modo migliore per cominciare a ragionare (al primo che mi tira fuori  
l'idea di usare l'UML gli sparo).
Ti faccio un esempio.
Metti di voler fare un albero delle categorie a classi.
class CategoryItem {
	var $name;
	var $id;
	function CategoryItem ($id){
		//...carica l'item con id = $id
	}
	//restituisce un insieme di CategoryItem figli.
	function getChilds {
		//..codice per caricare i figli
		return $childs; //array di oggetti
	}
}
class Category {
	function GetTree ($id){
		$root = new $CategoryItem($id);
		..
	}
}
L'esempio è incompleto e sicuramente non funziona, è oltretutto mal  
strutturato, ma può essere un buon modo per cominciare a ragionarci su.
Alla fine scrivi meno così, rispetto alla descrizione che hai tirato giu'  
tu, ed è piu' facile per chi leggere dare consigli.
Tac
-- 
La netiquette prevede sign di al massimo quattro righe.
Purtroppo la mia sign in quattro righe non ci stà.

 l'idea di usare l'UML gli sparo).
io lo faccio pure ma anche con codice non completo la cosa verrebbe ancora
piu' lunga.
dubito che qualcuno mi dara' retta.
se pro' mi prometti che lo farai... :-)
grazie tantissimo cmq


 l'idea di usare l'UML gli sparo).
[..]
che esperienze hai avuto per divenire cosi' violento contro UML?
va tanto di moda in questi ultimi tempi e poi e' cosi' carino veder
disegnare con tanta maestria.. verrebbe quasi voglia di iniziare a regalare
matitine colorate..
-- 
www.iuz-lab.info



Nessuna esperienza particolare esperienza (per ora non lo uso, e basta),  
ma è come chi qualcuno che consiglia alta maestria di HTML e CSS a  
qualcuno che stà iniziando con PHP (è successo su questo ng, qualche tempo  
fà). E' un metodo sicuramente consigliabile, ma non è che uno debba  
aspettare anni o mesi per mettere finalmente le mani sul codice (e capire  
magari che non fà per lui e che sarebbe stato meglio andare a vendere  
mortadelle all'hypermarket di via montecristallo).
Idem per UML, per apprendere l'UML bisogna avere una minima base di  
programmazione ad oggetti, sarebbe un consiglio semplicemente poco  
sensato. Senza contare che non a tutti piace l'UML, non a tutti piace unit  
testing e TDD, alcuni esperti compresi.
Secondo me, ad esempio, è sicuramente piu' semplice apprendere prima i  
Design Pattern di base e solo poi approfondire l'UML (che permette di fare  
anche altre cose, non solo la strutturazione delle classi).
Nel caso di uno che vuole strutturare ad oggetti la propria pagina  
(approccio di per se contorto, visto che in genere è  
l'applicazione/dominio che si struttura ad oggetti) secondo me la base è  
tracciare qualche schema di codice su cui ragionare assieme.
