Bug when use chain and GeoIp2 at first position with cache
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece pelos métodos executeQuery e geocodeQuery do provider GeoIp2 e, em seguida, trace como Chain::geocodeQuery lida com uma collection vazia do primeiro provider e com as leituras do cache para os providers posteriores. Reproduza uma chain com GeoIp2 primeiro e um provider personalizado em segundo; considera-se concluído quando uma resposta vazia do GeoIp2 não impedir mais que o provider posterior seja usado e o comportamento de erro pretendido estiver verificado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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();
- Linguagem predominante
- PHP
- Estrelas
- 4k
- Forks
- 525
- Merge médio
- 8min
- PRs com merge (30d)
- 1
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de geocoder-php/Geocoder
-
Wrong LocationIQ Bounds Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
geocoder-php/Geocoder#1272 ·
-
question
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
geocoder-php/Geocoder#1267 · 2 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
geocoder-php/Geocoder#1266 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 38/100
geocoder-php/Geocoder#1244 · 2 comentários · 2 reações ·
-
Add Support for IPQuery Abertaprovider
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
geocoder-php/Geocoder#1243 ·
Todas as issues de geocoder-php/Geocoder
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
getgrav/grav-plugin-api#45 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
RSS-Bridge/rss-bridge#5098 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
phingofficial/phing#2025 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
silverstripe/developer-docs#911 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100