Bug when use chain and GeoIp2 at first position with cache
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne mit den Methoden executeQuery und geocodeQuery des GeoIp2-Providers und verfolge anschließend, wie Chain::geocodeQuery eine leere Collection vom ersten Provider sowie Cache-Lesevorgänge für nachfolgende Provider behandelt. Reproduziere eine Chain mit GeoIp2 an erster Stelle und einem benutzerdefinierten Provider an zweiter Stelle; die Arbeit gilt als abgeschlossen, wenn eine leere GeoIp2-Antwort nicht mehr verhindert, dass der nachfolgende Provider verwendet wird, und das vorgesehene Fehlerverhalten verifiziert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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();
- Vorherrschende Sprache
- PHP
- Sterne
- 4k
- Forks
- 528
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus geocoder-php/Geocoder
-
question
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
geocoder-php/Geocoder#1267 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
geocoder-php/Geocoder#1266 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 38/100
geocoder-php/Geocoder#1244 · 2 Kommentare · 2 Reaktionen ·
-
Add Support for IPQueryOffenprovider
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
geocoder-php/Geocoder#1243 ·
-
Mapbox Geocoding v6Evtl. vergeben @davidbarratt hat das vor 43 Tagen übernommen. Offenprovider
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
geocoder-php/Geocoder#1237 · 1 Kommentar · 1 Reaktion ·
Alle Issues in geocoder-php/Geocoder
Ähnliche Issues
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 4 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
ProfessionalWiki/NeoWiki#1637 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Перевод устарел
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
bug
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 76/100
m3ue/m3u-editor#1604 ·
Maintainer antworten meist innerhalb von 1 Tag