Citat:
masinac_1: Mitke legendo... stalno nesto zakomplikujes.

)
Haha... Pa znas kako je; sunce przi, forum jedva ziv, mrzi me da radim, sportska povreda me sprecava za neki basket.... Negde to mora da izadje
Citat:
Priznajem da se nisam puno upustao u razumevanje svakog napisanog posta, neke cak nisam ni procitao u celosti. Ali sto se tice ovog ..->isRateable() i javascript-a secam se tacno o cemu se radilo... i kontekst u kom si to pomenuo uopste ne ogovara onome o cemu je zapravo bilo reci.
Mozda mislis na neku drugu situaciju gde se pominjalo resenje sa js (samim tim bez metode isReateble)?
Uglavnom, isReatable se nalazi u view delu gde po filozofiji MVC-a ne treba da bude. Moj predlog je bio, ako vec hoces da radis ispravno (sa akcentom na OOP-u), da izbacis logiku iz view dela (prosiris akcenat i na MVC). Da napomenem da i ja pozovem neku metodu (to su ustvari view helperi) iz view-a, ali posto nastojis da radis sto ispravnije, onda sa tog stanovista isReatable nema sta da trazi u view.

Zato sam predlozio da view servira kod browser-u normalno kao da je moguce glasanje, a js da na osnovu kolacica po ucitavanju iskljuci mogucnost glasanja, usput sredi zvezdice da prikazuju rejting itd. A u akciji koja odradjuje glasanje normalno dodati proveru da je korisnik autorizovan.
Verovatno bih uradio kao ti (ako zanemarim pravilo mvc-a). Ovo sto sam predlozio definitivno nije za "?!?" jer je jasno i u zavisnosti od situacije moze da bude resenje ako izbacujes logiku iz view. Ponovih opet... valjda si sad razumeo.
Ma razumeo djavola verovatno. Gle; ti si ovim predlogom logiku iz view dela prebacio u logiku javascript-e. Sto je iskreno, losije resenje cak i od Song::isRateable($songId, @$_COOKIE[$songId], @$_SESSION[]... )
Trebao si da procitas ceo post (gore si naglasio da nisi sve procitao). Ja imam petlju tipa
Code:
foreach ($allSongs as $song) {
if ($song->isRateable()
// iscrtaj zvezdice
}
... i to je to. Logika se nikad ne moze izbaciti 100% iz view dela; cak se i foreach moze smatrati nekom logikom. Ovaj moj dodatni 'if'; JS ne dolazi u obzir jer je ovo php problem, znaci da je if u view delu zaista neophodan. Ali je ovo tema o slanju parametara metodi ili ne.
Citat:
edit:
E da, ovo sa slikama i zauzecem memorije... pa stvarno, zar nije cilj programera da poveca kapacitete softverskim putem, a ne kupovinom hardvera? Naravno kada i ako je u mogucnosti. Ovde je evidentno da se lako moze uticati na performanse bez nadogradnje hardvera.
Ne
Kakav crni hardware, ja sam cicija koja placa shared hosting od $10 mesecno na
hostgatoru. Ogranicenja su: 64MB po procesu, 25% CPU zauzeca ne duza od 2 minuta i 25 DB konekcija po sekundi. Sve ostalo je neograniceno. U gornjim primerima sam objasnio kako brdo instanci iste klase zauzima smesnu memoriju. Drugo; migraciju necega radis samo jednom. Ne mogu da zamislim nijedan sajt koji bi na stranici prikazao 600 slika php-om (tipa <img src="show.php?id=15">), pa da se mozda i prekoraci ovaj limit.
Verujem da i ostale hosting kompanije imaju slicna ogranicenja.
Poenta:
Doctrine+Smarty koje koristim mi zauzmu oko 6MB. Program o kome je rec u peak-u zauzme 10 MB i to samo na prvoj stranici. Na njoj ima:
1 instanca klase Banner
2++ instanci klase Translation; trenutno su dve jer je sajt na spanskom i engleskom
5++ instanci klase News; toliko trenutno ima vesti koje se prikazuju
30 instanci klase Song koje se ucitavaju iz 6 puta po 5 komada, zavisno od broja pregleda, ocene itd.
oko 30 instanci klase Category
8 instanci klase Staticpage
5 instanci klase Image za najaktivnije korisnike
Pritom:
Klase News, Category i Staticpage imaju prevode sto znaci da se radi 'leftJoin' sa prevodom tipa CategoryTranslation itd
Za Songs se radi leftJoin sa Dailyvisits i Statistics tabelama/klasama.
Na sve to dodaj 213 'recenica' za prevod sajta koje se ucitavaju za svaku stranicu.
Sve to se izvrsi za ~400ms i zauzme dodatnih 4MB na mom shared serveru. Da li sad razumes zasto se ne treba zezati sa optimizacijom? Ta prva stranica je bas prepunjena, a opet sam zauzeo tek 1/6 dozvoljene memorije.
I jos:
Sve ovo su bas instance objekata. Doctrine moze rezultate da vrati i kao array i da ustedi memoriju i poveca brzinu. Ali.... 4MB i 400ms za sve ovo? Koga briga za HYDRATE_ARRAY...
Za modove:
ovo za HG nije reklama jer vidite da nigde nema referal link. Mislim da ne krsi TOS.
PS:
Uz sliku je screenshot zauzeca memorije. Kod za ovo je:
echo memory_get_peak_usage() .'<br />' ;
echo memory_get_usage() .'<br />' ;
Nek me neko ispravi ako sam pogresio kako se meri zauzece.