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

Geographical Bundle Laravel Package

vich/geographical-bundle

A Symfony bundle for working with geographical data: countries, states, zones, and multilingual names. It provides form types, a Doctrine-backed geographical hierarchy, and locale-aware selectors, making it easy to add country and region fields to your entities and forms.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for “geo” features. The bundle packages three recurring requirements into one dependency: (1) geocoding an address into latitude/longitude, (2) persisting those coordinates as first-class fields on Doctrine ORM/ODM entities, and (3) rendering an interactive map with markers from object-oriented JavaScript. That triad is the minimum viable scope for most location-aware features, so it is a useful baseline for scoping “do we build this ourselves or adopt something?”
  • Feature scoping and estimation. Use it to sanity-check effort for store locators, property/listing maps, event maps, delivery-zone pickers, directory search, or asset tracking. If the bundle’s feature set covers ~80% of the requirement, the remaining 20% (clustering, spatial queries, routing, GeoJSON export) is the real build cost.
  • Architecture direction. It demonstrates a clean separation between domain entities (geo metadata via annotations), a geocoding service layer, and a presentation layer (JS map rendering). That separation is worth copying even if the code is not.
  • Roadmap sequencing. Because the bundle is Symfony2-era with a small footprint (105 stars, 0 dependents in the ecosystem index), treat it as a phase-zero accelerator for a prototype or internal tool, not a long-term platform commitment. It informs the decision “prove the geo feature cheaply now, invest in a maintained stack when it becomes customer-facing.”
  • Risk posture. The low adoption signal is itself a data point: it argues for time-boxing any spike, pinning versions, and budgeting a replacement path from day one.

When to Consider This Package

Consider it when all of the following hold:

  • The application is on a legacy Symfony 2.x/3.x codebase (PHP 5.6–7.x) where upgrading the framework is out of scope.
  • You need the classic trio — geocode an address, store lat/lng on an entity, render a map with markers — and nothing more advanced.
  • You are building an internal tool, MVP, or proof of concept with a short lifespan or a planned rewrite.
  • Doctrine ORM or ODM is already the persistence layer and you want geo fields without hand-rolling annotation/attribute mapping.
  • You can accept the maintenance burden of pinning and possibly forking.

Look elsewhere when:

  • You are on Symfony 6/7 or PHP 8.1+ — modern autowiring, attributes, and typed properties make a 2012-era bundle a liability rather than an accelerator.
  • You need spatial querying, PostGIS/MySQL spatial indexes, distance sorting, clustering, or GeoJSON — the bundle does not solve the hard parts.
  • The feature is customer-facing and long-lived; zero dependents and a stale dependency tree mean you will own the code.
  • You need multi-provider geocoding with quotas/fallbacks — a standalone geocoder library plus a thin adapter is a better fit.
  • You need server-side map rendering or accessibility-compliant maps — prefer a maintained front-end mapping library (Leaflet, MapLibre, Google Maps JS) with Symfony UX Map or a lightweight Stimulus controller.

Practical evaluation checklist: confirm the last commit date, the newest Symfony version the bundle declares support for, whether geocoding providers still have live API contracts, and whether the JS layer uses a map provider you can still get a key for.

How to Pitch It (Stakeholders)

To executives: “Location features (store locator, listing maps, address-to-coordinates) are a recurring ask. This package is a ready-made template for that whole slice — geocode, store, render — so we can validate demand in days rather than weeks. It is old and thinly adopted, so I recommend a time-boxed spike: prove the use case cheaply, then decide whether to invest in a maintained implementation if the feature earns its place on the roadmap. Low cost, low commitment, clear exit.”

To engineering: “Treat this as a reference architecture and a prototype accelerator, not a dependency we marry. It shows a sensible split between geo entity metadata, a geocoding service, and JS map rendering — worth borrowing. If we adopt, we pin versions, isolate it behind our own interface, and assume we fork or replace it. If we’re on a modern Symfony, we skip it and reimplement the pattern with a current geocoder library and a maintained map front end.”

Bottom line: a cheap way to de-risk a geo feature and align on scope; a poor long-term foundation. Decide fast, time-box the spike, and keep the replacement path explicit in the roadmap.

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.
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
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle