![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 4.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Przyznam, że dopiero się uczę pisać obiektowo i na samym początku mam problem.... Chodzi mi o coś takiego jak globalny dostęp do obiektu (np połaczenie z baza, config, czy chociażby smarty) obiekty te muszą być dostępne w innych klasach np user, która zajmuje się użytkownikami. Jak patrzyłem na kod PHPBB3 to tam każdy obiekt potrzebny w danej metodzie jest poprostu globalny (global $smarty, $config) ale z tego co poczytałem to takie podejście jest "fuj":) Czytałem trochę o wzorcu Singelton ale nie wiem jak by go użyć obiektu w innej klasie Jak ktoś ma chwilke to niech odpisze:) |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że masz klasę Config, która jest realizacją wzorca Singleton oraz posiada metodę dostępową getInstance(). Jeśli chcesz w jakimkolwiek miejscu (w metodach innych klas również) pobrać ten obiekt to piszesz najzwyklej.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 4.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
dzięki
ale jeszcze taka sprawa jak korzystam z biblioteki smarty to nie mogę tego zrobić, chyba że przebuduje ich klase:) jest na to jakiś sposób? czy lepiej napisać swoje szablony:) |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 4.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem tak:
ServiceConfg:
i teraz klasa użytkownika:
i wyskakuje błąd: Fatal error: Call to a member function getVar() on a non-object in /home/hunki/ftp/html/hunki_eu/_hcms/include/class/users/GuestUser.php on line 20 coś chyba pochrzaniłem ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ale jak zrobisz sobie obiekt $objConfig to on nie jest globalny.
Za każdym razem kiedy chcesz z niego skorzystać to pobierasz:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 4.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
wywoływać w każdej metodzie taki kod: Jak Ci wygodnie. To już kwestia rozsądku.czy tworzyc właściwość w danej klasie i przez nią się odwoływac?? Jeśli korzystasz z tairgo obiektu w jednym, może dwóch miejscach to właściwość nie jest Ci potrzebna. Jeśli częściej to będzie wygodniej trzymać to we właściwości. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:22 |