Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
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
gothye
post
Post #3





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

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


za ortografie przepraszam
niewiem czy dobrze pomyślałem ,chciałem wykonać klasę główną (cms) i potem kolejne klasy jak np articles ,gdzie klasa będzie dziedziczyła po klasie cms status czy user jesr zalogowany itp ,a potem tylko zajmowała sie listowaniem artykułów z bazy i dodawaniem / edycją istniejących ... czy takie rozwiązanie bedzie w porządku ? jeśli nie proszę o uwagi
Go to the top of the page
+Quote Post
Crozin
post
Post #4





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

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


Cytat
za ortografie przepraszam
Nie pisałem tego byś przepraszał tylko żebyś to poprawił - niestety widzę, że z mizernym skutkiem.

Od takich rzeczy jak sprawdzanie czy użytkownik jest zalogowany czy nie powinien być - czy raczej może być - obiekt reprezentujący użytkownika. Obiekt Articles nie powinien dziedziczyć po jakimś CMS, bo pomiędzy takim czymś (chociaż ciężko w ogóle ustalić czym to ostatnie ma być) nie zachodzi żadna bezpośrednia relacja. Articles może wykorzystywać takie obiekty jak np. "użytkownik", ale się z nich nie wywodzi.
Go to the top of the page
+Quote Post
gothye
post
Post #5





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

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


nie napisałem na początku , framework to kohana 2.*
ok ,więc napiszę klasę do autoryzacji usera ,ale chcąć rodzielic kolejne elementy cms , jak np sondy / dodawanie stron , i rozbicie tego na osobne klasy , istnieje mozliwość aby w kazdej znich nie dopisywać warunku sprawdzającego status zalogowanego użytkownika ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
istnieje mozliwość aby w kazdej znich nie dopisywać warunku sprawdzającego status zalogowanego użytkownika
Tak na dobrą sprawę to sprawdzanie zalogowanie uzytkownika należy robić na poziomie kontrolera a nie na poziomie klasy modelu.
Zapewne kohana ma przewidziane metody na tę okazję - w koncu tak ją zachwalają jako jeden z lepszych frameworków - osobiście nie jestem nic więcej na ten temat powiedzieć, gdyż kohany nie używam
Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(nospor @ 14.06.2010, 08:58:10 ) *
Tak na dobrą sprawę to sprawdzanie zalogowanie uzytkownika należy robić na poziomie kontrolera a nie na poziomie klasy modelu.
Zapewne kohana ma przewidziane metody na tę okazję - w koncu tak ją zachwalają jako jeden z lepszych frameworków - osobiście nie jestem nic więcej na ten temat powiedzieć, gdyż kohany nie używam

Można to zrobić na poziomie kontrolera, ale lepiej zrobić to w hooku (IMG:style_emoticons/default/smile.gif) to tak na marginesie.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




No przepraszam, faktycznie źle się wyraziłem. chodziło mi ogólnie, że nie model, a coś wczesniejszego.
przykładowo w ZF robi się to na poziomie pluginu
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
gothye
post
Post #9





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

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


nospor mogę prosic o przykład z kontrolerem ?
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Jak juz pisałem nie uzywam kohany więc ci nie pomogę (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
gothye
post
Post #11





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

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


załapałem z tym controller (IMG:style_emoticons/default/winksmiley.jpg) pozostaje tylko kolejne pytanie ,jak utworze połączenie do SQL w controller to jak współdzielic je między modułami , przez przekazanie obiektu bazy w __construct modułu ?
Go to the top of the page
+Quote Post
phpion
post
Post #12





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(gothye @ 14.06.2010, 14:47:16 ) *
jak utworze połączenie do SQL w controller to jak współdzielic je między modułami

Zapomnij. Nie należy odwoływać się do bazy danych bezpośrednio w kontrolerach - od tego masz modele. W modelu operujesz na bazie danych (pobieranie + modyfikacja danych), a w kontrolerze tylko odwołujesz się do modeli.
Go to the top of the page
+Quote Post
gothye
post
Post #13





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

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


czyli tworząc kolejne modele ,w każdym musze łączyc sie z osobna z bazą ? , tego własnie chciałem uniknąć przy sprawdzaniu i autoryzacji usera z pierwszego postu ... aby miec w jednym miejscu to (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
phpion
post
Post #14





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Sugeruję lekurę:
- modele
- haki + zdarzenia
Go to the top of the page
+Quote Post
gothye
post
Post #15





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

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


phpion ok w modelu _parent łącze się z bazą , tworze model potomny auth w którym sprawdzam czy user jest zalogowany , a potem przekazuje dane do kontrolera ,dobrze ?
Go to the top of the page
+Quote Post

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: 3.10.2025 - 01:44