php.lv forumi: Interesanta diskusija par MVC - php.lv forumi

Jump to content

Noteikumi

Šai forumā ikkatrs reģistrēts lietotājs var ievietot sevis atrastu ziņu no plašajiem internetiem vai arī paša sacerētu rakstu par un ap šo forumu tematiku. Lai nesāktos bardaks, katra jauna temata pievienošana tiks moderēta.

Pievienojot saiti uz kādu citur esošu raksti, ir vēlams ir gana plaši izteikties par raksta saturu jau savā ierakstā, nevis aprobežoties tikai ar saiti. Tas ļaus cilvēkiem izvērtēt informācijas aktualitāti un lieki nezaudēt laiku, provējot atvērt linku un iepazīties ar to, kas tur rakstīts.
  • (3 Pages)
  • +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic

Interesanta diskusija par MVC Rate Topic: -----

#1 User is online   Aleksejs 

  • code ex machina
  • PipPipPipPipPip
  • Group: Moderatori
  • Posts: 4,297
  • Joined: 2003.04.05

Posted 2010.01.29 00:45

http://www.sitepoint...ad.php?t=657103
http://tinyurl.com/web-aplikaciju-izstrade Web Aplikāciju Izstrāde - publisks čats skaipā latviešu valodā.
http://www.twitter.com/AleksejsZ
http://viednis.lv - jautājumi un atbildes pa tēmu

#2 User is offline   briedis 

  • Sawļe
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,862
  • Joined: 2005.01.15

Posted 2010.01.29 00:54

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" :(
Neturi zināšanas zem pūra!

#3 User is offline   marcis 

  • Programmēšanas meistars
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,496
  • Joined: 2007.06.27

Posted 2010.01.29 16:49

Iesākumam ļoti labi derēs CodeIgniter. Bagāža arī nav nekāda lielā.

#4 User is offline   briedis 

  • Sawļe
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,862
  • Joined: 2005.01.15

Posted 2010.01.29 17:54

View Postmarcis, on 2010.01.29 16:49, said:

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 :)
Neturi zināšanas zem pūra!

#5 User is offline   briedis 

  • Sawļe
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,862
  • Joined: 2005.01.15

Posted 2010.01.30 14:05

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?
Neturi zināšanas zem pūra!

#6 User is offline   Kaklz 

  • Programmēšanas meistars
  • PipPipPipPip
  • Group: Moderatori
  • Posts: 1,045
  • Joined: 2003.02.18

Posted 2010.01.30 14:17

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.
Ja nav nekā prātīga, ko rakstīt, neraksti neko. Pietaupies kādai sakarīgākai atbildei ;)

#7 User is offline   briedis 

  • Sawļe
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,862
  • Joined: 2005.01.15

Posted 2010.01.30 14:43

View PostKaklz, on 2010.01.30 14:17, said:

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)?
Neturi zināšanas zem pūra!

#8 User is offline   rATRIJS 

  • Es programmēju HTML
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 848
  • Joined: 2008.11.23

Posted 2010.01.30 15:01

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);
	}
}

This post has been edited by rATRIJS: 2010.01.30 15:01

Te ir ļoti elegants uz zinošs paraksts kas uzspridzina tavu prātu!!!

#9 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.01.30 18:10

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...

This post has been edited by 2easy: 2010.01.30 19:02


#10 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.01.30 21:11

View Postbriedis, on 2010.01.30 14:05, said:

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! ;)

#11 User is offline   briedis 

  • Sawļe
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,862
  • Joined: 2005.01.15

Posted 2010.01.30 23:42

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...
Neturi zināšanas zem pūra!

#12 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.01.31 00:05

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

This post has been edited by 2easy: 2010.01.31 00:20


#13 User is offline   briedis 

  • Sawļe
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,862
  • Joined: 2005.01.15

Posted 2010.01.31 01:01

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 ;)
Neturi zināšanas zem pūra!

#14 User is offline   2easy 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 2,006
  • Joined: 2009.10.02

Posted 2010.01.31 01:11

pagaidi tik kad pamodīsies Web Developer un Java :D:D:D

#15 User is offline   briedis 

  • Sawļe
  • PipPipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 1,862
  • Joined: 2005.01.15

Posted 2010.02.01 22:35

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ī?
Neturi zināšanas zem pūra!

Share this topic:


  • (3 Pages)
  • +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic