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
- 527
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire 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
-
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 IPQueryOuverteprovider
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
geocoder-php/Geocoder#1243 ·
-
Mapbox Geocoding v6Peut-être pris @davidbarratt l’a pris il y a 43 jours. Ouverteprovider
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
geocoder-php/Geocoder#1237 · 1 commentaire · 1 réaction ·
Toutes les issues de geocoder-php/Geocoder
Issues similaires
-
sync-en
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
sync-en
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 4 jours
-
Перевод устарел
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
-
bug
Difficulté 2/5 Une demi-journée Accessibilité débutants 76/100
m3ue/m3u-editor#1604 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
femiwiki/docker-mediawiki#1497 ·
Les mainteneurs répondent en général sous 1 jour