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

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


kJlukOo

Recommended Posts

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

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

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

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


58 минут назад, vtkach сказал:

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

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

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

 

вы правы

 

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

 

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

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

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

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

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


12 минут назад, vtkach сказал:

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

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

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

  • +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);
}

 

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


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

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

27 минут назад, markimax сказал:

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

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

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

11 минут назад, kJlukOo сказал:

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

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

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

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

1 минуту назад, markimax сказал:

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

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

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

1 минуту назад, markimax сказал:

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

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

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

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

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

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

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

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


3 минуты назад, vtkach сказал:

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

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

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

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

 

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

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

6 минут назад, vtkach сказал:

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

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

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

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

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

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

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


  • 4 weeks later...

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 2 months later...

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

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


2 часа назад, Triffids сказал:

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

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

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

8 часов назад, kJlukOo сказал:

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

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

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

 

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


1 час назад, Triffids сказал:

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

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

 

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

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

  • 6 months later...

Добрый день.

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

и

 

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

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

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


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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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