| Cachiranje + eval() ? | ||
|---|---|---|
|
blackmamba
8. jan 2010 22:09:29
Pridružen od: 4. mar 2008 559 objav 392 25 11 |
#1
Zanima me ali bi se dalo nekaj takega: npr. pri izpisu kategorije novic se izvrši kar nekaj stvari. itd... Jaz bi rad po nekem ključu, npr. po serialize($_GET) pocachiral vrednosti teh spremenljivk. Ideja je, da bi jih klical nekako takole v CMSCache::handle() bi preverjal: Malo sem se že igral z eval() funkcijo, vendar neuspešno HELP |
|
|
cyber
8. jan 2010 23:17:59
Pridružen od: 2. dec 2007 536 objav 750 76 10 |
#2
Hm, zakaj pa ne bi cache-iral outputa? Oz. to je pomojem pravi način, torej cache-iraš output. Če pa že hoče cache-irati podatke, pa je dobra zadeva kakšen memcache. |
|
|
cyber
8. jan 2010 23:24:16
Pridružen od: 2. dec 2007 536 objav 750 76 10 |
#3
Pa še ena ideja, uporabiš ne-ralacijsko bazo, za takšne agregirane podatke. Poglej si Cassandra , tukaj pa je primer, kjer Digg uporablja Cassandro: http://about.digg.com/blog/looking-future-cassandra . |
|
|
fatg
8. jan 2010 23:38:37
Pridružen od: 28. jan 2008 94 objav 73 2 0 |
#4
verjetno bi se dalo kaj sčarati v tem stilu, vendar toplo odsvetujem, ker je eval nevaren in počasen in koda v stringu je izven dosega parserja (IDE ne razume in napake se odkrijejo šele pri evalu). Ta pristop po moje ni v redu. Poleg tega imaš še varnostno luknjo. Kaj če ti kdo poda parameter id=); zlobna_koda(? :) Keširaj ali posamezne končne HTML kose, ali pa objekte/arraye in uporabi wrapper za cache: in potem uporabljaš: To je osnovna ideja, da se jo precej raztegniti. BTW, če te zanima framework za večplastno keširanje v PHPju, si oglej LayerCache. Omogoča zelo elegantno večplastno keširanje z zelo malo kode. Na enem projektu recimo uporabljam 3-plastno: izvor je mysql tabela, cachi pa so memcache, apc in še lokalen PHP array. |
|
|
blackmamba
9. jan 2010 11:57:37
Pridružen od: 4. mar 2008 559 objav 392 25 11 |
||
|
wickedsheep
22. jan 2010 21:19:24
Pridružen od: 22. jan 2010 20 objav 26 0 0 |
#6
@cyber: Zakaj tocno bi bilo tu potrebno uporabljati nerelacijsko bazo? Ob pravilni uporabi relacijske baze ta brez problema zadosca do nekaj milijonov recordov. No ja, zanima me, ce imas morda prakticne izkusnje s Cassandro, ker imam nekaj vprasanj :) Glede cacha pa raje ustvarite generik, kakor da delate cache objekt za vsak objekt posebej. Npr. LayerCache pocne natanko to. Morda bi bil zaradi dokumentacije tu se primernejsi Zend_Cache (in zaradi moznosti uporabe drugih komponent frameworka). Se en cisto poenostavljen primer: Vec na: http://framework.zend.com/manual/en/zend.cache.html ExtJS, Sencha Touch consulting | MySQL, MSSQL, Oracle performance tuning - wickedsheep.si
|
|