Bug when use chain and GeoIp2 at first position with cache
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par les méthodes executeQuery et geocodeQuery du provider GeoIp2, puis suivez la façon dont Chain::geocodeQuery gère une collection vide renvoyée par le premier provider et les lectures du cache pour les providers suivants. Reproduisez une chaîne avec GeoIp2 en premier et un provider personnalisé en second ; le travail est terminé lorsqu’une réponse vide de GeoIp2 n’empêche plus l’utilisation du provider suivant et que le comportement d’erreur attendu est vérifié.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
GeoIp2 return empty collection and save it in cache after that next providers(custom) load from cache empty collection instead of using his code
$result = json_decode($this->executeQuery($address));
if (null === $result) {
return new AddressCollection([]);
}
$result = json_decode(''); //NULL
private function executeQuery(string $address): string
{
$uri = sprintf('file://geoip?%s', $address);
try {
$result = $this->adapter->getContent($uri);
} catch (AddressNotFoundException $e) {
return '';
} catch (AuthenticationException $e) {
throw new InvalidCredentials(
$e->getMessage(),
$e->getCode(),
$e
);
} catch (OutOfQueriesException $e) {
throw new QuotaExceeded(
$e->getMessage(),
$e->getCode(),
$e
);
}
return $result;
}
I think there should not be return '';, but there should be fatal
public function geocodeQuery(GeocodeQuery $query): Collection
{
foreach ($this->providers as $provider) {
try {
$result = $provider->geocodeQuery($query);
if (!$result->isEmpty()) {
return $result;
}
} catch (\Throwable $e) {
$this->log(
'alert',
sprintf('Provider "%s" could geocode address: "%s".', $provider->getName(), $query->getText()),
['exception' => $e]
);
}
}
return new AddressCollection();
}
\Geocoder\Provider\Chain\Chain::geocodeQuery now always return empty collectioon \Geocoder\Model\AddressCollection();
- Langage dominant
- PHP
- Étoiles
- 4k
- Forks
- 525
- Merge moyen
- 8 min
- PR mergées (30 j)
- 1
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de geocoder-php/Geocoder
-
Wrong LocationIQ Bounds Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
geocoder-php/Geocoder#1272 ·
-
question
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
geocoder-php/Geocoder#1267 · 2 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
geocoder-php/Geocoder#1266 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 38/100
geocoder-php/Geocoder#1244 · 2 commentaires · 2 réactions ·
-
Add Support for IPQuery Ouverteprovider
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
geocoder-php/Geocoder#1243 ·
Toutes les issues de geocoder-php/Geocoder
Issues similaires
-
sync-en
Difficulté 1/5 1-3 heures Accessibilité débutants 85/100
-
sync-en
Difficulté 1/5 1-3 heures Accessibilité débutants 85/100
-
Перевод устарел
Difficulté 1/5 1-3 heures Accessibilité débutants 78/100
-
[6.x]: "Cannot use object of type stdClass as array" loading Users index (regression of #19182) Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100