---
title: "Nastavenia pre jedno volanie — Geolocation for Laravel | Roundly"
description: "Pripnite volanie na konkrétnych poskytovateľov, prepíšte prístupový údaj poskytovateľa či timeout pre jeden reťazec volaní a pridajte vlastné makrá."
url: https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel/nastavenia-volania
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Geolocation for Laravel](https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel.md)

# Nastavenia pre jedno volanie

## Výber poskytovateľov

Nemusíte konfigurovať všetkých poskytovateľov. Ak chcete spustiť práve jedného, nastavte pipeline v konfigurácii na jedno meno alebo ho pripnite pri volaní. provider() berie jedno meno, using() viac mien v poradí:

```php
Geolocation::provider('ipinfo')->locateIp($request->ip());
Geolocation::using('maxmind_database')->locateIp($request->ip());
Geolocation::using('maxmind_database', 'ipinfo')->locateIp($request->ip());

// The scope covers the whole call it is chained to — every IP of a batch included
Geolocation::provider('maxmind_database')->batch($ips);
```

Pripnutie nahradí pipeline pre dané volanie — ostatných poskytovateľov netreba konfigurovať. Nezaregistrované meno vyhodí UnknownProviderException.

## Prepísanie prístupového údaja alebo timeoutu

Prístupový údaj alebo timeout poskytovateľa upravíte pre jedno volanie bez zásahu do globálnej konfigurácie. Prístupový údaj patrí konkrétnemu dodávateľovi, preto withToken() a withConfig() uvádzajú meno cieľového poskytovateľa a žiadny iný poskytovateľ danú hodnotu neuvidí. withTimeout() platí pre všetkých poskytovateľov:

```php
// A credential is vendor-specific: name the provider it belongs to
Geolocation::withToken('ipinfo', 'runtime-token')->locateIp('8.8.8.8');
Geolocation::withConfig('ipinfo', ['token' => 'runtime-token', 'timeout' => 3])->locateIp('8.8.8.8');

// A timeout applies to every provider
Geolocation::withTimeout(10)->locateIp('8.8.8.8');

// e.g. a tenant's own Google key, for this one call
Geolocation::withToken('google', 'tenant-google-key')->locateAddress('Main Street 1, Springfield');
```

- Pribalení HTTP poskytovatelia čítajú dva kľúče prepisu. token nahradí token IPinfo, kľúč Google či IP2Location alebo licenčný kľúč webovej služby MaxMind (ID účtu zostane nastavené).
- timeout nahradí geolocation.timeout. Offline poskytovatelia maxmind\_database a default žiadny prepis nečítajú.
- withConfig() zlúči ľubovoľné kľúče pre uvedeného poskytovateľa; vlastní poskytovatelia môžu čítať akýkoľvek kľúč (pozrite Vlastní poskytovatelia).
- Meno poskytovateľa, ktorý nie je zaregistrovaný, vyhodí UnknownProviderException.
- Token vo withToken() aj prepisy vo withConfig() sú označené #\[SensitiveParameter\], a to aj pri volaní cez fasádu: nástroj na sledovanie chýb, ktorý zbiera argumenty zo stack frames, uvidí namiesto prístupového údaja SensitiveParameterValue — aj pri neznámom mene poskytovateľa či výnimke z poskytovateľa.

## Pravidlá rozsahu

- provider(), using() aj každé with\*() vracajú kópiu manažéra s obmedzeným rozsahom. Zdieľaný manažér sa nikdy nezmení, takže rozsah nepresiakne do neskorších volaní — ani keď poskytovateľ vyhodí výnimku.
- Rozsah alebo prepis platí presne tak dlho ako reťazec volaní, ku ktorému je pripojený, vrátane každej IP v batch().
- Pripnuté alebo prepísané volania obchádzajú cache — ani z nej nečítajú, ani do nej nezapisujú.

## Makrá

GeolocationManager je Macroable, takže mu môžete pridať vlastné metódy a volať ich cez fasádu:

```php
use RoundlyConsulting\Geolocation\GeolocationManager;

GeolocationManager::macro('countryOf', function (string $ip): ?string {
    /** @var GeolocationManager $this */
    return $this->locateIp($ip)?->countryIsoCode;
});

Geolocation::countryOf('8.8.8.8'); // "US"
```

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel.md)
