În cazul în care lucrezi la un proiect dezvoltat în PHP, implementarea unui mecanism de cache (stocare în memoria tampon) devine esențială pe măsură ce site-ul tău începe să atragă mii de vizitatori zilnic. Salvarea paginilor generate pe disc reduce considerabil interogările către baza de date și timpul de procesare pe server.
Exemplu simplu de mecanism de cache în pagină cu PHP
În exemplul următor poți observa o metodă foarte simplă și eficientă de a salva conținutul HTML generat de PHP într-un fișier static pe server:
[php]
Aici se generează conținutul dinamic al paginii tale…
[/php]
Cum funcționează acest sistem de cache
- Verificarea fișierului: Funcția
file_exists()verifică dacă fișierul de cache a fost deja generat, iarfilemtime()compară timpul ultimei modificări cu limita setată prin variabila. Dacă pagina este validă, este inclusă direct cuinclude()și scriptul se oprește instant cuexit, evitând randarea repetată. - Capturarea conținutului: Funcția
ob_start()interceptează orice output generat (HTML, text), stocându-l temporar în memoria internă (output buffer). - Scrierea pe disc:
ob_get_contents()preia întregul conținut randat, care este salvat în fișier prin funcțiile nativefopen()șifwrite(), după careob_end_flush()livrează pagina utilizatorului.
Sursa tehnică originală a tehnicii aparține dezvoltatorului Wes Bos și poate fi consultată pe blogul său aici.
mda, si face cahe doar la o pagina….
Daca am cateva zeci de pagini ce fac? si nu am acces la un memcached???