Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Referencja do klasy w innej klasie
.radex
post 8.02.2008, 11:05:51
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Witam. Piszę CMS'a i mam pewien problem:

Aby w kontrolerze mieć dostęp do wszystkich bibliotek itp. dodaję "extends Controller".

Zanim jednak "odpalę" kontroler, wczytuję bibliotekę URL (która jest klasą), żeby sparsować "przyjazne URL'e". Chciałbym mieć do niej dostęp w klasie Controller. Mógłbym zrobić to (chyba) tak:Controller::url = new URL();
Ale po co dwa razy wykonywać bibliotekę? No właśnie, bez sensu. Jak to obejść?

Pozdrawiam.

Ten post edytował radex_p 8.02.2008, 11:08:57


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
splatch
post 8.02.2008, 11:12:11
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


W twoim przypadku dziedziczenie jest jak najbardziej ok.

Zainwestuj we FrontController:
Core J2EE Patterns - Front Controller
WACT: Front Controller


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
.radex
post 8.02.2008, 11:24:52
Post #3





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


poradziłem sobie, ale w okropny sposób, więc zainteresuję się tym - przynajmniej czegoś nowego się nauczę winksmiley.jpg

Zrobiłem to tak:
w konstruktorze klasy Controller:

global $_cms;
$this->url = &$_cms->url;

Dzięki za podpowiedź.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Cysiaczek
post 8.02.2008, 11:31:11
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Hm. To nawet nie jest okropny sposób, jest wręcz niedopuszczalny. Gdybyś miał mi zdawać kod, to byś dostał niezły opieprz snitch.gif
Jeśli nie Front Controller, to jeszcze zawsze zostaje singleton, lub lepiej - rejestr, do którego wrzuć obiekt URL (albo dane, które produkuje).

Pozdrawiam


--------------------
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.
Go to the top of the page
+Quote Post
.radex
post 8.02.2008, 12:04:53
Post #5





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


hehe tongue.gif Dlatego też szukam lepszego rozwiązania.

Front Controller o ile dobrze rozumiem jest skryptem, który ładuje odpowiedni moduł (kontroler), no i coś takiego mam (no chyba, że to trochę inaczej). Natomiast rejestr "wygląda" nieźle, zobaczymy tongue.gif



EDIT:

Dzięki za podpowiedź - użyłem Singletona, bo z Rejestrami jest za dużo roboty.

Także podziękowania dla Athlana - http://athlan.vgroup.pl/singleton-registry-map/ winksmiley.jpg


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 9.05.2024 - 04:26