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.
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:
script-src/frame-src implications are all unaddressed by a 2016 codebase.Key questions to resolve before any decision.
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:
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.
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.
How can I help you explore Laravel packages today?