Реалізація кешування на 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 тільки для тих сторінок, які рідко оновлюються.
Налаштування internet exprlorer. Налаштування реєстру. Системний реєстр windows. Оптимізація та…
Кращі проксі сервери linux
Синій екран смерті 0x0000007e
Синій екран смерті 0x0000001e
Як дізнатися версію squid
Чому веб-сторінки з кожним роком завантажуються все повільніше
Thumbs db що це таке?
Як використовувати файли tpl
Як зробити чпу-посилання
Як відключити кешування на php
Що таке фреймворк?
Як створити движок для сайту
Що таке рефакторинг?
Stop 0x000000ie - kmode_exception_not_handled
Яка різниця між post і get
Створення винятків в php
Nodejs. Потоковий висновок html сторінки.
Системні налаштування joomla
Чи варто використовувати gzip
Читання ini-файлу в php
Сервіс по генерації трикутників.
Чи варто використовувати gzip
Як відключити кешування на php
Яка різниця між post і get
Що таке фреймворк?
Створення винятків в php
Що таке рефакторинг?
Nodejs. Потоковий висновок html сторінки.
Як створити движок для сайту