NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Google Places for Laravel

Udalosti a logovanie

Každá požiadavka, ktorú klient pošle do Google, spustí práve jednu udalosť životného cyklu, na ktorú sa môžete napojiť kvôli logovaniu, metrikám či upozorneniam: PlacesResponseReceived pri odpovedi, PlacesRequestFailed pri chybe alebo nedostupnom API. Ani jedna udalosť nenesie API kľúč:

use RoundlyConsulting\GooglePlaces\Events\PlacesRequestFailed;
use RoundlyConsulting\GooglePlaces\Events\PlacesResponseReceived;

// PlacesResponseReceived: endpoint, httpStatus, googleStatus, durationMs
// PlacesRequestFailed:    endpoint, httpStatus, googleStatus, message
UdalosťVlastnostiKedy
PlacesResponseReceivedendpoint, httpStatus, googleStatus, durationMsPo každom zodpovedanom volaní — vrátane 404 pri detaile a ZERO_RESULTS pri geokódovaní.
PlacesRequestFailedendpoint, httpStatus, googleStatus, messageKeď Google vráti chybu alebo nie je dostupný; pri zlyhaní spojenia je httpStatus 0.

endpoint je jedna z hodnôt details, autocomplete, textSearch (aj pre findPlace() a každú stránku stránkovaného vyhľadávania), nearbySearch, geocode, geocodeAddress, distance, computeMatrix, photoUri alebo photoContents (aj pre photo()->url(), contents() a save()). googleStatus je stavový reťazec Google, ak ho odpoveď obsahuje; správa o zlyhaní je začiernená. Volanie, ktoré nič neodošle, nespustí nič: výsledok z cache, photoUrl() (zostavená lokálne) a volanie odmietnuté pred odoslaním — bez nastaveného kľúča alebo pri rýchlom zlyhaní klientskeho rate limitu (RateLimitExceededException). check() výsledok vracia priamo, preto ani jeho sondy udalosti nespúšťajú.

Počúvanie udalostí

use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Log;
use RoundlyConsulting\GooglePlaces\Events\PlacesRequestFailed;
use RoundlyConsulting\GooglePlaces\Events\PlacesResponseReceived;

// e.g. in AppServiceProvider::boot()
Event::listen(function (PlacesResponseReceived $event): void {
    if ($event->durationMs > 2000) {
        Log::warning('Slow Google call', ['endpoint' => $event->endpoint, 'ms' => $event->durationMs]);
    }
});

Event::listen(function (PlacesRequestFailed $event): void {
    if ($event->googleStatus === 'PERMISSION_DENIED') {
        Log::critical('Google API key rejected', ['endpoint' => $event->endpoint, 'message' => $event->message]);
    }
});

Logovanie požiadaviek

Voliteľné logovanie každej požiadavky stojí na tých istých udalostiach. Odpovede sa logujú na úrovni info, zlyhania na úrovni warning — s endpointom, HTTP stavom, stavom Google a trvaním alebo správou. API kľúč sa nikdy nezaloguje — správa o zlyhaní sa začierni, ako opisuje Spracovanie chýb:

GOOGLE_PLACES_LOGGING=true
GOOGLE_PLACES_LOG_CHANNEL=stack   # optional; defaults to the app's default channel

Vlastné udalosti HTTP klienta Laravelu a nástroje, ktoré ich zaznamenávajú, napríklad Telescope, vidia každú požiadavku tak, ako bola odoslaná — URL požiadavky na Geocoding API obsahuje kľúč. Tento záznam vzniká vo vašej aplikácii, mimo balíka; filtrujte ho tam.

Prejavte 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 kryptomien

Odoslaní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.