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

Open source

Geolocation for Laravel

Inštalácia
composer require roundly-consulting/geolocation-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Natívna geolokačná vrstva pre Laravel. Určte polohu z IP adresy, poštovej adresy alebo dvojice súradníc — aj vzdialenosť cesty medzi dvoma bodmi — cez zoradenú pipeline poskytovateľov: MaxMind, IP2Location, IPinfo, Google a nastaviteľnú záložnú polohu. Obsahuje natívnu čítačku .mmdb na úplne offline vyhľadávanie IP, pomocníkov na geofencing, Eloquent cast pre súradnice, validačné pravidlo, cache, udalosti a testovací fake. Pod licenciou MIT, postavené na vlastnom HTTP klientovi Laravelu — bez SDK dodávateľov, so závislosťou len na troch malých balíkoch Roundly.

Čo získate

Pipeline poskytovateľov

MaxMind, IP2Location, IPinfo, Google a statická záložná poloha, skúšané v poradí — vyhráva prvá skutočná odpoveď, nedostupné API sa preskočí. Poradie zmeníte v konfigurácii alebo pri volaní.

Natívna čítačka MaxMind

Offline vyhľadávanie IP z lokálneho súboru .mmdb vstavanou binárnou čítačkou a príkaz, ktorý databázu stiahne a aktualizuje.

Vzdialenosti a matice

Vzdialenosť a čas cesty autom či pešo cez Google, celé mriežky východísk × cieľov jedným volaním a offline vzdialenosť podľa Haversina.

Geofencing a Eloquent

Kontrola okruhu, bod v polygóne, azimuty, stredy a ohraničujúce obdĺžniky, plus cast Coordinates a query scope withinRadius().

Tempo, cache a udalosti

Limity požiadaviek pre každého poskytovateľa s adaptívnym Retry-After, voliteľné cachovanie výsledkov a udalosti, na ktoré môžete reagovať.

Fasáda, DI a zaznamenávajúci fake

Volajte fasádu Geolocation alebo injektujte GeolocationManager; Geolocation::fake() zaznamená vyhľadávania, vzdialenosti, aktualizácie aj prácu s cache.

Validácia a nástroje

Validačné pravidlo pre súradnice, makro $request->location() a dva Artisan príkazy — vyhľadanie z terminálu a aktualizácia MaxMind.

Dokumentácia

Inštalácia

Inštalácia cez Composer, voliteľné publikovanie konfigurácie a prvá poloha na jeden riadok — bez migrácií.

Konfigurácia

Všetky konfiguračné kľúče, predvolené hodnoty a env premenné — pipeline, poskytovatelia, timeout, cache, udalosti, záložná poloha a služby.

Fasáda Geolocation

Všetky metódy fasády Geolocation na jednom mieste — poloha, dávky, vzdialenosti a matice, pripnutie a prepísanie, aktualizácia databázy a cache.

DI a akcie

Bez fasády: injektujte GeolocationManager s rovnakým API alebo spúšťajte obnovu MaxMind ako UpdateDatabaseAction z vlastných jobov.

Ako to funguje

Zoradená pipeline pomenovaných poskytovateľov — vyhráva prvá skutočná odpoveď, nedostupné API sa preskočí a voliteľná záložná poloha je posledná možnosť.

Poskytovatelia

Nastavenie IPinfo, IP2Location, Google a záložnej polohy — prístupové údaje, čo ktorý poskytovateľ určí a ktoré polia Location vyplní.

MaxMind

Offline vyhľadávanie IP z lokálneho súboru .mmdb natívnou čítačkou, sťahovanie databázy cez Artisan a webová služba GeoIP2 Precision.

Určenie polohy

Určte Location z IP, aktuálnej požiadavky, adresy alebo súradníc — plus objekt Location, výstup v JSON a hromadné vyhľadávanie.

Súradnice, dopyty a enumy

Validovaný hodnotový objekt Coordinates, vzdialenosť podľa Haversina, pomenované konštruktory GeolocationQuery a DistanceQuery a oba enumy.

Vzdialenosť a matica

Vzdialenosť a čas cesty autom alebo pešo medzi dvoma bodmi a celá mriežka východísk × cieľov jedným volaním.

Geofencing

Kontrola okruhu, zóny v tvare polygónu, azimuty, stredy a ohraničujúce obdĺžniky na Coordinates — čisté PHP bez volaní API.

Eloquent modely

Ukladajte hodnotový objekt Coordinates na ľubovoľný model cez trait HasLocation alebo CoordinatesCast a hľadajte blízke záznamy cez withinRadius().

Validácia a požiadavky

Overte vstup zemepisnej šírky a dĺžky cez Rule::coordinates() a určte polohu návštevníka makrom $request->location().

Nastavenia pre jedno volanie

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

Vlastní poskytovatelia

Zapojte vlastný zdroj polohy alebo vzdialenosti do pipeline cez extend() alebo mapu providers, vrátane prepisov a limitov požiadaviek.

Obmedzenie požiadaviek

Spomaľte každého HTTP poskytovateľa podľa vlastného limitu s adaptívnym Retry-After alebo nechajte volanie po prekročení stropu rýchlo zlyhať.

Cachovanie

Cachujte úspešné výsledky locate() a distance() v ľubovoľnom cache store a znížte náklady na API aj latenciu — chyby sa necachujú.

Udalosti

Počúvajte LocationResolved, DistanceResolved a LocationResolutionFailed a vyhľadávania logujte, auditujte alebo na ne reagujte.

Artisan príkazy

Určte polohu priamo z terminálu na overenie prístupových údajov a stiahnite alebo aktualizujte databázu MaxMind.

Výnimky

Všetky typované výnimky balíka a kedy sa vyhadzujú, ako sa preskočia nedostupní poskytovatelia a ako všetko zachytiť na jednom mieste.

Testovanie

Geolocation::fake() zaznamená vyhľadávania, vzdialenosti, obnovy aj prácu s cache s pripravenými výsledkami — alebo nasimulujte HTTP a limiter.

Požiadavky

PHP 8.4+, Laravel 12 alebo 13, ext-zlib a ext-phar a prístupové údaje len k HTTP poskytovateľom, ktorých zapnete.

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.