/**
  * @param int|string          $id
  * @param GetTagPhotosOptions $options
  *
  * @return Photo[]
  */
 public function getPhotos($id, GetTagPhotosOptions $options = null)
 {
     $id = urlencode($id);
     $options = $options ?: GetTagPhotosOptions::createDefault();
     if (!$options->validate()) {
         throw new InvalidParamException(VarDumper::dumpAsString($options->getErrors()));
     }
     $photos = [];
     $httpClient = $this->yandexFotki->getApiHttpClient();
     $request = $httpClient->get("tag/{$id}/photos/{$options->sort}/", ['format' => 'json', 'limit' => $options->limit]);
     do {
         $response = $request->send();
         $photosCollection = $this->yandexFotki->getFactory()->getTagPhotosCollectionModel();
         $photosCollection->loadWithData($response->getData(), true);
         $photos = ArrayHelper::merge($photos, $photosCollection->getPhotos());
         $request = $httpClient->get($photosCollection->linkNext);
     } while ($photosCollection->linkNext);
     return $photos;
 }