erag/laravel-location-kit
Laravel Location Kit provides complete location datasets (countries, states, cities, currencies, timezones, dial codes) with Laravel-friendly APIs: facades/helpers, Blade directives, caching, search, Inertia shared props, plus bundled Vue composables and React hooks.
LocationKit::states('india')), but lacks ORM integration for complex relationships.composer require, php artisan erag:install-location-kit). No database migrations or schema modifications.storage/app/location/).php artisan location-kit:clear-cache) is manual.storage/app/location/ override mechanism early.LocationKit::search()) is basic. Will it suffice, or do you need fuzzy matching (e.g., via Laravel Scout or Algolia)?page.props.locationKit with zero additional API calls.@locationCountries) provide quick integration without frontend JS.erag:install-location-kit.LocationKit::countries(), LocationKit::states('india'), etc.config/location-kit.php (e.g., share currencies but not cities).useLocationKit() for Vue).maskPhone(), phoneMaxLength().page.props.locationKit is accessible in frontend components.storage/app/location/ (e.g., custom cities for a specific region).php artisan location-kit:clear-cache).required|in:LocationKit::countryOptions())..env.| Step | Task | Dependencies | Owner |
|---|---|---|---|
| 1 | Install package | None | Backend |
| 2 | Configure Inertia sharing | Step 1 | Backend |
| 3 | Replace hardcoded location data | Step 1 | Backend |
| 4 | Test facades in Blade/controllers | Step 3 | QA |
| 5 | Install Vue/React packages | Step 1 | Frontend |
| 6 | Integrate composables/hooks | Step 5 | Frontend |
| 7 | Implement phone masking/validation | Step 6 | Frontend |
| 8 | Override data (if needed) | Step 1 | Backend |
| 9 | Benchmark performance | Step 8 | DevOps |
| 10 | Document API usage | Step 9 | PM |
php artisan location-kit:clear-cache).storage/app/location/ are critical. Include them in version control or backup workflows.use LaravelLocationKit\Facades\LocationKit; and service provider registration.config/location-kit.php for inertia.enabled and shared props.$countries = LocationKit::countries()->isEmpty()
? collect([['key' => 'default', 'name' => 'N/A']])
: LocationKit::countries();
LocationKit::search() may not scale for large custom datasets. Consider supplementing with Laravel Scout or Algolia.| Scenario | Impact | Mitigation |
|---|---|---|
| Package Update Breaks API | Facade methods change (e.g., LocationKit::getCountries() → LocationKit::countries()). |
Test upgrades in staging. Use feature flags for critical paths. |
| Data Corruption in Overrides | Invalid JSON in `storage |
How can I help you explore Laravel packages today?