xfr33 Posted May 17, 2012 Report Share Posted May 17, 2012 Sveicināti ļautiņi! Ir sanācis tā, ka izveidojis esmu savu frameworku, vēl pašu, pašu pirmo versiju, bet jau gaidu kritiku. Ja kādam nav slinkums - notestējiet un atstājiet komentāru. Novilkt: DAPS.zip Paldies jau iepriekš, Daniels Quote Link to comment Share on other sites More sharing options...
briedis Posted May 17, 2012 Report Share Posted May 17, 2012 Hmm, nu pēc pirmā acu uzmetiena retorisks jautājums - kāpēc metodēm nav norādīta redzamība? (public, private, etc) Ar ko, teiksim, šis ietvars atšķiras/ir labāks nekā, teiksim, Kohana, CI, Cake, etc.? Šīs rindiņas arī rēcīgas :D if (isset($_COOKIE[$name])) return true; else return false; Kāpēc ne vienkārši return isset($_COOKIE[$name]) Tas tā, tīri programmēšanas stils.... Quote Link to comment Share on other sites More sharing options...
xfr33 Posted May 17, 2012 Author Report Share Posted May 17, 2012 Hmm, nu pēc pirmā acu uzmetiena retorisks jautājums - kāpēc metodēm nav norādīta redzamība? (public, private, etc) Ar ko, teiksim, šis ietvars atšķiras/ir labāks nekā, teiksim, Kohana, CI, Cake, etc.? Šīs rindiņas arī rēcīgas :D if (isset($_COOKIE[$name])) return true; else return false; Kāpēc ne vienkārši return isset($_COOKIE[$name]) Tas tā, tīri programmēšanas stils.... Redzamība nav norādīta, jo defaultā ir public. Kur nepieciešama privāta, tur ir private :) Jā, gan jau dažviet ir sarežģītāk sarakstīts, bet nu cenšos. Ja godīgi, neesmu īsti strādājis ar nevienu no nosauktajiem freimvorkiem, nedaudz CI esmu papētījis, bet main thing šajā freimvorkā (pagaidām) ir (vismaz man šķiet) tas, ka jaunas klases pievienot ir pavisam vienkārši arī cilvēkam, kas neko nezin par iekšējo uzbūvi, jo nekas neko neextendedo pie vienkārši lietojamām klasēm. Sarežģītāk aiziet, ja sasaista ar datu bāzi. Un vēl vienkārši tas, ka pats mēģinu uztaisīt labu struktūru, kuru lietot darbā, līdz ar to, meklēju kādu labu kritiku un ieteikumus. Kas zin, varbūt ar laiku to lietos ne tikai es :) Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 17, 2012 Report Share Posted May 17, 2012 > Redzamība nav norādīta, jo defaultā ir public. Kur nepieciešama privāta, tur ir private :) Es arī tā daru. Nav jēgas (pār)norādīt kko, kas jau tāds ir by default. Pats vēl neesmu apskatījis tavu brīnumu, bet soon. Negribi to visu uz GitHub uzlikt? Quote Link to comment Share on other sites More sharing options...
xfr33 Posted May 18, 2012 Author Report Share Posted May 18, 2012 (edited) > Redzamība nav norādīta, jo defaultā ir public. Kur nepieciešama privāta, tur ir private :) Es arī tā daru. Nav jēgas (pār)norādīt kko, kas jau tāds ir by default. Pats vēl neesmu apskatījis tavu brīnumu, bet soon. Negribi to visu uz GitHub uzlikt? Ok, šīs dienas laikā būs iekš github. EDIT: https://github.com/dpitkevics/DAPS-framework Edited May 18, 2012 by xfr33 Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted May 18, 2012 Report Share Posted May 18, 2012 Viņš tev nemēdz noklāties? for($i = 0; $i < 1000; $i++) {new Basic();} Quote Link to comment Share on other sites More sharing options...
xfr33 Posted May 18, 2012 Author Report Share Posted May 18, 2012 Viņš tev nemēdz noklāties? for($i = 0; $i < 1000; $i++) {new Basic();} Kurā vietā ir tāda koda rindiņa? Kādā ziņā noklāties? Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted May 18, 2012 Report Share Posted May 18, 2012 Kodā nav, bet, kas notiks, ja tādu ieliks? Jo, ja es kaut ko neesmu palaidis garām, tev pie katra objekta(modeļa, formas un kam tur vēl) izveides, izveido arī konekciju uz datubāzi. Quote Link to comment Share on other sites More sharing options...
xfr33 Posted May 18, 2012 Author Report Share Posted May 18, 2012 Hmm, tas gan. Ja tādu ieliks, tad būs konekcija pie datubāzes x 1000, kas nebūt nav labi. Pierakstīšu savā task listē, lai šo noņemtu un būtu viena globāla konekcija pie datubāzes. Paldies! Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 18, 2012 Report Share Posted May 18, 2012 Singleton patterns datubāzes klasei. :) Quote Link to comment Share on other sites More sharing options...
codez Posted May 18, 2012 Report Share Posted May 18, 2012 (edited) 1)Kā xPtv45z minēja, tad modelis veido db konekciju. Modelim vispār nevajadzētu manto db klasi. Savukārt db klasei vajadzētu kādu instances piekļūšanas mehānismu - globāls mainīgais, singletons vai factory. 2)Kopējā MVC struktūra. Man labāk patīk, kad aplikācijas struktūra ir veidota, nevis atdalot pa mapēm kontrolerus, viewus un modeļus, bet sadalot aplikāciju moduļos, kur attiecīgi katram modulim ir savi kontroleri, modeļi, templeiti un citas papildus klases.Pimēram: /app /auth /controller login.php register.php /ajax auth.php /template login.tpl register.tpl /model bans.php acl.php auth.php /index /controller index.php /template index.tpl /sys bootstrap.php routes.php config.php controller.php ajaxcontroller.php ... Klašu nosaukumus būvēt pēc mapes ceļa, piemēram controller_index būs /controller/index.php Vajadzīgko klasi meklēt cauri visiem modeļiem un, lai katru reizi nebūtu jāskanē cauri, ieteiku glabāt kontroleru ceļus apc kešā. Par šo atbild autoload klase. 3)Hirarheāli kontroleri. Ļoti ērts ir nevis pliks MVC, bet HMVC. Tas ir tāds paterns, kad kontrolerim var norādīt parent kontroleri un šis kontroleris tiek ielādēt pa vidu parent kontrolerim. Tas ir ļoti ērts veids, ka, teiksim izveidot kontroleri, kurš atbilst par headeri un footeri un tad tajā pa vidu tiek lādēts attiecīgais pieprasītais kontroleri. Konstrukcija būtu tāda: class Controller_Login extends Controller{ public $parent="Controller_MainPage"; } //savukārt mainpage.tpl failā kāda vietā: echo $child_content; //kas ir Controller_Login uzģenerētais kontents. 4)Ajax apstrādei manuprāt būtu jābūt jau FW iekšā un tas būtu specifisks, atsevišķi izdalīts kontroleru veids, kurā jau defaultā ir iekļaut pret XSRF aizsardzība. Piemēram, šāds varētu routoties kā /ajax/auth/chechusername class Ajax_Auth extends AjaxController{ function chechusername(){ //... } } Tās būtu tādas lielās lietas. Edited May 18, 2012 by codez Quote Link to comment Share on other sites More sharing options...
codez Posted May 18, 2012 Report Share Posted May 18, 2012 (edited) Par db, man ērts šķiet singletona paterns ar 2 klasēm - db un dbresult, kur db ir statiska funkcija query, kas atgriež dbresult klases instanci, kurā savukārt ir daudz smukas funkcijas. query funkcija protams ar dinamisku parametru skaitu un automātisku eskeipošanu. Kopā tas izskatās šādi: db::query("SELECT * FROM comments WHERE article_id=%s",$articleid)->rows(); db::query("SELECT * FROM comments WHERE article_id=%s",$articleid)->json(); //json funkcija uzreiz prieksh ajax rezultāta atgrieshanas. db::query("SELECT * FROM users WHERE id=%s",$_POST['uid'])->row(); db::query("SELECT count(*) FROM users")->one(); Edited May 18, 2012 by codez Quote Link to comment Share on other sites More sharing options...
xfr33 Posted May 18, 2012 Author Report Share Posted May 18, 2012 Paldies par ieteikumiem, pārskatīšu visu un centīšos apgūt singletona patternu, lai optimizētu darbību :) Quote Link to comment Share on other sites More sharing options...
xfr33 Posted May 18, 2012 Author Report Share Posted May 18, 2012 Jautājums par datubāzes konekcijas ierobežošanu: Kas ir labāk un kāpēc - izmantot singleton pattern vai arī pirms konekcijas pārbaudīt vai ir jau tāda konekcija ar, piemēram, mysql_thread_id($connection) vai citām komandām? Un vēl jautājums par erroriem: Ir iespējams, ka jebkuru erroru - nav masīvs, kur vajag masīvu, nav pareiza tabula, neeksistē mainīgais u.c - parādīt tā kā es to vēlos nevis izmest default error vietā, kur bija jābūt informācijai? Quote Link to comment Share on other sites More sharing options...
codez Posted May 18, 2012 Report Share Posted May 18, 2012 Kļūdu apstrāde iekš PHP: http://php.net/manual/en/book.errorfunc.php To, ko tu vēlies var ar set_error_handler, iestādot funkciju, kura apstrādā kļūdas. 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.