Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

OcBox Cache File Optimized — швидкий і безпечний файловий кеш для OpenCart 2.3/3.0 і ocStore: PHP 8 fix, авто-prune, мульти-домен

OcBox ★★★★★ 1 відгук 92 завантажень 2 093 15.07.26
1.0.2 Ioncube Loader: Ні
Безкоштовно
OpenCart3.0, 2.3, 2.2, 2.1, 2.0
ocStore3.0, 2.3.0.2.4, 2.3, 2.2, 2.1
Тип ліцензії
Метод активаціїБез активації, За запитом в приватні повідомлення, За запитом на пошту, Автоматична активація, Через офіційний сайт доповнення
Ioncube LoaderНі
Звернення до сервера розробникаНі
Завантаження92
Опубліковано26.04.26
Оновлене15.07.26
Розмір файлу1 КБ

Відгуки користувачів

Безкоштовно. Без ionCube. Один OCMOD-файл — і ваш кеш стає швидшим і безпечнішим.
OcBox Community Edition — безкоштовне рішення від спільноти, яке увійде до офіційної збірки ocStore. Перевірено на реальних магазинах, без прихованих умов і платних апгрейдів.

OcBox Cache File Optimized — швидкий і безпечний файловий кеш для OpenCart 2.3/3.0 (PHP 8 fix)

Стандартний файловий кеш OpenCart 2.3/3.0 написаний з декількома проблемами які проявляються на живих магазинах: glob() на 10 000+ файлах гальмує сторінку, паралельні записи в кеш ламають JSON, а на PHP 8 ще й періодично падають з warning-ами. Якщо ви тримаєте кеш на файловій системі (FILE driver) — то будь-який пік трафіку йде через ці граблі.

OcBox Cache File Optimized — це OCMOD-патч для system/library/cache/file.php який заміняє «наївну» реалізацію на промислову: атомарний запис, shared-locks на читання, garbage collection через DirectoryIterator замість glob(), захист від битого JSON, повна сумісність з PHP 5.6 — 8.3.

Головна ідея — зробити стандартний файловий кеш OpenCart 2.3/3.0 нормальним інструментом, а не міною уповільненої дії. Не міняємо driver, не ставимо Redis/Memcached. Беремо те що вже є (FILE) і виправляємо очевидні помилки: відсутність атомарних записів, повільний glob(), брак валідації JSON, відсутність probabilistic GC. На каталозі 5000+ товарів і 30+ модулях кеш починає працювати помітно швидше і перестає періодично «псуватись».

Що ви отримуєте

✓ Атомарний запис кешу (write-then-rename)
Замість прямого fopen($file, 'w') модуль пише дані у тимчасовий файл і робить rename() у фінальне ім'я. POSIX гарантує що rename — атомарна операція. Інші процеси або бачать старий валідний файл, або новий валідний — ніколи не бачать «недописаний» наполовину.
⚠ Без цього: на високому трафіку два паралельних запити пишуть в один файл — отримуєте битий JSON, який потім кидає errors на читанні. Перші відвідувачі дістають білий екран.

✓ Shared lock на читання, exclusive lock на запис
Читання беруть flock(LOCK_SH) — багато читачів паралельно. Запис бере LOCK_EX. Між ними: read-while-write безпечний, не отримуєте half-written data.
⚠ Без цього: під навантаженням файл-кеш повертає frankenstein'ів — частину старих, частину нових даних. Дебаг такого — суцільне страждання.

✓ Probabilistic garbage collection (5%)
Кожен 20-й запит з імовірністю 5% запускає прибирання просрочених кеш-файлів через DirectoryIterator. Не блокує синхронно кожен запит, не залишає каталог переповненим.
⚠ Без цього: каталог system/storage/cache/ розростається до сотень тисяч файлів, перший же бекап мрієте видаляти години.

✓ DirectoryIterator замість glob()
glob(DIR_CACHE . 'cache.*') повертає масив всіх файлів — на 100k+ кешів використовує мегабайти RAM і займає секунди. Ми використовуємо DirectoryIterator який ітерує по одному файлу — економимо RAM і час.
⚠ Без цього: на гарячих сторінках кеш-операція забирає 200-500мс через glob(). Власник магазину дивується чому сайт «гальмує без причин».

✓ Валідація JSON при читанні і записі
Перед json_encode($value) перевіряємо json_last_error(). На читанні — те саме. Якщо JSON битий — файл автоматично видаляється і повертається false (як при cache miss).
⚠ Без цього: один битий кеш-файл видає json_decode warning-и в логах годинами і ламає сторінку де він використовується.

✓ Auto-deletion корумпованих файлів
Якщо при читанні виявлено: 0-байтний файл, прострочений TTL, неправильний JSON — файл одразу видаляється (@unlink). Наступний рендер генерує свіжий кеш.
⚠ Без цього: битий файл лежить у кеші доти поки не закінчиться TTL — годинами видає warnings.

✓ Sanitization кеш-ключа
Метод sanitizeKey() прибирає всі символи окрім A-Z, 0-9, крапки, дефіса, підкреслення. Інакше — будь-який неконтрольований ключ може спробувати зламати path traversal через ../.
⚠ Без цього: на деяких модулях ключ кешу береться з URL — теоретично уразливість для path traversal.

✓ Сумісність з PHP 5.6 — 8.3
Код переписаний без deprecated-конструкцій. Працює на старих PHP 5.6 і нових 8.3. Окремий fix для PHP 8 де стандартний кеш видавав попередження.
⚠ Без цього: при оновленні PHP 7.x → 8.x на OC 2.3 кеш починає видавати warning-и про застарілі функції.

✓ Без ionCube, без ліцензії, без активації
Чистий OCMOD з PHP-операціями. Нічого не закодовано. Поклали XML у system/, натиснули Refresh — працює.
⚠ Без цього: купуєте платний модуль за фікс який має бути в OpenCart за замовчуванням.

✓ Безпечне видалення
Не подобається — видаляєте oc_box_cache_file_optimized.ocmod.xml з system/, натискаєте Refresh — повертається стандартний file.php. Жодних хвостів у БД.
⚠ Без цього: інші модулі залишають хвости після видалення.

Перед встановленням: очистіть кеш через Розширення → Модифікації → Clear + видаліть вміст system/storage/cache/ — щоб старі несумісні з новим форматом файли не плутались. Після Refresh modifications кеш буде регенеруватися автоматично з нового коду.

Встановлення

  1. Завантажте ZIP з форуму
  2. Розпакуйте — отримаєте папку upload/
  3. Завантажте вміст у корінь магазину через FTP (один файл — system/oc_box_cache_file_optimized.ocmod.xml)
  4. В адмінці: Розширення → Модифікації → Refresh
  5. Очистіть system/storage/cache/ через FTP
  6. Готово — кеш працює з новою логікою

Сумісність

  • OpenCart 2.3 / 3.0 та ocStore 2.3 / 3.0
  • PHP 5.6, 7.x, 8.0, 8.1, 8.2, 8.3
  • Cache driver = file (стандартний) — інші драйвери (apc, memcache) не зачіпає
  • Без ionCube Loader, без ліцензії
  • Чистий OCMOD — без правок ядра і шаблону

Рекомендовані платні модулі OcBox

Smart Related
Smart Related
$30 — пов’язані товари
SEO FAQ AI
SEO FAQ AI
$30 — AI FAQ + Schema.org
AI Chat
AI Chat
$100 — AI чат-консультант
AI Product Editor
AI Product Editor
$40 — масове редагування
Image Pro
Image Pro
$15 — WebP, водяний знак (beta)

Ми рекомендуємо шаблони від 29aleksey

Найкраще працює зі швидкими шаблонами. 29aleksey робить топові шаблони для OpenCart 2.3/3.0 з акцентом на швидкість і оптимізацію з коробки:

Prime
Prime
UpStore
UpStore
CyberStore
CyberStore
Chameleon
Chameleon
LuxShop
LuxShop
NewStore
NewStore

Характеристики

Системні вимогиOpenCart 2.3, ocStore 2.3, PHP 5.6+
Метод активаціїБез активації, За запитом в приватні повідомлення, За запитом на пошту, Автоматична активація, Через офіційний сайт доповнення
Ioncube LoaderНі
OpenCart3.0, 2.3, 2.2, 2.1, 2.0
ocStore3.0, 2.3.0.2.4, 2.3, 2.2, 2.1
OpenCart.Pro, ocShopНе проверялось
Звернення до сервера розробникаНі
Якщо сервер розробника недоступнийДополнение работает
ЗнижкаНі
Сумісно з шаблонамиDefault, Journal 2, UpStore 2.3, CyberStore 2.3
АдаптаціяПлатна
ЛокалізаціяУкраїнська, Англійська, Російська, інша
Версія1.0.2
Розмір файлу1 КБ
Опубліковано26.04.26
Оновлене15.07.26

Інші розширення OcBox


  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
Гість
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.