Пропоную Laravel Shift за «20 баксів». Але ця сума може відрізнятися залежно від країни, тож якщо у вашій державі долар має на 50% меншу купівельну спроможність, я застосовую паритет купівельної спроможності.
Щоб визначити вашу країну, я використовую сервіс геокодування, який зіставляє IP з країною. Якщо це держава, для якої діє коригування, у верхній частині сторінки з’явиться банер із пропозицією активувати знижку.
Працюючи над прискоренням laravelshift.com через Cloudflare, я натрапив на ще один їхній безкоштовний сервіс — геокодування. Cloudflare додає заголовок країни до запиту перед його передачою на ваш вебсервер.
Заголовок CF-IPCountry — це дволітерний код країни, наприклад US або UK. У моєму випадку я використовував цей заголовок напряму, зіставляв код із назвою країни і перевіряв паритет купівельної спроможності.
Це дало дві переваги: по-перше, я прибрав сотні рядків коду; по-друге — зміг кешувати сторінку.
Раніше логіка перевірки заголовків робила сторінку надто динамічною для кешування, тому після завантаження доводилося робити API-запит для визначення країни.
Окрім зайвого коду, це був ще один, хоч і легкий, запит.
Оскільки заголовок доступний на рівні Cloudflare, я створив transformation rule, яка перевіряє код країни й додає відповідний query string до запиту.
Це дозволило кешувати дві версії сторінки: стандартну й ту, що показує банер паритету купівельної спроможності.
Також зазначу, що оскільки це опційна функція, місцезнаходження перевіряється вдруге перед активацією знижки.
Якщо хочете побачити повний рефакторинг коду, я стрімив це для курсу Confident Laravel.
А якщо прагнете пришвидшити завантаження своїх сторінок, зазирніть у мій майбутній відеокурс Fast Laravel.