Jump to content
php.lv forumi

Iesakiet kādu php freimworku


101111

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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
Link to comment
Share on other sites

  • 2 months later...

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

Link to comment
Share on other sites

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.

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