Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Geonames Laravel Package

farzai/geonames

Laravel package for working with GeoNames data such as countries, cities, timezones and currencies. Provides a simple, expressive API backed by a local database, so you can query geographic data offline without relying on external services or API limits. Easy to install and integrate.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Geo-enabled product features: country/region hierarchy, city and postal-code lookup, address validation at checkout, store/location search, delivery-zone checks, and “nearest” location experiences.
  • Build vs. buy: using a maintained Laravel package around pinned, checksum-verified GeoNames snapshots is usually faster and lower-risk than building and operating an internal GeoNames ingestion pipeline.
  • Roadmap and upgrade planning: 3.0.0 is a breaking release with a new read-only API, Laravel integrations, and removal of downloaders/converters. Teams on 2.x should budget migration work and confirm PHP 8.3+ before committing.
  • Data operations decisions: snapshots are fetched explicitly via CLI/Artisan and read offline at runtime, reducing runtime network dependencies and enabling predictable deployments.
  • Use-case fit: strong for Laravel applications needing local, read-only geographic reference data; less suitable if the product depends on MongoDB conversion, custom feature classes, or runtime data downloads.

When to Consider This Package

  • You are building a Laravel application on PHP 8.3+ and need country, admin1/admin2, city, postal-code, search, or nearest-location capabilities.
  • You want Eloquent models, casts, validation rules, publishable migrations, a seeder, and config rather than a bespoke data layer.
  • You value pinned, sha256-verified snapshots and explicit fetch commands over runtime network calls.
  • Your supported databases align with the package’s tested matrix: SQLite, PostgreSQL 16, MySQL 8.4, MariaDB 10.2/11.8.
  • You can accept read-only geographic reference models and a data-refresh workflow based on snapshot fetching.
  • Look elsewhere if you require the removed 2.x capabilities: downloaders, converters (including MongoDB), the --feature-class option, or the removed transport/HTTP/console/log/zip dependencies.
  • Look elsewhere if you are on PHP <8.3, need writeable geo models, need real-time/live GeoNames updates at runtime, or need a non-Laravel integration.
  • Plan for CC BY 4.0 attribution requirements and ensure the product/legal team is comfortable with the GeoNames licensing terms.

How to Pitch It (Stakeholders)

  • Executive summary: this package gives the product a maintained, Laravel-native way to ship geographic reference features—address validation, location search, postal-code lookup, and nearest-location use cases—without building an internal geo-data pipeline.
  • Risk reduction: 3.0.0 uses pinned, sha256-verified snapshots with no runtime network dependency, which improves deployment reliability and reduces operational surface area.
  • Engineering summary: the new API is cleaner and more focused (country(), admin1(), admin2(), cities(), city(), postalCodes(), search(), nearest()), with read-only models plus Laravel validation, casts, migrations, seeder, and config.
  • Key caveat: 3.0.0 is a breaking upgrade. It requires PHP 8.3+, removes downloaders/converters/MongoDB support and --feature-class, and changes dependencies. Teams must read UPGRADING.md and plan migration effort.
  • Recommendation: adopt for Laravel products that fit the supported databases and read-only geo use cases; defer or choose an alternative where MongoDB conversion, custom feature classes, legacy PHP support, or runtime download workflows are required.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment