[PHP] Klasy (zaprzyjaźnione?)

0

Witam. Powiedzmy że mamy taką sytuację:

class KlasaPierwsza
{

public function FunkcjaKP(){

}

}

class KlasaDruga
{

public function FunkcjaKD(){

}

}

Jak widać są dwie klasy. I mam pytanie. Czy da się by KlasaDruga bardziej "swobodniej" korzystała z KlasaPierwszej?

Bo teraz by móc korzystać z KlasaPierwszej muszę:

class KlasaDruga
{
public $klasaPierwsza;
function __construct() {
$this->klasaPierwsza = new KlasaPierwsza;

}

public function FunkcjaKD(){

}

}

Wygląda to jakoś głupio.
W c++ nazywa się to klasy zaprzyjaźnione, lecz nie umiem tego znaleźć w php.

0

Nie znalazłeś, bo w PHP nie ma przyjaźni klas, jak i paru innych fajnych rzeczy ;-)

Ewentualnie w zależności od tego, co robią poszczególne metody możesz je przerobić na statyczne, by używać bez tworzenia obiektu drugiej klasy.

0
class KlasaPierwsza
{

public function FunkcjaKP(){
return "to fajna klasa";
}

}

class KlasaDruga extends KlasaPierwsza
{

public function FunkcjaKD(){
echo $this->FunkcjaKP();
}

}

Oo takie coś znalazłem po zmaganiach z wojkiem google. Lecz ma to jakieś skutki uboczne? Czy do takich rzeczy używa się extends?

0

extends to dziedziczenie. Jeżeli jedna klasa nie jest rozwinięciem drugiej to jak dla mnie extends nie jest poprawne (z punktu widzenia inżynierii, pod względem semantyki kodu nie ma znaczenia).

http://pl.wikipedia.org/wiki/Programowanie_obiektowe#Dziedziczenie
http://pl.wikibooks.org/wiki/PHP/Dziedziczenie

0

A no to mam niezłe rozwiązanie :D. Bo mam klase gówną, a w skład niej wchodzą inne podklasy, ktore razem dają całość.
Dzieki!

0

A może w takiej sytuacji lepiej wykorzystać coś typu mixins?

1 użytkowników online, w tym zalogowanych: 0, gości: 1