![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
O jakie zasady ci chodzi?
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Chyba context powinien być singletonem więc konstrukcja new Context nie powinna się pojawić
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
O jakie zasady ci chodzi? Chociażby właśnie o to co napisał phpion ![]()
|
|
|
![]()
Post
#5
|
|
![]() 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 ![]() @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 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Cytat A tak masz bardziej rejestr (bo co stoi na przeszkodzie, żeby kontekst trzymał wyspecjalizowany obiekt rejestru?) IMHO Nawet jeśli przekażesz rejestr do jakieś klasy to nie uczyni z niego kontekstu, a to że składuję obiekty w tablicy nie zmienia Context'u w rejestr. ![]() Co masz na myśli jeśli chodzi o wyróżnienie settera i gettera? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Co masz na myśli jeśli chodzi o wyróżnienie settera i gettera?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Aha już rozumiem. Pozostanę jednak przy mojej wersji. W miarę jak projekt będzie się rozrastał i będę dodawał nowe klasy do Context'u będzie zwiększać się też ilość metod. Przy 12 różnych obiektach to jest 12 dodatkowych metod. Standardowe nazewnictwo setterów i getterów stosuję tylko przy typach prymitywnych i jeśli ustawiam lub pobieram bliżej nieokreślony obiekt.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zwięzły, ale treściwy artykuł na temat kontekstu w SF. Poruszany tam problem miałem nawet okazję skomentować kilka postów wyżej
![]() [...] @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. [...] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:24 |