- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema con la programmazione ad oggetti
-
Problema con la programmazione ad oggetti
Sto facendo un applicativo in PHP usando la programmazione ad oggetti. Per spiegare il mio problema vi faccio un esempio:
- Pensate di dovere modellare questa realtà: una fattoria con animali di diverse razze.
- Pensate ora di creare una classe "animale" e due sottoclassi "mucca" e "anatra"... Sul database c'è una tabella "animali" con il codice animale e la tipologia (mucca o anatra) ed i dati comuni alle due tipologie + una tabella "mucche" con i relativi dati + una tabella "anatre" con altri dati ancora. Queste ultime due tabelle dipendono, mediante una foreign key, dalla tabella "animali".
- Adesso pensate di dover fare una pagina con un elenco degli animali presenti nella fattoria dove, su ogni rigo c'è il tasto di cancellazione...
Domanda: essendo la tabella composta da istanze della classe "animale", come posso fare per fare in modo che la cancellazione elimini il relativo record sulla tabella "animali" + quello sulla tabella figlio "mucche"/"anatra" ?
Posso farcela senza dover interrogare la tipologia sull'oggetto "animale" per poi istanziare la sottoclasse "mucca" o "anatra" ?
-
Ciao
da quanto ho capito dovresti realizzare una query delete mettendo in relazione le diverse tabelle con l'id univoco che le collega
ciao da Danny1975
-
Forse non ho capito bene cosa ti serve, ma da come hai scritto sembra che tutto si possa risolvere con un paio di semplici query-delete. O forse ti serve sapere altro?
-
Ciao dacdam,
forse puoi abbattare tutti i passaggi per cancellare i dati in comune e poi quelli particolari di una determinata classe, semplicemente salvando in tabella
l'id univoco per riconoscere l'animale salvato e la stringa con cui è serializzato l'oggetto.La serializzazione di una istanza di classe permette di salvare lo stato dell'oggetto (quindi tutte le sue proprietà con i relativi valori) su filesystem o DB.
Il risultato della serializzazione è una stringa.
La serializzazione in PHP avviene tramite le funzioni
- serialize(una_istanza);
- unserialize(stringa in cui è stato serializzato un oggetto);
Se vuoi un esempio, io la ho usata per creare una cache in PHP.
l'articolo lo puoi leggere qui:
mirkoagrati.110mb.com/articoli.php?page=Articoli&cat=PHP&art=Cache_Singleton&ext=xml&part=8Tieni presente che il link ti porta alla pagina dove puoi vedere in funzione le due funzioni di cui sopra.
Ciao