TheClown Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 (endret) Hei. Jeg er relativt ny til OOP-delen av PHP, men jeg følger meg relativt stabil i resten. Er det noen av dere som kan forklare meg hvordan jeg inkluderer en klasse i en annen? Jeg bruker et bibliotek som heter xpdo til å gjøre alle spørringene mine. Jeg bruker xpdo på f.eks denne måten: $c = $xpdo-&--#62;newQuery('modResource'); Hvordan kan jeg gjøre slik at jeg inne i klassene mine kan gjøre f.eks: $c = $this-&--#62;newQuery('modResource'); Eller er ikke dette mulig? Evt. kan jeg skrive: $c = $this-&--#62;xpdo-&--#62;newQuery('modResource'); ... om den første løsningen ikke lar seg gjøre. Endret 19. juli 2012 av TheClown Lenke til kommentar
Thomas. Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 (endret) Har du sett på extends og parent? http://php.net/manua...word.parent.php Et eksempel: <?php class xpdo { public function method() { echo 'funksjon i xpdo'; } } class minKlasse extends xpdo { /** når vi kaller minKlasse **/ public function __construct() { parent::method(); } } // Echoer 'funksjon i xpdo' new minKlasse(); Eventuelt hadde metoden i xpdo vært statisk kan du kalle den direkte uten noe mer: <?php class xpdo { static function method() { echo 'funksjon i xpdo'; } } class minKlasse { /** når vi kaller minKlasse **/ public function __construct() { xpdo::method(); } } // Echoer 'funksjon i xpdo' new minKlasse(); Endret 10. juli 2012 av Thomas. Lenke til kommentar
Sono Juventino Skrevet 11. juli 2012 Del Skrevet 11. juli 2012 Du må inkludere klassefil og ha et objekt å kjøre metoden på/kalle den statisk. Det er vanskelig å hjelpe deg uten å vite hva metoden din gjør eller om du har noe objekt. Lenke til kommentar
Alex Moran Skrevet 12. juli 2012 Del Skrevet 12. juli 2012 Det er vel den siste metoden din som er den beste løsningen: <?php class BookCollection { protected $xpdo; public function setXpdo(Xpdo $xpdo) { $this->xpdo = $xpdo; } public function findAll() { $this->xpdo->newQuery("some statement"); } } Dersom du ønsker å kunne kalle $this->newQuery() må du extende Xpdo. Lenke til kommentar
TheClown Skrevet 19. juli 2012 Forfatter Del Skrevet 19. juli 2012 Løste det på samme måte som deg Alex. Hadde vært "penest" å kunne skrive $this->newQuery, men det er ikke noe problem å skrive $this->xpdo->newQuery heller. Takk så mye for hjelpa, da har jeg lært meg litt mer grunnleggende OOP. Løst. 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å