![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Czy we wnątrz klasy mogę użyć zewnętrzny obiekt bez konieczności używania deklaracji public ?
-------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#2
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Może dziedziczenie?
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
nie ma innego sposobu ?
-------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#4
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
no tak ale wtedy za kazdym razem bede musiał tworzyc nowy obiekt a to mi ma ułatwić sprawę
![]() -------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#6
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Możesz jeszcze przekazywać obiekt do metody.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 240 Pomógł: 13 Dołączył: 1.06.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Czy we wnątrz klasy mogę użyć zewnętrzny obiekt bez konieczności używania deklaracji public ?
A co złego w tym:
-------------------- Good programming is 99% sweat and 1% coffee.
Make it idiot proof and someone will make a better idiot... |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@LonelyKnight MAsz u mnie piwo:)
-------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#9
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Dodam że singleton jest porównywany z globalami tylko w ładniejszym opakowaniu.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
po prostu napisz sobie jakiś obiekt podstawowy, który wszystkie inne klasy będą rozszerzać.
i w następnych klasach nie będzie problemów:
Ten post edytował em1X 13.02.2008, 12:13:07 -------------------- eh, co polska wódka to polska wódka
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@webdicepl Tak sobie myślę... że skoro różnica ma polegać tylko na opakowaniu to już chyba zostanę przy "globalach" i przy kazdym wywołaniu $db dopiszę sobie to global. Nie chcę za dużo komplikować.
-------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#12
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Tak jak Ci mówiłem, tu najlepszym rozwiązaniem będzie dziedziczenie. I tak w metodach używasz funkcji z klasy DB, więc będzie ona nierozłączną częścią Twoich klas.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
@webdicepl Tak sobie myślę... że skoro różnica ma polegać tylko na opakowaniu to już chyba zostanę przy "globalach" i przy kazdym wywołaniu $db dopiszę sobie to global. Nie chcę za dużo komplikować. Używanie globali jest bardzo nieeleganckie, bardzo niepraktyczne i świadczy o niskim poziomie programisty ![]() -------------------- eh, co polska wódka to polska wódka
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem, W takim razie zrobię tak jak sugerujesz. Obiekt główny i dziedziczące po nim wszystkie inne. To lepszy sposób niż SINGLETON ? Jak uważacie. Zależy mi na dobrym profesjonalnym i przyszłościowym rozwiązaniu, tak żebym mógł pozniej do sterownika bazy dopisać np cache.
-------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Zauważ, że jeżeli będziesz chciał wprowadzić jakieś modyfikacje do sterownika bazy danych to zrobisz to zupełnie niezależnie od systemu.
Myślę, że rozsądnie jest użyć Singletona w przypadku obsługi bazy danych. Masz wtedy pełną kontrolę nad tym połączeniem z bazą. Ale też (w przypadku innych klas) z nim nie przesadzaj, ostatnio jakaś taka dziwna moda jest na walenie tego Singletona w każdą klasę, gdzie popadnie, a przecież przeważnie ten Singleton wcale nie jest w niej potrzebny. A więc z głową wszystko, z głową ![]() ps. siedzisz dalej w PHP4 ? Ten post edytował em1X 13.02.2008, 16:49:51 -------------------- eh, co polska wódka to polska wódka
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tak, jakoś tak wyszło, że zaczynałem w PHP4 i się go trzymam. Wiem, że wychodzi już z użycia i nie ma sensu tego ciągnąć, a co do pełnej obiektowości to trochę ona do mnie nie przemawia. Wiem, ze teraz moda na obiekty i wogóle ale kiedy to wszystko się zaczynało to klasa znaczyła grupę obiektów i nikt nie budował całej klasy dla tylko jednego obiektu. Moim zdaniem to trochę nadużycie ale pewnie nie idę z duchem czasu... ale nie o tym:
Przyszło mi do głowy jeszcze jedno rozwiązanie. Co o nim myślicie?
Ten post edytował Black-Berry 13.02.2008, 21:04:50 -------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
1) Bez sensu.... i skończ z tym globalem w końcu
![]() 2) Napisałem Ci jak poprawniej to powinno wyglądać: http://forum.php.pl/index.php?showtopic=87...rt=#entry441695 Możesz sobie tylko zamienić metodę getDB() na np. query(), która będzie wykonywać zapytania SQL. 3) Poczytaj jak wyglądają klasy w PHP5. Stwarzają masę nowych możliwości. Ludzie jeżdzą samochodami, a Ty dalej razem z Flinstonami na kwadratowych kołach jedziesz ![]() 4) przykład:
Ten post edytował em1X 14.02.2008, 12:23:06 -------------------- eh, co polska wódka to polska wódka
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
![]() ![]() 4 godziny później... Zrobiłem to według schematu. Wszystko działa jak należy:) Jesteś dziś moim bogiem ![]() i jeszcze... Tak apropo globalsów ![]()
Ten post edytował Black-Berry 14.02.2008, 01:16:02 -------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 2 Dołączył: 27.03.2007 Skąd: Sufczyn Ostrzeżenie: (0%) ![]() ![]() |
Lepiej by było jakby te db_host, db_user i password były stałymi. Nie miałbyś problemy z ich dostępnąścią w klasach, bo stałe mają widoczność globalną.
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Może tak jednak nie globale i stałe, a jakiś obiekt konfiguracji?
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 05:17 |