Jump to content
php.lv forumi
Sign in to follow this  
codez

Kā uzrakstīt vienkāršu MVC Framework-u

Recommended Posts

hmm, šķiet, ka vispirms vajag izdomāt kārtīgi, kādas nākotnē varētu būt vēlamās iespējas un tad arī sākt kodēt lapu (vai arī jāpieturas pie kāda stila, lai nākotnē varētu vienkārši ko papildināt?). It kā jau parasti lapā ir tādas lietas, kas nemainās, bet gan tādas, kas kādā brīdi nav vajadzīgas. Laikam sanāk, ka iekš programmēšanas arī pastāv liekvārdība ^^ Laikam jau nav tā unikāla struktūra, pie kuras pieturās visi lapu izstrādātāji? ;\ Man no šīm lietām izpratne vēl ir tikai aptuvenu domu līmenī, tāpēc sorry, par dumiem teikumiem ^^

 

btw, es daru tā, ka kkādi dizaina elemnti man glabājas manīgajos.. Piemēram $panel = 'stils pirms {PANEL_CONTEN} stils peec'; Pēc tam inklūde uz theme failu un tad str_replace funkcija, lai ieliktu saturu.. Kā ir darīt labāk? Redzot šos piemērus sāk likties, ka manai pieejai nav jēgas :\

Edited by ezis

Share this post


Link to post
Share on other sites

Neklausies mefisto, kamēr viņs tukši muld un nav parādījis savu "labo" piemēru.

MVC ir web aplikācijas struktūras paterns un šo paternu var realizēt simtiem veidos.

Vislabāk ir izpētīt vairākus populārākās opensource MVC FW struktūras, lai saprastu ka var dažādas lietas realizēt dažādi un izvēlēties sev un projektam piemērotāko realizācijas veidu.

Šijā topikā demostrētais piemērs ir veidots tā, lai tajā būtu realizēta MVC paterna būtība un nebūtu nekā lieka, lai vieglāk uztvert un pēc tam vieglāk apgūt arī masīvos MVC freimworkus.

Share this post


Link to post
Share on other sites

Nu idejiski it kā jā.. Viss liekās saprotami. Izveidojam saturu, tad to liekam lietotājam redzamā izskatā. Bet ir visādi piņķerīgi sīkumi. Laikam tiešām jāsāk ar to, ka jāizvērtē, ko es gribu panāk un kādas nākotnē būtu vajadzības +/-. Tad ar laiku papildināt - kādas problēmas? Problēmu nav. Ja būtu jāizveido kkāds CMS ar Freimiem priekš lietotāja, ar super viegli saprotamu interfeisu, tad gan būtu sāpe.. ^^

 

Tā jau laikam sanāk, ka vienu lietu var panākt dažādos veidos, viss atkarīgs no vēlamā rezultāta un darītāja. Jāmēģina vairāk praktiski pašam veidot + palasīties materiālus par līdzīgām tēmām. Ir jau nācies papētīt gatavos pieejamos skriptus, bet vienīgais, ko izmantoju no tāda veida bezmaksas materiāliem ir db klase un tās komponenti.

Share this post


Link to post
Share on other sites

tātad cik es iesācējs saprotu, tad šitas MVC ir kkas tāds, es uztaisu headeri, menu footeri un body`ju un varu mainīt visu kas stāv viņā iekšā ja?

Share this post


Link to post
Share on other sites

Nē, MVC ir plašāk par header un footer weblapā.

Nozīmē to, ka kods tiek strukturizēts 3 daļās

- model - datu apstrādāšanas loģika (galvenokārt darbošanās ar datubāzi, bet ne tikai)

- view - kā to vizuāli attēlot (weblapas gadījumā ar html saistītās lietas, bet tikpat labi tas var būt jebkāds cits ui)

- controller - darbības, ko darīt, kad useris prasa to vai šito, salīmē kopā vienu vai vairākus modeļus un view daļu.

 

Vari domāt arī ka model un view daļas ir bloki(ķieģeli, detaļas), kurus izmantojot controller'ī apraksti biznesa loģiku.

biznesa loģika ir augsta līmeņa 'instrukcijas' - piem, ja useris pareizi aizpildījis formu, saglabāt viņu, aizsūtīt emailu un parādīt lapu ar apsveikumu par reģistrēšanos.

Kā īsti pārbaudīt vai pareizi aizpildījis formu, kā saglabāt, kā sūtīt emailu un kā userim parādīt html lapu attiecas uz model un view (uzmini nu kura darbība kurai daļai :p)

Rezultātā programmējot vari koncentrēties vai nu uz bloku veidošanu (un neuztraukties par biznesa loģikas lietām) vai biznesa loģiku (un nezutraukties kā bloki izdara to, ko viņi dara).

Liels uzdevums sadalās mazākās daļās un slāņos, katra daļa kļūst vieglāk pārskatāma un tādu var kārtīgāk uztaisīt - mazāk kļūdu, mazāk atkārtošanās un makaronu kodi, un visi laimīgāki.

Share this post


Link to post
Share on other sites

sapratu to, ka neko nesapratu

Mazāks juceklis kodā un vieglāk pēc tam operēt. Lietas ir atdalītas viena no otras.

Edited by ezis

Share this post


Link to post
Share on other sites

Vēl viens pierādījums, ka MVC pielietošana PHP ir overrated buļļa kaka, jeb kārtējais "omg awesome" izgudrojums no 1000000 un viena koda patterna. :) Pašlaik klusi lūdzu koda dievus, ka šis patterns paliks tikai freimworkos un visādos citādos kakšos un nekļūs par web komercindustrijas praksi. Galvenokārt tamdēļ, ka lai gan ideja ir laba un saprotama, izpildījums tieši PHP vidē ir vienkārši fcuked-up.

 

 

:*

Share this post


Link to post
Share on other sites

unsuccessful troll is unsuccessful

 

 

F3llony,

1)Kāds paterns tavuprāt labāk lietojams web aplikāciju pamatstruktūrai, kas tās izstrādā ar PHP?

2)Kura tieši MVC patterna realizācija ar PHP tev šķiet "fucked up", tādu ir simtiem?

Share this post


Link to post
Share on other sites

Skaļi un skarbi vārdi liecina par vājiem argumentiem. =]

Share this post


Link to post
Share on other sites

Šoreiz es pat necentos troļļot. MVC savai popularitātei jāpateicas tikai popkultūras freimworkiem un populārajiem CMS kur jamais tiek izmantots. Bet ir 101 cita arhitektūra, kas pat labāk veic savus pienākumus, piemēram SupCon, DCI un vel vesela kaudze arhitektūru lai gan es pieturos pie "sava stila" jeb mans PHP pārsvarā ir SOOP kontroliera modelis ar šādu pašu loģisko plūsmu, bez atsevišķiem kontrolieriem un izmantojot sublevel api kā arī statiskos punktus, kā arī, tas ko es dēvēju par LDOLC jeb Loghic Dynamic Object Loader and Controller. Basicly tas ir viens master kontrolieris kas pēc loģikas un arhitektūras nepieciešamības izsauc subdimensionālas klases, kas atkal rīkojas tieši šā pat. Daži no maniem "mācekļiem" un tiem, kas iestaigā skype pēc padoma gan jau ir sastapušies ar šo loģiku.

 

:*

Share this post


Link to post
Share on other sites

Šoreiz es pat necentos troļļot. MVC savai popularitātei jāpateicas tikai popkultūras freimworkiem un populārajiem CMS kur jamais tiek izmantots. Bet ir 101 cita arhitektūra, kas pat labāk veic savus pienākumus, piemēram SupCon, DCI un vel vesela kaudze arhitektūru lai gan es pieturos pie "sava stila" jeb mans PHP pārsvarā ir SOOP kontroliera modelis ar šādu pašu loģisko plūsmu, bez atsevišķiem kontrolieriem un izmantojot sublevel api kā arī statiskos punktus, kā arī, tas ko es dēvēju par LDOLC jeb Loghic Dynamic Object Loader and Controller. Basicly tas ir viens master kontrolieris kas pēc loģikas un arhitektūras nepieciešamības izsauc subdimensionālas klases, kas atkal rīkojas tieši šā pat. Daži no maniem "mācekļiem" un tiem, kas iestaigā skype pēc padoma gan jau ir sastapušies ar šo loģiku.

 

:*

Man kā nejēgai varbūt vari parādīt kādu savu piemēru? :? Un varbūt pastāstīt, kāpēc tā būtu labāk nekā savādāk?

Edited by ezis

Share this post


Link to post
Share on other sites

Vai tas master kontrolieris nav tas pats ko "MVC fanboji" sauc par front controller?

"sublevel api kā arī statiskos punktus", lai kas tas ar būtu, bet varbūt tas pats, kas HMVC?

un "Logic" raksta bez "h" burta.

Edited by v3rb0

Share this post


Link to post
Share on other sites

Man kā nejēgai varbūt vari parādīt kādu savu piemēru? :? Un varbūt pastāstīt, kāpēc tā būtu labāk nekā savādāk?

Man patīk opensource. Bet diemžēl es ne visiem izplatu savu kodu, un publiskai apskatei pagaidām toč šis ir pēdējais ko es gribētu visiem tā vienkārši atdot :)

 

 

Un nē, v3rb0, diemžēl nebūs gan. :)

 

un kāpēc vēl neviens nav ierunājies par MVC "liekajiem" failiem un mapēm, kas ietekmē web aplikācijas veiktspēju? :) Uhh-ahh...

Share this post


Link to post
Share on other sites

un kāpēc vēl neviens nav ierunājies par MVC "liekajiem" failiem un mapēm, kas ietekmē web aplikācijas veiktspēju? :) Uhh-ahh...

 

MVC nav nekāda sakara ar failiem vai mapēm - to jau katrs eksperts zin. Šķiet, ka tu neesi eksperts. Uhh-ahh...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...