![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie.
Jakiś czas temu zacząłem się zastanawiać nad łańcuchami. W OPB widziałem ActionChain, gdzieś indziej FilterChain i cały czas mnie zastanawia czy słowo łańcuch jest na miejscu, czy nie lepiej pasuje stos? Gdy rozrysowałem sobie przykładowy łańcuch wyglądał on tak: Kod Wpisz token -> Wypełnij formularz -> Wpisz kod aktywacyjny \ onError = break Domyślnie, kiedy akcja zwróci wartość true jest wywoływane kolejne ogniwo. Gdy zwróci false jest powtarzana. Atrybut onError mówi co zrobić, gdy wystąpi błąd. Tak więc wymyśliłem następujące zapisy: Kod onError = stop - zatrzymuje akcję (domyślnie) onError = back - poprzednia akcja onError = break - przerywa łańcuch Odwołania do danych, które zostały podane wcześniej można realizować poprzez sesję, w której zapisywane są wartości pochodzące z formularzy. Myślę też nad zastosowaniem czegoś na kształt beanów z javy, które byłyby przesyłane poprzez sesje. Moje pytanie brzmi, czy ktoś miał styczność z taką interpretacją łańcucha, czy istnieje jakaś inna nazwa na to (akcje wiązane?) i w końcu co o tym sądzicie? Zapraszam do dyskusji. :] |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@squid nie testowałem, to rozwiązanie jest cały czas w fazie projektowania. Fakt, użycie pamięci może skoczyć, ale przecież nie za każdym razem wszystkie beany będą używane. Myślę, żeby można było ustawić scope'a dla każdego, który pośrednio by definiował długość życia beana. To znaczy:
Kod scope=request --- tylko jedno rządanie scope=session -- sesja scope=application -- zserializowany obiekt zapisany w pliku Swojego rozwiązania nie nazywam stosem, ponieważ stos jest prosty nie można z jednego stosu wywołać drugiego, tzn. przerywam jeden ActionChain i zaczynam drugi. IMO FilterChain i ActionChain to nic innego jak stos z wzorcem kompozytu (?) gdzie idzie foreach - $item->execute();. Łańcuch ma przetrwać dłużej niż jeden request. Pośrednio chodzi o wykonywanie akcji w określonej kolejności, z tym, że jest ona definiowana w pliku konfiguracyjnym, a nie przez same akcje i fallbacki. Ten post edytował splatch 10.08.2005, 12:25:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 12:44 |