Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Context] Czy to taka konstrukcja nie łamie założeń?
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Wykombinowałem sobie żeby inicjalizacja Context'u wyglądała następującą:
  1. <?php
  2. $c = new Context();
  3. $c->Router(new Router());
  4. $c->Loader(Loader::createInstance()->setRouter($c->Router()));
  5. ?>
Czy nie łamie to ogólnie przyjętych zasad?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


@orglee, twoja implementacja nie jest zła, ale wyróżnij settery i gettery, bo teraz jest mało intuicyjne. Wg mnie - tego co czytałem i "co czuję" (mam nadzieję, że rozumiesz o co mi chodzi przez to) - kontekst jest bardzo świadom siebie i tego co trzyma wewnątrz (wtedy metody proxy mają sens). A tak masz bardziej rejestr (bo co stoi na przeszkodzie, żeby kontekst trzymał wyspecjalizowany obiekt rejestru?). Pamiętaj także, że kontekst nie służy tylko jako kontener dla obiektów, może też udostępniać wyspecjalizowane metody zależne od aplikacji, którą piszesz.

@phpion, a dlaczego powinien być singletonem? Co jak co, ale dzięki kontekstowi zapobiega się tworzeniu singletonów z obiektów loggera, database managera, czy routera. Po co więc to psuć?
Wiem, że kontekst w symfony jest tak zbudowany, ale mi osobiście nie zdarzyło się jeszcze korzystać z tego.
Dzięki IoC mam kontekst tam gdzie być powinien i nigdzie więcej. Jako przykład podam formularze w sf i referrera. Mnóstwo (znakomita większość) tutoriali podaje jako rozwiązanie pobranie contextu z singletona wewnątrz formularza, a następnie wyciągnięcie z requesta stringa z referrerem. Podczas, gdy IMHO najczystszym i najbardziej przenośnym (czyli mógłbym użyć formularza poza sf) rozwiązaniem byłoby zapodanie referrera w options formularza[edit], lub bezpośrednie ustawienie wartości pola. Sęk w tym, żeby zrobić to w akcji, tam gdzie mam kontekst udostępniony[edit].

Singleton jest dla leniwych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@orglee, pamiętaj, że to tylko wskazówki - jeżeli działa teraz, to znaczy, że jest dobrze, jeżeli nie działa - wtedy miałem rację ;P

Pozdrawiam, Alan

Ten post edytował LBO 7.06.2009, 21:58:39
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 16.10.2025 - 09:22