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

[Поддержка] CART CACHE - кэшируем корзину (cart.php => getProducts)


kJlukOo

Recommended Posts

Это маловероятно, так как кеш самоочищается раз в час.

Файлы сессий тоже хранятся в файлах.

Нужно будет у себя попробовать метод с кешем.

Надіслати
Поділитися на інших сайтах


  В 02.09.2018 в 15:46, vtkach сказав:

Это маловероятно, так как кеш самоочищается раз в час.

Файлы сессий тоже хранятся в файлах.

Нужно будет у себя попробовать метод с кешем.

Expand  

 

вы правы

 

ну это нормально. если для каждего юзера хранить корзину вечно, то памяти писец. идеологич сесси оптимально подходит под эту тему

 

с кешем заморочка в получении сесс айди, точнее лишее действие. зачем? в этом есть смысИл?

  • +1 1
Надіслати
Поділитися на інших сайтах

А какое лишние действие? Сессия инициализируется в index.php, а тут просто берется из реестра:

$this->session = $registry->get('session');

Змінено користувачем vtkach
Надіслати
Поділитися на інших сайтах


  В 02.09.2018 в 18:42, vtkach сказав:

А какое лишние действие? Сессия инициализируется в inex.php, а тут просто берется из реестра:

$this->session = $registry->get('session');

Expand  

я о генерации ключа для кеша через айди сессии + айди магазина + имя кошечкии тд. зачем енто? если механизм сессии об этом сам заботится. генерит ключ юзеру сессии. и обеспечивает безопасность и надежность

  • +1 1
Надіслати
Поділитися на інших сайтах

Согласен, это все кроме session_id там наверное лишнее

$cache = 'cart.products' . '.' . $this->session->getId();
$cache_data = $this->cache->get($cache);
if (!empty($cache_data)) {
	$product_data = $cache_data;
} else {
.........

	$this->cache->set($cache, $product_data);
}

 

Надіслати
Поділитися на інших сайтах


Ребята... будите "тягать"  переменные по сессии - получите. мягко сказать, по рукам
Сессия не  для того

Надіслати
Поділитися на інших сайтах

  В 03.09.2018 в 05:16, markimax сказав:

Ребята... будите "тягать"  переменные по сессии - получите. мягко сказать, по рукам
Сессия не  для того

Expand  

привет. а для чего? конструктива бы

Надіслати
Поділитися на інших сайтах

  В 03.09.2018 в 05:32, kJlukOo сказав:

привет. а для чего?

Expand  

Ну это "мат. часть" code style php
Нельзя динамику переменных тягать по сессии, это "индусский" г.. код

Всё. Забудьте про тягание переменных через сессию. Хотите сделать правильно  ищите другой code style

Надіслати
Поділитися на інших сайтах

  В 03.09.2018 в 05:46, markimax сказав:

Всё. Забудьте про тягание переменных через сессию. Хотите сделать правильно  ищите другой code style

Expand  

Так подскажите же коллегам как правильнее сделать, тем более для некоммерческого модуля

Надіслати
Поділитися на інших сайтах

  В 03.09.2018 в 05:46, markimax сказав:

Ну это "мат. часть" code style php
Нельзя динамику переменных тягать по сессии, это "индусский" г.. код

Всё. Забудьте про тягание переменных через сессию. Хотите сделать правильно  ищите другой code style

Expand  

сессия и создана для решения подобных проблем. а кроме предрассудков есть коструктив или предложения?

Надіслати
Поділитися на інших сайтах

Мне тоже показалось что хранить данные для кеша в сессии это как-то неправильно, вот потому я и спросил почему автор решил хранить данные именно в сессии.

В первой версии данные хранились просто в переменной, по аналогии как было в 1.5 и сейчас в 3.

А если делать "кеш" данных о товарах в корзине, то как по мне, лучше и сохранять в стандартном кеше $this->cache.

Надіслати
Поділитися на інших сайтах


  В 03.09.2018 в 05:57, vtkach сказав:

Мне тоже показалось что хранить данные для кеша в сессии это как-то неправильно, вот потому я и спросил почему автор решил хранить данные именно в сессии.

В первой версии данные хранились просто в переменной, по аналогии как было в 1.5 и сейчас в 3.

А если делать "кеш" данных о товарах в корзине, то как по мне, лучше и сохранять в стандартном кеше $this->cache.

Expand  

но юзер находится в сессии. и время жизни корзины равно времени жизни сессии. по моему оптимально. зачем мудрить к кешем и ключами и временем жизни, если сессия дает все и сразу

 

если у кого то есть мысли по поводу этого. но без гкод, индусы и прдобных предрассудков. я готов внимать, думать и делать лучше

  • +1 1
Надіслати
Поділитися на інших сайтах

  В 03.09.2018 в 06:05, vtkach сказав:

В версиях <= 2.0 корзина и хранилась в сессии, по моему? $this->session->data['cart']

Expand  

содержимое, кажись да

не если сессия кому-то не угодила можно всегда на файловом кеше сделать. приеду и на основании твоей мысли выложу второй мод на кеше работающий. если ты не против

  • +1 1
Надіслати
Поділитися на інших сайтах

Да, можно попробовать, спасибо.

В версиях 2.1 - 2.3 непонятно почему отошли от сохранения в переменной, private $data = array(); объявлена но нигде не используется.

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

вот и перекинул хранение на кеш

теперь модуль платный)

кто не успел - тот не успел :grin:

кто участвовал в беседе. дам бесплатно в личке

  • +1 2
Надіслати
Поділитися на інших сайтах

  • 1 month later...
  В 26.09.2018 в 07:17, kJlukOo сказав:

вот и перекинул хранение на кеш

теперь модуль платный)

кто не успел - тот не успел :grin:

кто участвовал в беседе. дам бесплатно в личке

Expand  

И правильно
Так по "феншую" и web code style

Сессия это идентификатор юзверя фактически
А не "хранилище" массивов данных
Заметьте Даниэль не тягает по сессии ничего кроме токенов, "авторизации", языка и валюты (это тоже идентификаторы юзверя)
Для таких переменных она и предназначена.
А начинают тягать по сессии "шо попало" и скажите потом как все это "отделять" кешировщикам ..., наплевать (?), тогда кеш может отдаваться не корректный
Вот поэтому не по "феншую" тягать массивы данных по сессии (по рукам бы надавал)

  • +1 2
Надіслати
Поділитися на інших сайтах

  • 2 months later...

караул. проблема: сначала я не залогинен. в корзине 1 товар, далее иду и логинюсь. в иконке корзины все верно, у меня 180 товаров что было в прошлой сессии +1 товар сегодняшний. отлично, но тыкаю на иконку корзины - там 1 товар, а не 181. выходит он обновил счетчик верно, но не натолкал в корзину содержимое.
теперь если добавить еще товар, кеш обновляется и все 182 проявляются в корзине.

Змінено користувачем Triffids
Надіслати
Поділитися на інших сайтах


  В 15.01.2019 в 20:24, Triffids сказав:

караул. проблема: сначала я не залогинен. в корзине 1 товар, далее иду и логинюсь. в иконке корзины все верно, у меня 180 товаров что было в прошлой сессии +1 товар сегодняшний. отлично, но тыкаю на иконку корзины - там 1 товар, а не 181. выходит он обновил счетчик верно, но не натолкал в корзину содержимое.
теперь если добавить еще товар, кеш обновляется и все 182 проявляются в корзине.

Expand  

дайте доступы в личку гляну

Надіслати
Поділитися на інших сайтах

  В 15.01.2019 в 22:37, kJlukOo сказав:

дайте доступы в личку гляну

Expand  

ничего не понимаю. проблема рассосалась. у меня есть тестовая копия сайта (виртуалка), пока там настраивал доступ - заметил что проблема на тесте и не воспроизводится. включил снова модуль на проде - тоже не воспроизводится. весьма странно, учитывая что я проверял на двух пользователях, прежде чем расстроится.

ладно, буду тестировать еще, но попутно вопрос - хорошая идея будет еще включить на ocStore 2.3 memcached (или memcache)  ? я верно понимаю, что ваш фикс будет кеши корзины в memcache тоже хранить?

 

Надіслати
Поділитися на інших сайтах


  В 16.01.2019 в 07:30, Triffids сказав:

ничего не понимаю. проблема рассосалась. у меня есть тестовая копия сайта (виртуалка), пока там настраивал доступ - заметил что проблема на тесте и не воспроизводится. включил снова модуль на проде - тоже не воспроизводится. весьма странно, учитывая что я проверял на двух пользователях, прежде чем расстроится.

ладно, буду тестировать еще, но попутно вопрос - хорошая идея будет еще включить на ocStore 2.3 memcached (или memcache)  ? я верно понимаю, что ваш фикс будет кеши корзины в memcache тоже хранить?

 

Expand  

попробуйте с мемкэшем. должно работать

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 6 months later...

Добрый день.

Писать вопрос везде задолбался, дам ссылки, так понятней будет.

и

 

Дали ссылку на этот файл. Мне поможет? 

Другой мой сайт с такими же настройками и "проблемами" но на 1.5.6.4 не имеет никаких проблем, возможно в связи с кешированием в той версии корзины.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

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