Awilum
Новичок
Доброе времени суток!
Проводя оптимизацию кода по рекомендациям blackfire.io дошел до пункта "YAML parsing should be cached in production" и вот я решил значит в своей обвёртке над YAML::decode добавить кеширование для всего что обрабатывается Yaml парсером, а в качестве названия ключа использую хеш контента.
Тестирую уже который день подряд и не вижу проблем с текущими данными и с новыми тоже, вроде бы все работает отлично. Одинаковый контент хранится под одним ключом, а если разный или новый, то хранится он под новым ключем.
Я не совсем уверен в том что можно ли использовать хеш контента в качестве названия ключа и не вылезет ли это проблемой в будущем ? или все же стоит использовать более осмысленное именование ключей - передавая их название отдельным параметром в метод public function decode ?
Проводя оптимизацию кода по рекомендациям blackfire.io дошел до пункта "YAML parsing should be cached in production" и вот я решил значит в своей обвёртке над YAML::decode добавить кеширование для всего что обрабатывается Yaml парсером, а в качестве названия ключа использую хеш контента.
Код:
public function decode(string $input)
{
$key = md5($input);
if ($this->flextype['cache']->contains($key)) {
return $this->flextype['cache']->fetch($key);
} else {
$res = YamlParser::decode($input);
$this->flextype['cache']->save($key, $res);
return $res;
}
}
Я не совсем уверен в том что можно ли использовать хеш контента в качестве названия ключа и не вылезет ли это проблемой в будущем ? или все же стоит использовать более осмысленное именование ключей - передавая их название отдельным параметром в метод public function decode ?