Реалізація кешування на php

Відео: Заборона кешування за допомогою PHP

Реалізація кешування на PHP

Відео: Створення власного фреймворка. Клас кешування. урок 11

Коли Ви робите проект, який має досить проблемними сторінками в плані швидкості їх завантаження, то треба проводити рефакторинг. Але бувають випадки, коли Ви все написали ідеально, проте, швидкість залишає бажати кращого. У таких випадках допоможе кешування сторінок. Тому я вирішив написати статтю про реалізації кешування на PHP.

Перш ніж показувати код, Ви повинні заздалегідь усвідомити алгоритм. Кешування - це просто збереження згенерованої сторінки в окремий файл. Тобто отримали HTML-код сторінки і зберегли його в окремий файл. Потім при наступному зверненні до скрипту заново сторінка не генерується, а береться HTML-код з цього файлу. Зрозуміло, якщо при генерації мова може йти навіть про десятки секунд (буває і таке), то тут мова йде про сотих частках секунди. Різниця очевидна.

Тепер сам код. Вам потрібно створити 2 спеціальні файли. Перший файл буде займатися виведенням кеша, а другий - створенням кеша.




Почнемо з першого файлу, який назвемо read_cache.php:

Відео: Урок 5. Кешування

lt ;?php
$ cache_time
=300-// Час життя кешу в секундах
$ file
= strrchr($ _SERVER["SCRIPT_NAME"],"/") -// Отримуємо назва файлу
$ file
= substr($ file,1) -// Видаляємо слеш
$ cache_file
="/cache/$file.html"-// Файл буде знаходитися, наприклад, в /cache/a.php.html
if(file_exists($ cache_file)){
// Якщо файл з кешем існує
if((time()- $ cache_time)lt; filemtime($ cache_file)){
// Якщо його час життя ще не пройшло
echo file_get_contents
($ cache_file) -// Виводимо вміст файлу
exit-// Завершуємо скрипт, щоб заощадити час на подальшій обробці
}
}
ob_start
() -// Відкриваємо буфер для виведення, якщо кеша немає, або він застарів
?gt;



В даному скрипті ми отримуємо ім`я файлу, потім перевіряємо чи існує такий кеш і не застарів він, а потім або виводимо його і закінчуємо роботу, або відкриваємо буфер, куди будемо розміщувати всю вихідну інформацію скрипта.

Відео: 012. Кешування на клієнті і сервері - Єгор Львівський

Тепер створимо файл write_cache.php, який буде займатися записом в файл того, що у нас накопичилося в буфері:

lt ;?php
$ handle
= fopen($ cache_file,`W`) -// Відкриваємо файл для запису і стираємо його вміст
fwrite
($ handle, ob_get_contents()) -// Зберігаємо весь вміст буфера в файл
fclose
($ handle) -// Закриваємо файл
ob_end_flush
() -// Виводимо сторінку в браузері
?gt;

І тепер в будь-якому PHP-файлі на сайті, що відповідає за виведення сторінки, можна включити кешування наступним чином:

lt ;?php
require_once
"Read_cache.php"-// Намагаємося вивести вміст кеша
// Тут йде звичайна генерація сторінки
require_once
"Write_cache.php"-// Тут йде збереження згенерованої сторінки в кеш
?gt;

Таким чином, тепер Ви можете всі свої проблемні сторінки почати кешувати. Але не забувайте, що поки кеш живе, будь-які оновлення користувач бачити не буде. Тому робіть кешування на PHP тільки для тих сторінок, які рідко оновлюються.

Поділися в соціальних мережах:

Схожі
Thumbs db що це таке?Thumbs db що це таке?
Чи варто використовувати gzipЧи варто використовувати gzip
Синій екран смерті 0x0000007eСиній екран смерті 0x0000007e
Як відключити кешування на phpЯк відключити кешування на php
Яка різниця між post і getЯка різниця між post і get
Що таке фреймворк?Що таке фреймворк?
Створення винятків в phpСтворення винятків в php
Що таке рефакторинг?Що таке рефакторинг?
Nodejs. Потоковий висновок html сторінки.Nodejs. Потоковий висновок html сторінки.
Як створити движок для сайтуЯк створити движок для сайту
» » Реалізація кешування на php