Jump to content
php.lv forumi

Recommended Posts

Posted

Sveiki!

 

Gribētos, lai kāds iesaka kādu MVC php freimworku (ja tāds eksistē), kurā būtu iespēja lapu salipināt kopā no neatkarīgiem moduļiem (kontrolieru, skatu un modeļu grupiņām).

 

Man personīgi ļoti patīk Code Igniter un ir arī priekš CI papildinājumi, kas nodrošina šādu modularizāciju, bet palasot forumu izskatās ka šiem papildinājumiem vēl ir savi blakusefekti un nav ieteicami lietošanai produkcijā.

 

Kāpēc es meklēju šādu risinājumu - gribētos kādu freimworku, kurā būtu mehānismi, kas palīdzētu rakstīt kodu neatkārtojot vienu un to pašu kodu vairākkārtīgi..

Posted

Reālās dzīves aplikācijās praktiski nav iespējams radīt šādu modulāru kodu, lai tas strādātu kaut cik optimāli.

Piemēram, būs tev 5 moduļi, kuriem vajadzēs vienu un to pašu informāciju vienā lapā. Ja šie moduļi būs neatkarīgi, tad arī šo moduļu modeļi būs neatkarīgi un beigās tas izvērsīsies 5-kāršā vienas un tās pašas informācijas apstrādē.

Ja vajag uzrakstīt kaut cik optimālu kodu, tad vienmēr būs jāraugās arī uz aplikāciju kopskatā.

Posted

nja, paldies par viedokli. Lai gan nav man gadiem ilgas pieredzes php programmēšanā, tomēr nedomāju ka šāda vienas un tās pašas informācijas apstrāde dotu jūtamu performances pazemināšanos.

 

Varbūt tad jautājums tāds.. Kā MVC aplikācijās tiek galā ar to, lai vienu un to pašu html kodu nevajdzētu kopēt varākkārtīgi daudzos citos skatos?

Posted

Neesmu izmantojis citus, tāpēc nezināšu par citiem, taču Zend Frameworkā gala lapa tiek veidota no vairākām lietām. Zend Layout + Zend View (kurā parasti izmanto dažādus helperus: ActionHelper, Partial, Cycle, Placeholder, kā arī paša rakstītus). Tie visi ir izmantojami kā neatkarīgi klucīši no kā var salīmēt gala rezultātu. Ja sapratu ko tu jautā.

Posted

Arī priecātos, ja kāds šādu PHP frameworku ieteiktu.

 

Pagaidām šīs prasības man apmierina Django, kas ir Python un tāpēc dažos projektos nav vēlams.

Posted (edited)

Paskatījos to Kohana, bet nu... Piemēram, no dokumentācijas:

foreach(ORM::factory('user', 3)->posts->where('post_date', '>', time() - (36000 * 24))->find_all() as $post)
{
   echo $post->title;
}

 

WTF?!@#$))K)

 

Speciāli viss tiek sarežģīts. Tā izskatās, ka gribās kodēt kā Ruby on Rails, bet netīšām "paņēmās" PHP.

Edited by marrtins
Posted

Varbūt tad jautājums tāds.. Kā MVC aplikācijās tiek galā ar to, lai vienu un to pašu html kodu nevajdzētu kopēt varākkārtīgi daudzos citos skatos?

 

Principā tie būtu Helperi vai citu Controlleru iespraušana pēc HMVC paterna.

Pirmajā gadījumā, helperis ir pilnīgi neatkarīgs no visas aplikācijas, jo visus sev nepieciešamos datus jau saņem gatavus kā parametrus.

Otrajā gadījumā, kontrolieris nav neatkarīgs no aplikācijas, jo izmanto aplikācijas modeļus, kurus izmanto citi kontrolieri.

 

 

Bet vispārīgi, ja vajadzīgas kādas konkrētas lietas, kāds konkrētā veidā realizēts MVC patterns, tad uztaisiet to paši. Tas aizņems dažus simtus rindiņu koda, bet būs tieši tāds, kādu jums to vajag. Kur ir problēma? Savukārt ORM ar MVC nav nekāda sakara, savam MVC var pievienot jebkuru no gatavajiem opensource ORM projektiem, ja nav vēlme viedot sev pielāgotu ORM fw.

Posted (edited)

Paskatījos to Kohana, bet nu... Piemēram, no dokumentācijas:

foreach(ORM::factory('user', 3)->posts->where('post_date', '>', time() - (36000 * 24))->find_all() as $post)
{
   echo $post->title;
}

 

WTF?!@#$))K)

 

Speciāli viss tiek sarežģīts. Tā izskatās, ka gribās kodēt kā Ruby on Rails, bet netīšām "paņēmās" PHP.

 

Nekas netiek speciāli sarežģīts. Iepazīsties ar ORM, CRUD un Active record pattern.

Un PHP sniedz to, ko tas sniedz, tāpēc RoR, JAVA, Python un pārējie lūdzams nespamot.

 

Edit priekš tiem, kas vēlas mācīties:

Lietojam kohana v3, nevis v2!! http://kohanaframework.org/

Lasam šo dokumentāciju: http://kohanaframework.org/guide/about.kohana

Lasam šo Wiki: http://kerkness.ca/wiki/doku.php

Un, protams, lasam pašu KO3 kodu. Tur katra funkcija un process ar komentāriem ļoti labi aprakstīts.

Edited by Toms
  • 2 months later...
Posted

Speciāli viss tiek sarežģīts. Tā izskatās, ka gribās kodēt kā Ruby on Rails, bet netīšām "paņēmās" PHP.

 

 

Frameworki vienmer bus sarezgitaki par pliku PHP jo frameworki uzspiez uzturet kartibu.

 

Kops pargaju uz CodeIgniter uz vecajam sourcem pat skatities negribas, iesaku ;)

Posted

Freimworkam nav jābūt sarežģītākam, tieši pretēji - jābūt vienkāršākam.

Labā freimworkā būs realizēts augstāks abstrakcijas līmenis, kas loģiski pieprasa ievērot kaut kādu kārtību un upurēt universālumu, savukārt pretī dod vienkāršumu un eleganci.

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...
×
×
  • Create New...