G2Petter Skrevet 21. oktober 2008 Del Skrevet 21. oktober 2008 (endret) Si at jeg har en klasse A som inneholder en samling objekter av en annen klasse B i tillegg til en databaseklasse, f.eks. PDO. Da har jeg et felt i klassen A som heter $database, og som initieres med $this->database = new PDO($vars); Et eksempel kan være en klasse for en blogg (A), som inneholder en samling poster (B). Dersom jeg vil bruke databasetilkoblingen i klasse A kan jeg f.eks. gjøre $this->database->query(). Da blir spørsmålet: hva hvis jeg har lyst til å bruke databasetilkoblingen i klasse B, f.eks. for å oppdatere en post, hvordan kan jeg gjøre dette? På forhånd takk for all hjelp. Endret 21. oktober 2008 av G2Petter Lenke til kommentar
OISNOT Skrevet 21. oktober 2008 Del Skrevet 21. oktober 2008 Si at jeg har en klasse A som inneholder en samling objekter av en annen klasse B i tillegg til en databaseklasse, f.eks. PDO. Da har jeg et felt i klassen A som heter $database, og som initieres med $this->database = new PDO($vars); Et eksempel kan være en klasse for en blogg (A), som inneholder en samling poster (B). Dersom jeg vil bruke databasetilkoblingen i klasse A kan jeg f.eks. gjøre $this->database->query(). Da blir spørsmålet: hva hvis jeg har lyst til å bruke databasetilkoblingen i klasse B, f.eks. for å oppdatere en post, hvordan kan jeg gjøre dette? På forhånd takk for all hjelp. Hvis du vil gi klasse B databaselinken til klasse A, så kan du gjøre det i metode kallet. $b->setDB($this->database); $b->setPost('newtext')->updateDB(); // hvert metodekall i klasse B returnerer $this; eller $b->setPost('newtext')->updateDB($this->database); // hvert metodekall i klasse B returnerer $this; eller $b = $this->getPost($id); $b->setPost('newtext'); $this->updatePosts(); //oppdaterer bare endrede poster eller når du lager klasse B $this->addPost('name', 'text'); //setter db link automagisk Men klassen kan få databasen via en singleton også, hvis du ikke bruker flere databaser. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå