Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] "configurator:" (dyrektywa service container)
koszykarze
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


w How to Configure a Service with a Configurator jest przykład pokazujący zastosowanie configurator.

ale nie pojmę o co w tym wszystkich chodzi póki nie zrozumiem jaka jest w tym rola metody EmailFormatterManager::getEnabledFormatters() tj co miałoby się znajdować w tablicy $enabledFormatters ? I kiedy i jak miałbym tę tablicę zapełnić? Bo ona miałaby być budowana dynamicznie w trakcie działania programu, ale co to miałyby być za dane.

(ja rozumiem, że to nie jest niezbędny element tej konstrukcji, ale zrozumienie tego szczegółu pomoże mi zrozumieć całość)


generalnie w tym chodzi o to, że w efekcie usługa automatycznie, na dzień dobry ma wypełnioną swoją właściwość danymi? Takie trochę factory, tak?

Ten post edytował koszykarze 31.07.2016, 20:30:07
Go to the top of the page
+Quote Post
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Cytat
ale nie pojmę o co w tym wszystkich chodzi póki nie zrozumiem jaka jest w tym rola metody

Zawsze tak rozpatrujesz każdy element przykładu?

Cytat
Takie trochę factory, tak?

Tak, tylko bez tworzenia obiektu.
Go to the top of the page
+Quote Post
koszykarze
post
Post #3





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


Cytat(destroyerr @ 1.08.2016, 08:36:37 ) *
Zawsze tak rozpatrujesz każdy element przykładu?


jeśli oficjalna dokumentacja tłumaczy coś generalnego na podstawie życiowego przykładu to lepiej jeśli zrozumiem co jest w tym życiowym przykładzie niezbędne a co dodatkiem.

Po prostu głowiłem się cóż to ma być za specjalnie dostarczana konfiguracja z różnych źródeł. Już wiem, że to może być byle gówno.




------------------
takie se notatki zrobiłem:

# c.- dyrektywa w serv. cont. w której podaję metodę innej klasy dzięki której automatycznie, na dzień dobry mam wypełnioną danymi właściwość tworząc serwis (wszystko jest decoupled i dynamiczne)
# implementacja. Występują 3 komponenty. Klasa posiadająca dane. Klasa (klasy) potrzebująca danych. Klasa Konfigurator pośrednicząca w dostarczeniu dancyh.
# ... - Klasa posiadająca dane. ta klasa jest odpowiedzialna za przygotowanie danych które otrzyma serwis. Nie ważne jak (dynamicznie na podstawie konfiguracji), skąd i kiedy
#......ważne by miała jedną, niezmienną metodę, którą mogę odebrać przygotowane dane.
# ... - Klasa potrzebująca danych. ta klasa ma jakąś swoją funkcjonalność i jedną niezmienną metodę odbierającą dane i przypisującą je do właściwości.
# ... - Klasa Konfigurator. ona jest kluczowa, i niezmienna. posiada metodę która pośredniczy w dostarczeniu danych. To tę metodę wywołuję w dyrektywie ''configurator''
# ...- każda z powyższych klas ma zdefiniowaną usługę.
# ... - każda usługa tworzona jest automatycznie, w łańcuchu wywołań, bo usługi wywołują się automatycznie dyrektywami ''arguments'' i ''configurator''
# zalety. - (decouple) mógłbym to wszystko robić bezpośrednio w klasie która potrzebuje dane, ale wtedy byłbym sztywno powiązany.
# ....dzięki temu mam czystą implementację usługi niezależną od obiektów dostarczających konfigurację
# ...- gdy mam serwis który potrzebuje skomplikowanych ustawień na podstawie danych konfiguracji z różnych źródeł, serwisów.
# ...- gdy mam wiele obiektów dzielących wspólną konfigurację
# w efekcie. - używam w projekcie dowolnie metod serwisu nie martwiąc się jak i kiedy zostanie wypełniony danymi, a później w trakcie działania programu,
# .....np na podstawie danych z konfiguracji ustawiam dane w oddzielnej klasie. Grunt by zapewnić by jedna metoda tej klasy dostarczała dane.

Ten post edytował koszykarze 1.08.2016, 08:51:49
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 18:54