entu Posted July 8, 2011 Report Share Posted July 8, 2011 (edited) 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 July 8, 2011 by entu Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 8, 2011 Report Share Posted July 8, 2011 Modeļa nosaukums ir tāds, kāds ir resursa (piemēram, datubāzes), no kurienes modelis ņem infu, nosaukums. Quote Link to comment Share on other sites More sharing options...
codez Posted July 8, 2011 Report Share Posted July 8, 2011 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; } } Quote Link to comment Share on other sites More sharing options...
entu Posted July 8, 2011 Author Report Share Posted July 8, 2011 Labi, tad drošvien arī taisīšu ar diviem modeļiem. :) Quote Link to comment Share on other sites More sharing options...
briedis Posted July 8, 2011 Report Share Posted July 8, 2011 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. Quote Link to comment Share on other sites More sharing options...
entu Posted July 8, 2011 Author Report Share Posted July 8, 2011 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. Quote Link to comment Share on other sites More sharing options...
briedis Posted July 8, 2011 Report Share Posted July 8, 2011 Nez, man ir drusku pāri 30 modeļiem. Tas ir daudz? :) Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 9, 2011 Report Share Posted July 9, 2011 Nez, man ir drusku pāri 30 modeļiem. Tas ir daudz? :) Nē. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.