néhány kevéssé dokumentált symfony esemény
Korábban gondolkoztam rajta, hogy készítek egy írást a symfony eseménykezeléséről, összefoglalva, hogy melyik eseményt ki váltja mi és milyen listenerek vannak alapból. Aztán, ahogy telt az idő nem írtam semmit, illetve kijött a reference book, amelyben külön fejezetet szenteltek az események összefoglalásának.
Van néhány esemény, aminek nem szentelnek túl nagy figyelmet, pedig roppant hasznosak tudnak lenni. Ezek az admin genertároban találhatók:
- admin.pre_execute: minden admin action preExecute() metódusának végén értesít ki. Speciel ennek még nem láttam hasznát.
- admin.save_object: minden (admin generátor oldalon végzett) objektum mentés után értesíŧ ki. Nagyon hasznos minden olyan tevékenység elvégzésére, amely nem kötődik szorosan a modell osztályhoz, de meg kell történnie mentéskor (pl. cache ürítés, lucene index frissítés, …).
- admin.delete_object: minden (admin generátor oldalon végzett) objektum törlés előtt értesít ki. Hasonló előnyökkel kecsegtet, mint a mentésnél láttuk.
j. 13:56 on 2009. 01. 21. Permalink
Ez eléggé gázul hangzik…Én most szerettem volna kipróbálni az új admin generátort, de picit elment tőle a kedvem.
Sulik Szabolcs 18:05 on 2009. 01. 25. Permalink
Mindettől függetlenül próbáld ki. Ez csupán az én véleményem.
Az igazán érdekes az lenne, ha az új generátor osztályokról lenne valami írás. Lehet, hogy csak én nem találtam ilyet.
Emellett a “nagyon jó” dokumentáció úgy van felépítve (legalábbis egyre inkább úgy néz ki), hogy ők megcsinálják a rendszer összetevőit (értsd: generator, validator, factory osztályok, …) és te használd őket. Túl mélyen sehol sem mennek bele, mit is lehet belőle igazán kihozni.
Pl. az új routing rendszert bemutató első előadáson utalt Fabien arra, hogyan lehet a routing egy részét aldomainként használni. Erről kb ennyi jelent meg, sem a könyvben, sem a cookbookban nem írnak semmit valamiféle advanced felhasználásról.
j. 10:31 on 2009. 01. 26. Permalink
Köszi!
Én per pillanat azt látom járható útnak, hogy a Symfony által generált osztályokat (amiket a cache-ba létrehoz) átírom a saját számíze szerint
Arról nincs valahol doksi, hogy az admin generátorokat hogyan lehet kibővíteni saját osztályokkal? Pl. ha nekem nem jó az admin generátoros képfeltöltés, akkor azt hogyan tudom egyedi megoldásokkal kiváltani? Vagy bármi mást – tehát létrehozok egy konfig fájlt ami alapján az admin generátor működik, de van saját kódom is amit tetszőleges dolgokra írok…lehet ilyet?
Sulik Szabolcs 23:46 on 2009. 01. 26. Permalink
Így gyorsan belenézve a kódba az új generator nagyon hasonló a régi megoldáshoz, csak az új form rendszerre épül és amit lehet, azt áthelyezi a generator templateből (és config fileból) az adott module/lib alatti xyzGeneratorConfiguration osztály felelősségébe (pager beszerzés, egyes actionhöz tartozó engedélyek, filter form, form, …).
Ami neked kell azt a megfelelő form osztályban lehet elérni. A widget legyen sfWidgetFormInputFile (vagy leszármazottja), validator sfValidatorFile (vagy leszármazottja). Magát a logikát pedig a form::doSave() metódusban kell kifejteni.
Komolyabban még nem használtam az új admin generatort, ez csak egy kis játszadozás vele.
j. 16:31 on 2009. 01. 27. Permalink
Akkor rám is ez vár, játszodozok
j. 10:43 on 2009. 02. 02. Permalink
Ezt találtam hétvégén:
http://sandbox-ws.com/how-to-embed-forms-in-symfony-12-admin-generator
Semmi különös, de hasznos lehet másoknak is!