/skyeng

Skyeng Backend Developer #L1

Primary LanguagePHP

  1. Декоратор должен хранить ссылку на оборачиваемый объект. Нужно изменить конструктор декоратора, при этом можно добавить $logger прямо в конструктор и избавиться от setLogger(). Изменим строку $result = parent::get($input);
  2. Декоратор и Датапровайдер должны реализовавать один интерфейс, поэтому лучше добвить IDataProvider. При этом изменим название метода getResponse() на get().
  3. Название декоратора лучше заменить на CachingDataProvider, так понятнее.
  4. В секции catch лучше выкинуть исключение, что бы его можно было обработать в контроллере
  5. Кэш подготавливается, но не сохраняется, нужно добавить $this->cache->save($cacheItem);
  6. В getCacheKey() я бы добавил md5(), так ключ получится фиксированной длины и точно строковый.
  7. Добавил логирование ошибки при добавлении в кэш.