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

Gmap Widget Laravel Package

friendsofvictoire/gmap-widget

friendsofvictoire/gmap-widget provides a reusable Laravel widget for rendering interactive Google Maps in Blade views, with configurable markers, zoom, map type, and simple setup for adding location maps to your application.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this actually is. Despite being catalogued alongside PHP packages, friendsofvictoire/gmap-widget is a Symfony bundle for Victoire DCMS — a CMS widget that renders a Google Map as a content block inside Victoire's page editor. It is not a Laravel package: there is no service provider, no config/*.php publish target, no Blade views, no Eloquent or facade integration. The 0.13 score is a fair reflection of its fit for a Laravel-centric estate.

Architecture fit. Only viable if the target application is already running Victoire DCMS on Symfony with Twig. In a Laravel application there is no bundle/kernel registration mechanism to hook into; adapting it means either porting the widget logic into a Blade component or standing up a Symfony sidecar purely to render a map — both disproportionate to the value delivered. The package earns its place only as a reused content-editor primitive inside an existing Victoire install.

Integration feasibility. Low as-is. The last release is December 2016, which places it before Google Maps' API key enforcement (mid-2016) and well before the 2018 pay-as-you-go billing change. The widget almost certainly instantiates the JS API without a modern key/loading path, meaning first-run behaviour today is likely a "For development purposes only" watermark or a blank canvas. Composer constraints will pin PHP 5.6/7.0-era and Symfony 2.x/3.x-era components, which will conflict with any current Symfony release.

Technical risk. High, and concentrated in abandonment rather than defects:

  • Single-maintainer project, no release in roughly nine years, no observable security-response process.
  • No evidence of CI, test coverage, or PHP 8 / Symfony 5–7 compatibility.
  • Third-party embed surface: Google Maps API key handling, Terms of Service compliance, ePrivacy/GDPR consent gating, and CSP script-src/frame-src implications are all unaddressed by a 2016 codebase.
  • Silent-breakage profile: client-side JS API drift fails at runtime in the browser, not at build time.

Key questions to resolve before any decision.

  1. Do we have any Victoire DCMS footprint today, or is this being evaluated for a Laravel app? (If the latter, the evaluation effectively ends here.)
  2. What is the actual product requirement — an interactive embedded map, or a static map image with a "Get directions" link? The latter removes the dependency entirely.
  3. Who owns the Google Maps API key and the associated billing account, and what is the expected monthly map-load volume?
  4. What is our consent posture for third-party embeds in the relevant jurisdictions?
  5. Is there appetite to fork-and-own, or is the standing rule "no unmaintained dependencies"?

Integration Approach

Stack fit. Victoire/Symfony only. For a Laravel target, the honest comparison is not "adapt this package" but "build the equivalent": a Blade component wrapping the Google Maps JS API is on the order of a day or two of work, carries no legacy constraints, and gives full control over key injection, consent gating, and lazy loading. Alternatively, Leaflet or MapLibre with an OpenStreetMap or commercial tile source removes the Google billing and ToS surface altogether.

Migration path. Three options, in descending order of preference for a Laravel estate:

  1. Replace — thin in-house Blade component (or Livewire component) plus a static-map fallback for no-JS and consent-denied cases.
  2. Fork and modernise — only justified if a Victoire install exists and the widget-model reuse (editor integration, block configuration schema) is genuinely valuable. Budget for Composer constraint updates, PHP 8 compatibility, externalising the API key into env/config, consent gating, and a smoke test.
  3. Vendor as-is — acceptable only as a short-lived stopgap in a legacy Victoire instance, with a dated removal ticket.

Compatibility checks required for any path. Target PHP and Symfony versions against the package's composer.json; Twig syntax version; the asset pipeline (Victoire-era projects typically used Assetic — modern Symfony uses Encore or Vite); the Victoire widget registration API version; and the specific Google Maps JS API version and key-loading pattern.

Sequencing. (1) Confirm the requirement and the existing stack. (2) Run an isolated spike — install into a disposable Victoire/Symfony environment with a test API key and verify the map actually renders today. (3) Decide build-vs-fork on the spike result. (4) If forking: modernise constraints, externalise secrets, add consent gating and a smoke test, then integrate. (5) Document the ownership decision and the removal/review date.

Operational Impact

Maintenance. Assume you own it from day one; upstream contribution is not a realistic expectation on a two-star, zero-dependent repository. Plan for an annual review against Google Maps API deprecations and PHP/Symfony upgrade cycles, and treat any fork as a permanent line item rather than a one-off integration.

Support. None. No community, no issue-triage throughput, no vendor. Knowledge will concentrate in whichever engineer performs the integration — a bus-factor risk worth naming explicitly in the risk register.

Scaling. Server-side load is negligible: the widget emits a container element and a script tag. The real scaling axis is Google Maps quota and billing — cost scales per map load, so high-traffic pages should prefer static maps, lazy initialisation on intersection, or a tile-based alternative. Client-side bundle weight also affects page performance and Core Web Vitals, which matters more than any backend concern here.

Failure modes to instrument. Missing or invalid API key → watermark or blank canvas; quota exhaustion or lapsed billing → failed loads with no server-side signal; ad-blockers or privacy extensions, and consent denial, → empty container (requires a graceful static-map fallback, not a blank box); JS API version drift → silent runtime breakage invisible to health checks; absent test coverage → regressions ship undetected. Add client-side error reporting on map init failure and a synthetic check on the pages that embed it.

Ramp-up. Requires familiarity with the Symfony bundle model and Victoire's widget registration and editor configuration schema — a narrow skill set unlikely to exist in-house. Estimate one to two weeks for a senior Symfony developer to reach productivity on the widget internals, and longer before they could safely own a fork. For a Laravel team, that ramp-up cost exceeds the cost of building the replacement outright, which is the central operational argument against adoption.

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.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route