Jump to content
php.lv forumi

MVC funkciju nosaukumi un to piederība.


entu

Recommended Posts

Piemēram ir modelis User, kur pārsvarā visas funkcijas ir balstītas uz tekošo useri, bet kur lai labāk liek funkciju "get_all_users" ? Tur pat User modelī? Tāpatās vēl piemēram ir modulis Files, kurā ir tam piederošas funkcijas, bet klāt nāk funkcija user_files, kura dabū lietotāja pievienotos failus. Kur labak likt funkciju "user_files" - User vai Files modelī?

Itkā varētu rakstīt $this->user->all_files(), tikpat labi files->all_user_files(). Kā pareizāk? Varbūt kāds labs arējs resurss ar par šo tēmu ir.

Gribās iegūt pēc iespējas lielāku kārtību, savādāk tās izjūtas, kur bāzt katru funkciju bieži vien atšķiras, un tās funkcijas tiek izmētātas pa vairākiem, iespējams nepareiziem, moduļiem.

Edited by entu
Link to comment
Share on other sites

Es darītu tā, ka ir modelis

User un Users.

User modelis atbild par viena user-a datiem, kamēr Users modelis atbild par kolekcijām un attiecīgi user modelis parasti extendos ActiveRecord vai tamlīdzīga paterna realizācijas klasi, kamēr users modelis būs cita, piemēram, ActiveRecordCollection klase.

 

Un Failu iegūšana būtu pie user klases.

 

class Files extends ActiceRecordCollection{
}
class User extends ActiveRecord{
 function getFiles(){
   return DB::q('SELECT * FROM files WHERE uid=%s',$this['id']);
 }
// vai izmantojot Files modeli
 function getFiles(){
   $files=new Files();
   $files->load('uid=%s',$this['id'])
   return $files;
 }
}

Link to comment
Share on other sites

Es personīgi neeju tik dziļā abstrakcijā.

 

Kā ORM slāni izmantoju RedBean(iesaku), modeļus saucu vienkārši, piem., UsersModel, kurš satur gan darbības ar konkrētiem lietotājiem, teiksim,

UsersModel::addUser(..);

UsersModel::getUser($user_id);

UsersModel::changeUserPassword($old,$new, $user_id);

 

FilesModel::getUserFiles($user_id);

 

Varbūt nav tas īsti klasiskais MVC piegājiens, bet nu mērķis tāpat tiek panākts - visam ir sava vieta.

Link to comment
Share on other sites

Es darīju diezgan līdzīgi, bet tagad tie modeļi ir savairojušies vairāk, viskautkas tika dzēsts, pievienots, pievienots ne tajos modeļos un tagad diezgan grūti ir kautko atrast un saprast. Tagad izdomāju aplikāciju sakārtot, pārveidojot un metot visas funkcijas uz tīra CI MVC un pēc iespējas vairāk ievērot visus MVC likumus.

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