piątek, 27 lipca 2007

Czyszczenie ReqestParameter w Symfony

Zacznę od tego, że chciałem napisać prosty formularz, który przekierowuje użytkownika do odpowiedniego modułu w zależności od przesłanych danych. A to żeby wypełnił lub poprawił formularz lub otrzymał potwierdzenie wysłania maila. Zarazem nie chciałem uciekać się do sesji czy też pisania w bazie danych gdyż projekt był trywialnie prosty. Więc sobie wymyśliłem że zahashuję treść maila MD5 i zapiszę go w pliku a potem będe sprawdzał jego zawartość w razie wysyłania kolejnego maila. Gdyby się okazało, iż ktoś wcisnął magiczne F5 i przesłał dane ponownie, miało czyścić dane a skrypt widząc pusty bufor wykonałby domyślną akcję -- wyświetlił czysty formularz.
I tu się zaczynają schody. Po wielu perturbacjach i trzykrotnym wracaniu do API Symfony zdołałem nakłonić Symfony do wyczyszczenia danych przesłanych formularzem. Nie jestem jednak pewien efektów ubocznych w postaci czyszczenia danych z innego źródła.
Jako, iż widziałem wiele zapytań na ten temat w sieci jednak nie znalazłem żadnej sensownej odpowiedzi, umieszczę ten kawałek kodu tutaj.
Oto on:
$this->getContext()->getRequest()->getParameterHolder()->clear();

Mam nadzieję, że się wam ten kawałek kodu przyda. Bo mi by się napewno przydała lepsza dokumentacja Symfony ;). Niemniej jest to najfajniejszy framework jaki powstał na PHP.

Transmission ended.