Я думаю, что единственный возможный способ сделать это - иметь уникальные ключи кеша для каждого сайта.
Может основываться на уникальном идентификаторе веб-сайта (идентификатор или URL).Я думаю, что логика для получения ключей кеша также может быть немного инкапсулирована.В моей текущей настройке у меня есть что-то похожее, когда ключи кеша различаются в зависимости от локали.
protected function getCacheKey($key, $locale = null)
{
$prefix = '__app_cache_';
$suffix = $locale ? "_$locale" : '';
return $prefix . $key . $suffix;
}
Например, ваша логика может выглядеть примерно так:
protected function getCacheKey($key, Website $website)
{
$prefix = '__app_cache_';
$suffix = "_{$website->id}" : '';
return $prefix . $key . $suffix;
}
, а затем, чтобы получить ключ кэша menu
, вы должны сделать что-то вроде этого:
$cache->getCacheKey($menu, $website);
Это, очевидно, всего лишь пример, и его необходимо адаптировать к вашим конкретным потребностям.