Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana]zalątki OOP i problem
gothye
post
Post #1





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


witam ,zaczynam OOP ,i natrafiłem na błąd ,pisze CMS wygląda to tak :

  1. class cms
  2. {
  3.  
  4. protected static $is_login = false ;
  5.  
  6. public function __construct()
  7. {
  8. //podlaczenie do bazy i sprawdzanie sesji
  9.  
  10. if(self::$is_login == FALSE )
  11. {
  12. core::redirect('admin/login');
  13. }
  14.  
  15. }
  16.  
  17. public function __destruct()
  18. {
  19.  
  20. }
  21. }
  22.  
  23. class articles extends cms
  24. {
  25. public function __construct()
  26. {
  27. parent::__construct();
  28. }
  29.  
  30. public function action_index()
  31. {
  32.  
  33. }
  34.  
  35. public function __destruct()
  36. {
  37.  
  38. }
  39. }


Oczywiście klasa articles jest uruchamiana osobno ,czy za każdym razem (tworząc kolejne klasy ) , musze konstruktor rodzica uruchamiać ?
Czy jest inne rozwiazanie ?

Ten post edytował thek 15.06.2010, 22:13:22
Powód edycji: [thek]: Temat jak mniemam będzie tyczył implementacji dla Kohany, więc ląduje we frameworkach :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





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

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


OK, najpierw trochę zrzędzenia, bo aż się niedobrze robi jak się czyta Twój post:
1) Odstęp dajemy po znakach interpunkcyjnych, a nie przed nimi. Zadania rozpoczynamy wielką literą,
2) Kropka - taki znaczek też istnieje,
3) Popracuj trochę nad składnią swoich wypowiedzi bo teraz to jest jakieś Kali jeść, Kali pić,
4) konstrucktor - chyba konstruktor?

A teraz wracając do tematu:
1) Źle używasz dziedziczenia. Co ma wspólnego Articles z CMS? W jaki sposób to pierwsze może być potraktowane jako bardziej wyspecjalizowana forma ostatniego? Innymi słowy Articles nie powinno dziedziczyć po CMS.
2) Jeżeli w definicji klasy nie podasz konstruktora to zostanie domyślnie wywołany konstruktor klasy nadrzędnej (tak samo jak w przypadku zwykłych metod). W przypadku, gdy dana klasa jest na szczycie hierarchii i nie ma zadeklarowanego konstruktora na dobrą sprawę nic się nie stanie. Efekt, będzie taki sam jakbyś miał po prostu posty konstruktor.
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: 17.10.2025 - 13:39