Eimantas
Spalis 24, 2006

MVC [II] - Procesas

Ankstesnio straipsnio (MVC [I] - Architektūra) tęsinys.
paprastai turi daug atmainų tačiau esminis procesas vyksta sekančiai:

  1. Vartotojas atlieka kažkokį veiksmą susijusį su GUI (pvz paspaudžia mygtuką);
  2. Kontroleris apdoroja šį veiksmą pagal nurodytą įvykių apdorojimo elementą (mol event handler);
  3. Kontroleris iškviečia modelį, kuris, turbūt, atlieka įvairius veiksmus su duomenimis (atnaujina registracijos informaciją, įdeda prekę į krepšelį ir pan.)
  4. Atitinkamas “vaizdas” naudojasi modeliu, kad sugeneruotu atitinkamai naują vartotojo sąsają (atvaizduoja naują registracijos informaciją, išmeta pranešimą apie į krepšelį įdėtą prekę).
  5. Vartotojo sąsaja laukia tolimesnių veiksmų iš vartotojo.


Jeigu šį procesą pritaikius RoR karkasui, gauname šią seką:

  1. Vartotojas kreipiasi tam tikru adresu į interneto svetainę (http://local.ruby.app.com/naujienos/sarasas);
  2. RoR karkasas pagal config/routes.rb failą (apie jį sukursiu atskirą įrašą) suranda atsakingą kontrolerį ir metodą su atitinkamais argumentais, kuris yra atsakingas už užklaustą adresą (app/controllers/news_controller.rb#List).
  3. Kontroleris kreipiasi į modelį (app/models/news.rb) norėdamas gauti duomenis, kuriuos perduoda “vaizdui”
  4. “Surenderina” atitinkamą “vaizdas” (app/views/news/list.rhtml) su duomenimis pateiktais iš modelio.
  5. Visas sugeneruotas html kodas yra pateikiamas vartotojui.

Jeigu į šį procesą žiūrėti nuo užklausos patiekimo serveriui, prisideda dar keletas punktų:

  1. Užklausa yra nusiunčiama /public/dispatch.cgi arba /public/dispatch.fcgi skriptui (priklausomai nuo serverio konfiguracijos. Skripte nurodoma surasti /config/environment, kuris savo ruožtu…
  2. …nustato sistemines konstantas (pvz, kaip RoR karkaso versiją), papildomus nustatymus ir…
  3. …per /config/boot bylą inicializuoja jūsų aplikaciją (skaityti aukščiau aprašytus penkis punktus);

Šiam kartui tiek. Vėliau pasistengsiu plačiau aptarti atskiras aplikacijos dalis: kontrolerius, modelius ir vaizdus.

Komentarai ir originalus straipsnis: http://blog.rubyonrails.lt/mvc-ii-procesas.html

Panašūs straipsniai


Komentarai uždrausti.