Я сделал помощник представления, который проверяет, существует ли внешний URL-адрес, прежде чем выводить его. Некоторые из этих URL-адресов находятся в моем основном макете, поэтому проверка сильно замедляет работу моего сайта, постоянно вызывая все эти URL-адреса, чтобы проверить, существуют ли они. Я хотел бы сохранить вывод этой функции, чтобы она проверяла URL-адрес только в том случае, если тот же самый не был проверен менее чем за час или день. Я считаю, что я должен использовать Zend Cache для этого? Но я понятия не имею, с чего начать, есть ли у вас какие-либо предложения, простые решения или какое-то базовое руководство для изучения? Спасибо!
ZF2 - Сохранение результата функции в кеше
22.03.2015
Ответы:
1
Добавьте глобальную конфигурацию для службы кэширования, например здесь:
config/autoload/global.php
'service_manager' => array(
'abstract_factories' => array(
'Zend\Cache\Service\StorageCacheAbstractServiceFactory',
)
),
config/autoload/cache.global.php
return array(
'caches' => array(
// Cache config
)
)
Используйте factory для создания своего View Helper:
Application/Module.php::getViewHelperConfig()
'LinkHelper' => function ($sm) {
$locator = $sm->getServiceLocator();
return new LinkHelper($locator->get('memcached'))
}
Используйте службу кеша в вашем View Helper:
LinkHelper.php
protected $cache;
public function __construct($cache)
{
$this->cache = $cache;
}
public function __invoke($url)
{
$cacheKey = md5($url);
if ($this->cache->hasItem($cacheKey) {
return $this->cache->getItem($cacheKey);
}
$link = ''; // Parse link
$this->cache->setItem($cacheKey, $link);
return $link;
}
23.03.2015
Новые материалы
Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..
Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально
Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..
Частный метод Python: улучшение инкапсуляции и безопасности
Введение
Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..
Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования
Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..
Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv)
Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..
Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..
Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..
memcached
, вы можете просто использовать кэшfilesystem
. Пример конфигурации вы можете увидеть здесь. И не забудьте сделать каталогdata/cache
доступным для записи! 24.03.2015data/cache
— здесь вы увидите несколько текстовых файлов. 24.03.2015FileSystem
, и я думаю, что изменить его логику будет сложно. Попробуйте поиграть с параметры. И, конечно же, вы можете написать собственный кеш-адаптер, если у вас есть много времени и терпения :) 25.03.2015