Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Łańcuchy akcji
splatch
post
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. :]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
splatch
post
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
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 12:44