![]() ![]() |
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 ?
|
|
|
|
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 ?
|
|
|
|
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ę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chodzi o to ze to są odrębne klasy i chciałbym zachoać odrębnoać ale w kazdej linijce pisanie global troche mi się nie widzi.
|
|
|
|
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:
|
|
|
|
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:)
|
|
|
|
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 |
|
|
|
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ć.
|
|
|
|
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 (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) . PHP ma całkowicie usunąć w przyszłości funkcję global z języka. |
|
|
|
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.
|
|
|
|
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ą (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ps. siedzisz dalej w PHP4 ? Ten post edytował em1X 13.02.2008, 16:49:51 |
|
|
|
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 |
|
|
|
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 (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
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 (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) 4) przykład:
Ten post edytował em1X 14.02.2008, 12:23:06 |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dobra przekonałes mnie. Postęp musi być (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Dzis w nocy zabieram się do analizy tego wszystkiego. Dzięki.
4 godziny później... Zrobiłem to według schematu. Wszystko działa jak należy:) Jesteś dziś moim bogiem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Jeszcze raz wielkie dzięki! i jeszcze... Tak apropo globalsów (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czy takie coś wchodzi w grę?
Ten post edytował Black-Berry 14.02.2008, 01:16:02 |
|
|
|
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?
|
|
|
|
![]() ![]() |
|
Aktualny czas: 3.01.2026 - 08:42 |