Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dziedziczenie
rahul
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 5.03.2011

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


Witam was.
Mam taki problem w rozumieniu oop.
Chcialbym aby moja klasa UserManagera ktora zarzadza obiektem user dziedziczyla inna klase.

mam cos takiego:
Klasa user_M dziedziczy po klasie CRUD
  1. $Database = new Database($hostname,$dbname,$username,$password); // klasa database zwraca polaczenie PDO;
  2. $crud = new CRUD($Database ); // laduje do konstruktora obiekt PDO
  3.  
  4. $user_M = new userManager(); // tu wywala blad constructora klasy po ktorej dziedzicze ze parametr ktory przekazuje jest pusty.

Dodatkowo dodam ze dopiero co ucze sie OOP w php i wymyslilem sobie aby moje managery dziedziczyly pewne dodatkowe funkcje z klasy nadrzednej. W tej nadrzednej klasie musze natomiast w do konstruktora przekazac obiekt polaczenia z bd ktory znika przy wywolaniu jakiejkolwiek klasy ktora dziedziczy se.

albo w ogole jeszcze inne opcje.
Rozwazam teraz 2 warianty.
Czy lepiej aby moja baza danych dziedziczyla klase crud i wtedy przekazuje instancje bazy danych do userManagera czy aby moja klasa UserManagera dziedziczyla po klasie CRUD. bardziej podoba mi sie 2 opcja ale nie wiem na ile jest dobra. Co do poprzedniego posta to przeciez instancje moge obiektu bazy danych moge wykonac w konstruktorze a potem przy dziedziczeniu go nie nadpisywac , tak ?
Kurcze ktoredy droga (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
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%)
-----


  1.  
  2. $m = new UserManager();
  3. $m -> addItem('Admin', new User(1));
  4.  
  5. foreach($m->permissions as $k => $objPermission) {
  6.  
  7. echo $m . ' posiada '.$objPermission.'<br>'; //__toString dla picu ;)
  8.  
  9. if($objPermission->notAdmin) { // czy jest adminem?
  10.  
  11. $m->permissions->removeItem($key); // nie jest więc usuwamy z kolekcji
  12. echo 'Sorry nie jesteś adminem';
  13. }
  14. }


Takie mini-demo tego co można zrobić z Managerem(dokładnie opisywać nie ma sensu bo za dużo tego jak na jeden post) po więcej zapraszam do "PHP5. Zaawansowane programowanie" (IMG:style_emoticons/default/smile.gif)

Co do singletona metoda z Zend_Db_Table_Abstract:
  1.  
  2. public static function getDefaultAdapter()
  3. {
  4. return self::$_defaultDb;
  5. }




Ten post edytował CuteOne 15.10.2011, 20:33:31
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 01:16