Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pare klas w jednej ?
Damiankossek
post
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

Ostrzeżenie: (0%)
-----


Witam,
Da radę w PHP zrobić tak aby np. jedna klasa `dziedziczyła` parę klas ?

Bo mam np. klasę "articles" która dziedziczy po "mainClass"

No i w tej mainClass ustawiam wszystkie główne rzeczy dotyczące strony (Autoryzacje , itp.) i np. fajnie byłoby jak bym mógł pod mainClassa doczepić jakąś dodatkową klasę np. `bbCode` , `advertisements` itp.

Na siłę mógłbym napisać w mainClassie funkcje odpowiadające za bbCode, reklamy. Ale wole jednak mieć to jakoś posegregowane na plikach.

Niestety kilka klas naraz nie da się dziedziczyć ale może macie jakieś domowe metody snitch.gif ?
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Najgłupszym sposobem było by dziedziczenie:
a->b->c->d i tak dalej ;]

Do tego co piszesz wystarczy instancja "doczepianej" klasy:

  1. <?php
  2.  
  3. class A {
  4. static private $instance = null;
  5.  
  6. static public function getInstance() {
  7.  
  8. if (self::$instance == null) {
  9.  
  10. $c = __CLASS__;
  11. self::$instance = new $c();
  12. }
  13.  
  14. return self::$instance;
  15. }
  16.  
  17. public function echoMe() {
  18. echo "aaaa";
  19. }
  20. }
  21.  
  22. class B {
  23.  
  24. public $klasa_A;
  25.  
  26. public function setInstanceA() {
  27. $this->klasa_A = A::getInstance();
  28.  
  29. }
  30. }
  31.  
  32. class C extends B {
  33.  
  34. public function getMe() {
  35.  
  36. $this->setInstanceA();
  37.  
  38. $this->klasa_A->echoMe();
  39. }
  40. }
  41.  
  42. $f = new C;
  43. $f->getMe();
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@Damiankossek: W jaki niby sposób artykuł jest wyspecjalizowaną formą BBCode albo autoryzacji? W żaden, więc z dziedziczenie nie powinieneś tutaj w ogóle korzystać.

Chcesz, aby artykuł miał dostęp do jakiś tam metod obiektu odpowiedzialnego za przetwarzanie BBCode - przekaż mu go (DI).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:26