Kým je events.enabled true (predvolene), manažér pri každom výsledku odošle udalosť:
| Udalosť | Vlastnosti | Kedy |
|---|---|---|
LocationResolved | query, location, provider | Poskytovateľ vrátil Location (provider = jeho meno v pipeline). |
DistanceResolved | query, distance, provider | Poskytovateľ vzdialenosti vrátil Distance. |
LocationResolutionFailed | query, provider, error | Vyhľadávanie skončilo bez polohy. Všetci poskytovatelia minuli: provider a error označujú posledného nedostupného poskytovateľa a jeho ProviderUnavailableException (bez prístupových údajov), alebo sú oba null, keď odpoveď nemal nikto. Poskytovateľ vyhodil výnimku: ide o tohto poskytovateľa a jeho výnimku, ktorá sa potom vyhodí ďalej. |
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Geolocation\Events\LocationResolved;
Event::listen(function (LocationResolved $event): void {
logger()->info("Resolved {$event->location->city} via {$event->provider}");
});Ďalšie listenery — sledovanie trás a logovanie neúspešných vyhľadávaní:
use RoundlyConsulting\Geolocation\Events\DistanceResolved;
use RoundlyConsulting\Geolocation\Events\LocationResolutionFailed;
Event::listen(function (DistanceResolved $event): void {
logger()->info("Route of {$event->distance->distanceInMeters} m via {$event->provider}");
});
Event::listen(function (LocationResolutionFailed $event): void {
logger()->warning('Geolocation miss', [
'ip' => $event->query->ipAddress,
'provider' => $event->provider, // the last unreachable provider, or null
'error' => $event->error?->getMessage(), // redacted — never carries credentials
]);
});- Zásahy v cache neodosielajú udalosť — výsledok bol ohlásený už pri prvom určení.
- LocationResolutionFailed príde vždy, keď vyhľadávanie skončí bez polohy — aj keď boli všetci poskytovatelia nedostupní. Keď nastavíte záložnú polohu, poskytovateľ default odpovie na všetko, čo sa k nemu dostane, a udalosť potom príde, len keď niektorý poskytovateľ vyhodí výnimku.
- Jej error nikdy nenesie prístupové údaje: správa ProviderUnavailableException je od nich očistená.
- distanceMatrix() neodosiela žiadne udalosti.
GEOLOCATION_EVENTS=false # stop dispatching all three eventsPrejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.