Skip to content

connorholt/skyeng_review

Repository files navigation

  1. DecoratorManager название не раскрывает, что делает класс
  2. $this->logger->critical('Error'); не информативное сообщение в логе, хотя есть $exception, и можно нормально сообщение сделать
  3. Размытые обязанности у декоратора, он и кеширует (+обязанность уметь делать ключ кеша) и логирует, и при этом т.к. наследник DataProvider, весь функционал и обязанности дата провайдера тоже переходят ему. Нарушение SOLID.
  4. Логер устанавливается отдельным методом, по дефолту никакого нет, т.е. если я вызову getResponse могу словить вызов $this->logger->critical('Error') на null
  5. У декоратора должна храниться ссылка на объект, который он декоррирует и индентичный интерфейс, в этом классе DecoratorManager сделано не так, и еще ловится исключение
  6. Чтобы сохранить кеш надо вызвать $this->cache->save($cacheItem);
  7. json_encode($input) как ключ, не самый лучший вариант, например в мемкеше некотоые символы не могут использоваться в ключе, это следует учесть.
  8. Нет возвращаемых типов у функций и тайп хинтинга у параметов функций.
  9. isHit, я бы заменил на проверку результата get. Возможно ситуация race condition и тогда несколько запросов пойдут обновлять кеш.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages