geocoder-php/algolia-places-provider
Algolia Places provider for PHP Geocoder. Geocode and reverse geocode using Algolia’s Places API with optional authentication, locale-aware queries, and PSR-18 HTTP clients. Install via Composer and use with StatefulGeocoder for localized results.
algolia-places-provider is a specialized Geocoder PHP provider for Algolia Places API, enabling reverse geocoding (address-to-coordinates) and forward geocoding (coordinates-to-address) via Algolia’s geospatial search infrastructure. It fits well in:
laravel-geo packages, Eloquent spatial queries) integrates seamlessly with Geocoder PHP, making this a plug-and-play solution for location-aware apps.geocoder-php/geocoder).geocoder-php/geocoder (v4+ recommended).ServiceProvider or standalone.| Risk Area | Assessment | Mitigation |
|---|---|---|
| Algolia API Changes | Algolia may modify endpoints/responses; provider lacks active maintenance. | Monitor Algolia’s changelog and fork if needed. |
| Rate Limiting | Algolia’s free tier has strict limits (10k/month). | Implement caching (e.g., Redis) for frequent queries; upgrade tier if scaling. |
| Error Handling | Provider may not cover all Algolia error cases (e.g., quota exceeded). | Wrap calls in try-catch; extend provider with custom error handling. |
| Deprecation | Last release in 2025-04; no GitHub activity. | Treat as "read-only"; prefer community-maintained forks or Algolia’s official SDK. |
geocoder-php/geocoder and geocoder-php/algolia-places-provider.use Geocoder\Geocoder;
use Geocoder\Provider\AlgoliaPlacesProvider;
$geocoder = new Geocoder();
$geocoder->registerProvider(new AlgoliaPlacesProvider('APP_ID', 'API_KEY'));
$result = $geocoder->geocodeQuery('1600 Amphitheatre Parkway, Mountain View')->fetch();
$this->app->bind(AlgoliaPlacesProvider::class, function ($app) {
return new AlgoliaPlacesProvider(config('services.algolia.id'), config('services.algolia.key'));
});
use Geocoder\Geocoder;
use Geocoder\Provider\AlgoliaPlacesProvider;
class LocationService {
protected $geocoder;
public function __construct(Geocoder $geocoder) {
$this->geocoder = $geocoder;
}
public function findCoordinates(string $address) {
return $this->geocoder->geocodeQuery($address)->first();
}
}
.env:
ALGOLIA_APP_ID=your_app_id
ALGOLIA_API_KEY=your_api_key
composer require geocoder-php/geocoder geocoder-php/algolia-places-provider
language, aroundLatLng) for precision.geocoder-php/geocoder to a stable version (e.g., ^4.0).composer why-not to track outdated dependencies.429 Too Many Requests: Implement exponential backoff + caching.403 Forbidden: Verify API key permissions.0 Results: Check query parameters (e.g., aroundLatLng bounds).debug() method.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Algolia API Outage | Geocoding fails globally. | Fallback to cached responses or a secondary provider (e.g., OpenStreetMap). |
| Rate Limit Exceeded | 429 errors; degraded UX. |
How can I help you explore Laravel packages today?