Aleksejs Posted January 28, 2010 Report Share Posted January 28, 2010 http://www.sitepoint.com/forums/showthread.php?t=657103 Quote Link to comment Share on other sites More sharing options...
briedis Posted January 28, 2010 Report Share Posted January 28, 2010 Jēj, paldies :) Tuvākajā laikā arī ķeršos klāt MVC praktizēšanai :) Pagaidām tik vairākus rakstus esmu lasījis. Vienīgi, laikam sākumā mēģināšu pats savu mvc ietvaru izveidot, vismaz, lai rodas kāda sapratne no pamatiem, un saprotu ko īsti man vajag. Negribas uzreiz ņemt kādu gatavu ietvaru dēļ lielās "bagāžas" :( Quote Link to comment Share on other sites More sharing options...
marcis Posted January 29, 2010 Report Share Posted January 29, 2010 Iesākumam ļoti labi derēs CodeIgniter. Bagāža arī nav nekāda lielā. Quote Link to comment Share on other sites More sharing options...
briedis Posted January 29, 2010 Report Share Posted January 29, 2010 Iesākumam ļoti labi derēs CodeIgniter. Bagāža arī nav nekāda lielā. Nu jā, codeigniter būtu manas izvēles augšgalā, pēc atsauksmēm :) Quote Link to comment Share on other sites More sharing options...
briedis Posted January 30, 2010 Report Share Posted January 30, 2010 Vienu lietu es nevaru saprast - kā īsti atškiras kontrolieris no modeļa. Nu, cik lasīju, controlieris ir kā sākumpunkts, kur visas kondīcijas atrunātas un attiecīgi tiek izsaukts modelis, kas iegūst datus no db un izsauc skatu, kas attēlo iegūtos datus. Bet, kur notiek skata izsaukšana? Controlierī vai modelī? Domāju veidot kādu primitīvu ietvaru sev, un realizēt to taisos tā, ka ir controlieris, kas ir index fails, uz kuru visi pieprasījumi nāk, un attiecīgi, es nosūtu uz atbilstošo modeli (piem, raksts, galerija, viesugrāmata), kur arī atkarībā no citiem padotajiem datiem notiek loģika, datu iegūšana no db. Tad no modeļa attiecīgi parādu skatu. Vai esmu sapratis pareizi? Quote Link to comment Share on other sites More sharing options...
Kaklz Posted January 30, 2010 Report Share Posted January 30, 2010 Kontrolieris ir tas, kas apstrādā ievaddatus un izdomā, ko darīt tālāk - Kādus modeļus tieši darbināt un vai vispār ir nepieciešams rādīt kādu skatu, vai, piemēram, vienkārši izveikt redirektu uz citu lapu. Quote Link to comment Share on other sites More sharing options...
briedis Posted January 30, 2010 Report Share Posted January 30, 2010 Kontrolieris ir tas, kas apstrādā ievaddatus un izdomā, ko darīt tālāk - Kādus modeļus tieši darbināt un vai vispār ir nepieciešams rādīt kādu skatu, vai, piemēram, vienkārši izveikt redirektu uz citu lapu. Tātad, kontrolieris apstrādā datus, un izsauc no modeļas kaut kādas attiecīgās metodes, vai tur dzēst, pievienot utt (nu modelis pats par sevi satur pamatā funkcijas)? Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted January 30, 2010 Report Share Posted January 30, 2010 (edited) Jup :) Kontrolieris pasaka ko darīt, ko renderēt. Modelis dara visu ar datu manipulācijām (saglabā DB, veic pārveidojumus). Skats, dara ko jau skati dara :) class ArticleController extends Controller { public function index() { $this->articles = Article::all(); render_template("index"); } public function create() { $this->article = new Article($_POST); $this-article->create(); redirect_to(ROOT_PATH); } } Edited January 30, 2010 by rATRIJS Quote Link to comment Share on other sites More sharing options...
2easy Posted January 30, 2010 Report Share Posted January 30, 2010 (edited) model - sql - izpilda darbības ar objekta datiem: SELECT,INSERT,UPDATE,DELETE. hmm, tā kā dati var būt arī bilde, tad tomēr sanāk, ka modeļa pārziņā ir ne tikai db, bet arī failu sistēma view - html - izveido objekta vizuālo noformējumu, kuru vai nu echo (directly vai indirectly) vai return atpakaļ, lai to echo kāda cita funkcija. view funkcijas inputā saņem datus no modeļa. tipa modelī bija SELECT, un šo mysql result tgd padod view, lai tas sabāž datus html tagos. turklāt vieniem un tiem pašiem datiem var būt vairāki view controller - centrālā loģika, kas apvieno/izmanto abus model & view. pieņem lēmumu, ko darīt ar pašreizējo request (un dara tā :D) lūdzu, palabojiet/precizējiet, ja es kļūdos, jo es patiesībā neesmu izlasījis teoriju, kas ir mvc :D (kr4 es šito tikai mācos) es šo pašu ideju realizēju procedurāli bez oop. koda organizēšana moduļos (līdzīgas funkcijas, kas specializējas uz savu darbu) jau no tā nemainās... Edited January 30, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
2easy Posted January 30, 2010 Report Share Posted January 30, 2010 Domāju veidot kādu primitīvu ietvaru sev, un realizēt to taisos tā, ka ir controlieris, kas ir index fails, uz kuru visi pieprasījumi nāk, un attiecīgi, es nosūtu uz atbilstošo modeli (piem, raksts, galerija, viesugrāmata), kur arī atkarībā no citiem padotajiem datiem notiek loģika, datu iegūšana no db. Tad no modeļa attiecīgi parādu skatu. tā arī var darīt. galvenais funktieris visā tajā ir izveidot applikācijas arhitektūru tā, lai tev pašam būtu ērti strādāt. un tu varētu efektīvi veikt izmaiņas, izstrādāt, uzturēt, etc. vnk vajag uztaisīt pietiekami noderīgas funkcijas, kuras vari pielietot atkārtoti. piemēram, modeļa funkcija, kas selektē produktu sarakstu/katalogu pēc dažādiem filtriem. šādu funkciju var izsaukt gan frontend, gan cms, lai saņemtu vajadzīgos datus. šajā gadījumā ieguvums ir tāds, ka sql ir centralizēts. tb sql selekti nav izmētāti pa visiem failiem kur nu kurais, bet atrodas modelī. līdz ar to šādu applikāciju ir vieglāk uzturēt un ieviest tajā izmaiņas. pēc līdzīga principa taisa arī view funkcijas. ja kādus datus vajag parādīt, tad tam ir speciāla funkcija. un ja kkur citur to pašu vajag parādīt tad izsauc šo funkciju, nevis kopē to pašu html/php vēl kādā failā. thats it. so simple! :)) protams, tur vēl var būt visādas nianses, bet vismaz pamatpricincipi tiešām ir that simple mvc ir tikai viens veids, kā to darīt. taču tas nenozīmē, ka tas ir vienīgais un pareizākais un labākais. tas vnk ir krutāk nekā tad, ja tev vsp nebūtu nekāda applikācijas uzbūve. mvc fani tūlīt man bruks virsū par to, ka atļaujos atzīt alternatīvu viņu reliģijai :D but im rdy! ;) Quote Link to comment Share on other sites More sharing options...
briedis Posted January 30, 2010 Report Share Posted January 30, 2010 Es te štukoju, moš pludināt modeli kopā ar kontrolieri? :) Kādi būtu "pret" apgalvojumi? Par būtu, ka nebūtu vēl viens papildus fails, pa kuru būtu jārakājas, lai saprastu, kas notiek... Quote Link to comment Share on other sites More sharing options...
2easy Posted January 30, 2010 Report Share Posted January 30, 2010 (edited) vai tas ir mīnuss vai pluss, tas ir subjektīvi, bet ja "biznesa loģika" vai vnk konkrētā objekta loģika (darbības ar datiem) inputu ņemtu pa tiešo no interfeisa, tb no $_GET/$_POST, nevis no modeļa funkcijas argumentiem, tad tā vnk būtu mazāk modulāra. tas arī viss savukārt ja vienas un tās pašas moduļa & kontroliera funkcijas ieliek vienā failā, tad web applikācijas arhitektūra pēc būtības vsp nemaz nemainās. vnk fiziskie moduļi (faili) kļūst par loģiskajiem moduļiem (viena faila daļām). tāpēc vien no tā uzreiz nekāds mīnuss nerodās. jāskatās kāda ir visa applikācijas uzbūve kopumā, lai novērtētu vai tas ir pluss vai mīnuss P.S. pēc būtības visa šī cīņa ir tikai ap to, kā sakonkatenēt stringu no <html> līdz </html> (ok, no doctype līdz </html>) un pēc tam to outputot (echo). jo weblapa ir vnk strings!!! tik vnkārši :)) (kas gribēs piesieties, varēs pateikt, ka ir arī images,css,js un citi ārējie resursi) viss grozās ap to, kā šo stringu iegūt un kā savākt datus, ko tajā iebāzt. + vēl arī izpildīt objekta pamatdarbības pievienot/mainīt/dzēst (form post). lai šīs vnkāršās lietas izdarītu, tiešām nevajag domāt sazin kkādas super mega arhitektūras. kiss Edited January 30, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
briedis Posted January 30, 2010 Report Share Posted January 30, 2010 Nu tā, pāris stundas un esmu uzmetis v1.0 savam ietvaram :D Moš rīt sapakošu un iedošu uzmest aci, kas man te sanācis. Gribētu kādu kritiskāku vārdu uzklausīt ;) Quote Link to comment Share on other sites More sharing options...
2easy Posted January 30, 2010 Report Share Posted January 30, 2010 pagaidi tik kad pamodīsies Web Developer un Java :D:D:D Quote Link to comment Share on other sites More sharing options...
briedis Posted February 1, 2010 Report Share Posted February 1, 2010 Tā, taisu modelī funkciju, kas pievieno jaunu lietotāju. Kur īsti man pārbaudīt, vai lietotāja vārds atbilst standartiem - modelī vai kontrolierī? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.