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

Zapnite cache, aby boli opakované vyhľadávania lacné a šetrné k limitom:

GEOLOCATION_CACHE=true
GEOLOCATION_CACHE_STORE=redis      # null = the default cache store
GEOLOCATION_CACHE_TTL=86400        # seconds
GEOLOCATION_CACHE_PREFIX=geolocation
  • Úspešné výsledky locate() a distance() sa cachujú na cache.ttl sekúnd; výsledky null sa necachujú nikdy.
  • Položky batch() idú cez locate(), takže každá IP sa cachuje samostatne. Matice vzdialeností sa necachujú.
  • Volania pripnuté cez using() / provider() alebo s prepismi withToken() / withTimeout() / withConfig() cache úplne obchádzajú.
  • Zásah v cache sa vráti okamžite a neodošle žiadnu udalosť.
  • Záložná poloha sa nikdy necachuje: odpovedala len preto, že skutoční poskytovatelia nie, takže ďalšie volanie sa ich opýta znova.

Bezpečné s akýmkoľvek úložiskom

Výsledky sa ukladajú ako obyčajné polia a pri čítaní sa znovu zostavia, takže cache funguje aj vtedy, keď úložisko odmieta deserializovať triedy (cache.serializable_classes v Laraveli nastavené na false). Záznam, ktorý balík nepozná — napríklad zapísaný staršou verziou —, sa berie ako neúspešný zásah, nikdy ako výnimka.

Odstránenie a vyprázdnenie

Jeden záznam odstránite cez forget() — prijíma ten istý GeolocationQuery alebo DistanceQuery, ktorý ste vyhľadávali —, všetky naraz cez flushCache():

use RoundlyConsulting\Geolocation\DataTransferObjects\DistanceQuery;
use RoundlyConsulting\Geolocation\DataTransferObjects\GeolocationQuery;
use RoundlyConsulting\Geolocation\Facades\Geolocation;

Geolocation::forget(GeolocationQuery::forIp('8.8.8.8'));   // true when an entry was removed
Geolocation::forget(DistanceQuery::between($from, $to));  // distances too

Geolocation::flushCache();                                 // every lookup and distance

flushCache() funguje s akýmkoľvek úložiskom a iných kľúčov sa nedotkne: kľúče v cache nesú číslo generácie ({prefix}:v{generation}:locate:{hash}) a vyprázdnenie ho posunie ďalej, takže staršie záznamy sa už nikdy neprečítajú a vypršia podľa vlastného TTL.

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.