Tagged: symfony 1.2 RSS

  • Szabolcs Sulik 16:58 on 2009. 10. 25. Permalink | Válasz
    Tags: , sfEvent, sfEventDispatcher, , symfony 1.2, symfony 1.3   

    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.
     
  • Szabolcs Sulik 10:37 on 2009. 08. 23. Permalink | Válasz
    Tags: , , symfony 1.2,   

    symfony textarea widget érdekesség 

    Érdemes erre a widgetre odafigyelni, különben nem várt meglepetésben lesz részed. A textareaban megjelenő szöveget illik escapelni, erre tökéletes is lenne a htmlspecialchars függvény. Csakhogy a symfony nem pontosan ezt csinálja. Az sfWidgetFormTextarea::render() kicsit megpróbál tovább menni. A form framework jó pár widgetben használja az sfWidget::escapeOnce() metódust, itt azonban ez igen veszélyes.

    A kedves olvasóra bízom, hogy mi lesz az alábbi szöveggel, miután kétszer egymás után postolja az egy formon.

    <p>ez itt egy bekezdes</p> &lt;script&gt;alert(&quot;aaa&quot;);&lt;/script&gt;
     
  • Szabolcs Sulik 08:00 on 2009. 04. 05. Permalink | Válasz
    Tags: , , symfony 1.2   

    URL alapú szűrés symfony 1.2 admin generatorral 

    A probléma

    Symfony 1.0 admin generator alatta a lista nézet szűrése nagyon egyszerűen volt megoldva: az űrlapon megadott paraméterek GET-ként közlekedtek, maga a szűrés alkalmazása is a list actionben volt implementálva. Így máshonnan is könnyen használható volt, saját magunk által készített egyedi URLben is. Ez az új admin generator alatt most nem működik. Legalább is egyből nem, de mint látni fogjuk könnyen szóra bírható.

    (More …)

     
  • Szabolcs Sulik 19:55 on 2009. 03. 22. Permalink | Válasz
    Tags: , , symfony 1.2   

    Symfony 1.2 admin generator 

    Elöljáróban

    Ez már nem játék. :) Legalábbis nem teljesen. Elöljáróban megsúgom, annyira nem rossz a helyzet, mint korábbi cikkemben lefestettem. Az új admin generator egy nagyon rugalmas eszköz a kezünkben, amivel ha jól bánunk, mindenféle nagyobb hackelés nélkül teljesíti egyedi igényeinket is.

    Ott folytatnám, ahol a hivatalos dokumentáció abbahagyja, hiszen itt kezd érdekessé válni a dolog. Ehhez persze szükséges némi előképzettség. A dokumentációban leírtakat nem taglalom újra, azt tessék elolvasni szép angol nyelven. Feltételezem, hogy tisztában vagy az 1.0 admin generátorával, valamint ismered az új generator.yml és a generator template (theme) felépítését.

    Még egy megjegyzés: mivel Doctrine-nel dolgozom, így az itt leírtak is erős Doctrine függőséget fognak mutatni. Habár mindez (néhány különbséggel) teljesen így működik Propel alatt is.

    (More …)

     
  • Szabolcs Sulik 10:41 on 2009. 02. 06. Permalink | Válasz
    Tags: ellenőrzés, , , , , symfony 1.2, ,   

    symfony űrlapok további bővítési lehetőségei 

    Korábbi cikkemben bemutattam egy módszert, hogyan lehet részlegesen adatok validálni symfony formokkal. Most nézzünk meg további hasznos bővíŧési lehetőséget.

    3 új funkciót fogok megmutatni:

    1. űrlap kötése közvetlenül a kéréshez (bindRequest())
    2. űrlap kéréshez kötése részlegesen (bindRequestPartial())
    3. error séma beszerzése tömbként (getErrorsAsArray())

    Röviden nézzük végig egyesével és lássuk a kódot. :)

    (More …)

     
    • j. 12:12 on 2009. 03. 03. Permalink

      Helló!

      Szuper amit írsz továbbra is :)

      Az sfForm::convertFileInformation()-ban egy regex van, ami a

      static public function arrayToPaths($array = array(), $prefix = ”)

      statikus metódussal nyeri ki az adatokat feldolgozás előtt, szerintem ezzel te is ki tudod nyerni.

    • Sulik Szabolcs 17:15 on 2009. 03. 05. Permalink

      kosz

      Az sfForm::convertFileInformation()-ban egy regex van, ami …

      De miért tennék ilyet? Ha jobban megnézed ott két static metódushivás van. Pont ezt használja az sfForm is, ezért gondoltam hogy jó az nekem is.

      Egyébként érdekes, hogy enélkül az előzetes átalakítás nélkül képtelen felfogni a bind(), hogy ez tömb valóban egy FILES tömb akar lenni. Számomra ez rejtély.

    • j. 09:27 on 2009. 03. 06. Permalink

      Akkor csak félreértettelek, annyira nem néztem utána, csak segíteni akartam, hátha…de ezek szerint teljesen más volt a problémád. :)

  • Szabolcs Sulik 10:26 on 2008. 12. 31. Permalink | Válasz
    Tags: , , , symfony 1.2   

    Symfony 1.2 admin generator játék 

    Végül csak kipróbáltam, hiszen már 1.2.1-nél jár a rendszer. :) Nem lettem fiatalabb. :( Elöljáróban annyit, hogy kissé megbonyolították a dolgokat (több szinten is), és ez nem biztos, hogy a symfony javát szolgálja. De lássuk a szaftos részleteket.

    (More …)

     
    • 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!
      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? :D É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 :)

    • 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 :D

    • 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!

  • Szabolcs Sulik 22:03 on 2008. 12. 01. Permalink | Válasz
    Tags: jobeet, , , symfony 1.2   

    Symfony újdonságok: 1.2, Jobeet 

    Aki nem követné figyelemmel a symfony blogot: ma megjelent az symfony 1.2. Ahhoz képest, hogy elsősorban az admin generátor újraírást tűzték ki célul, sok mindennel jelentkezik az új kiadás. Az egyik legfontosabb a teljesen újraírt Routing Framework (mennyi framework a keretrendszerben :) ), amire erősen épít az új admin generator is. A formokat kicsit tovább pofozták, jól szétszedték a teszteléshez való komponenseket, valamint bekerült a Doctrine is a repertoárba (miután szept. 1-től náluk dolgozik a főfejlesztője csúnya lett volna ha nem). Személy szerint ez annyira nem dob fel, alapvetően ugyanazt tudja, mint a Propel, max kicsit másképp. Alapjaiban egyformák. Arra figyelj, hogy most már mindkettő PDO alapú. Ez tök jó, addig amíg nem akarja a rendszerben valami a modelt serializalni, mert azt bizony PDO-s dolgokkal nem lehet.

    Apropó routing. Ha van tapasztalatod az új rendszerrel, vagy a régivel :) kommentbe szivesen vennék néhány választ, miért zabál az sfPatternRouting::generate() annyi ramot? Nem sima oldaltöltésnél vehető észre, de ha mondjuk generálsz 5-10 ezer egyedi urlt (pl nagyobb mennyiségű levélküldés), akkor már nagyon kijön.

    Jobeet. Érdemes megtanulni ezt a nevet. Az új Askeet, ami valjuk be mára eléggé elavult. Ami nagyon pozitív benne, hogy jóval több akar lenni (és valszeg lesz is), mint összedobált kóddarabok összessége. Személetet próbál átadni (némi? symfony körítéssel), ami érdekessé teheti azok számára is, akik nem tudnak/akarnak/kívánnak symfony-val foglalkozni.

    Ha kedvem, időm engedi, megnézem az új routing renszert és admin generátort. Talán abból is kisül egy rövidebb írás. ;)

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
Megjegyzések elrejtése/mutatása
t
go to top
l
go to login
h
show/hide help
esc
mégse