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

Google Map Laravel Package

radutopala/google-map

Laravel package for integrating Google Maps into your application, with configuration and Blade helpers for rendering maps and markers. Lightweight and easy to wire into existing views. Note: it has no stars and a low health score, so check maintenance status before using in production.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — The package is a server-side builder/renderer for the Google Maps JavaScript API v3: you compose a Map object in PHP (markers, info windows, polylines, controls) and a renderer emits an HTML container plus an inline <script> block and the Maps loader tag. The core (Ivory\GoogleMap) is framework-agnostic; historically it shipped with a Symfony bundle, not a Laravel provider. It fits a Laravel app only if you deliberately want map definitions authored in PHP and rendered through Blade. In most Laravel architectures the map is an interactive client concern, so this package inserts a PHP abstraction layer over an SDK that is fundamentally JavaScript — an architectural mismatch unless you have a specific server-composition requirement.

Integration feasibility — Mechanically feasible: MIT license, Composer-installable, PSR autoloading, no exotic runtime requirements. But there is no first-party Laravel integration — no service provider, no facade, no config publish, no extra.laravel entry. You would write and own roughly 50–150 LOC of glue: a service provider binding the map builder and renderer as singletons, a config file for API key/language/region, and a Blade component wrapper. The renderer inlines the API key into HTML, so key-restriction policy becomes your responsibility from day one.

Technical risk — High. The PHP 5.3+ baseline means the code predates scalar type hints and modern nullable syntax; expect friction on PHP 8.2/8.3 (implicitly nullable parameters, dynamic properties, deprecated string interpolation). Zero stars, zero dependents, and a 0.03 score mean no community verification, no security disclosure channel, and no upstream fix path. The emitted JavaScript targets the legacy Maps JS API surface (google.maps.Marker, InfoWindow), which Google still serves but has superseded with AdvancedMarkerElement — the breakage risk sits on Google's deprecation roadmap and will never be patched here.

Key questions

  • Does a real requirement exist for server-side map composition (PDF export, email, static HTML, SEO), or is the map purely interactive client-side?
  • What PHP version does our runtime pin, and does the package resolve cleanly against it?
  • Are we prepared to fork and maintain, including CI and a PHP-version matrix?
  • Do the transitive Symfony component constraints conflict with our Laravel/Symfony polyfill versions?
  • Who owns the GCP billing, quota, and API key restriction posture once this is live?

Integration Approach

Stack fit — Poor for a modern Laravel 10/11 on PHP 8.2+ codebase. Treat any adoption as a vendored fork, not a dependency. If used at all, wire it manually:

  • composer require radutopala/google-map at an exact pinned version, verifying the PHP constraint
  • A GoogleMapServiceProvider registering the builder and renderer singletons
  • config/google-map.php for API key, language, region, async/defer flags
  • A facade exposing marker(), infoWindow(), polyline() helpers
  • A Blade component (<x-google-map :map="$map" />) as the only call site

Migration path — Greenfield; there is no incumbent Laravel package to migrate from. Build the integration behind your own MapRenderer interface so the vendor can be swapped for a Blade component emitting the same JSON config with no call-site changes. This escape hatch is the single most important design decision.

Compatibility — Run composer why-not php 8.2 before anything else and smoke-test a rendered map under our exact runtime. On the front end, the loader URL must carry libraries= and loading=async to match Google's current guidance; verify the inline script against the live Maps JS API rather than assuming 2015-era output still behaves. CSP is a known friction point: inline scripts require unsafe-inline or a nonce the package does not support.

Sequencing

  1. Two-to-three day spike: install in a scratch branch, render one marker map, run PHP 8.2 + browser + CSP-report-only smoke test.
  2. Go/no-go on build-vs-fork-vs-drop, with drop as the default.
  3. If adopted: fork under our org, add CI (PHP matrix + browser E2E on a map page), pin constraints.
  4. Build the Blade component abstraction and document the swap path.
  5. Enforce GCP key restrictions before any production traffic.

Recommendation — Decline adoption. The lower-risk path is a thin Blade component plus Alpine or vanilla JS calling the Maps JS API directly, with server-side geocoding handled by a maintained client (googlemaps/google-maps-services-php or geocoder-php). Revisit only if a non-browser render target is a hard, funded requirement — and even then, budget for a fork.

Operational Impact

Maintenance — Effectively zero upstream activity. Every PHP-version bump, Symfony constraint conflict, and Google deprecation response becomes internal work. Budget roughly 1–2 engineer-days per quarter to keep it alive on a customer-facing path, and considerably more across a PHP major upgrade. Because there is no upstream, "maintenance" here means "we own a fork."

Support — No vendor, no community, no security advisories, no issue triage. Incident response is entirely internal, and knowledge will concentrate in whoever runs the spike — a single-point-of-failure on the team. Contrast this with a JS-first approach, where current, actively maintained Google documentation is the support surface.

Scaling — Server-side cost is negligible (string building, no network calls at render time), so compute scale is not the concern. Client-side scale is Google's, but billing, quota, and key restrictions become ours and are invisible to this package. Two predictable pressure points: unbounded marker counts on dense datasets, and the absence of any marker-clustering support — you will implement clustering in JS regardless, which further erodes the package's value proposition.

Failure modes

  • API key exposure — the key is inlined in HTML; enforce HTTP referrer restrictions in GCP and audit rendered pages.
  • Silent legacy-API breakage — Google retires a JS class and no upstream patch arrives; mitigate with a browser E2E test on a map page in CI.
  • PHP runtime deprecations becoming fatal — caught by a PHP upgrade matrix, not by users.
  • CSP conflicts — inline scripts require unsafe-inline or a nonce; roll out CSP in report-only first and measure violations.
  • Composer resolution failures against modern Symfony components; pin and vendor.

Ramp-up — Conceptually low (a map builder is intuitive), but discovery cost is high: no docs beyond the README, no in-repo examples, and the Ivory documentation is archival. Realistically one day to a first working map and three to five days to production-grade (CSP, key handling, tests, component abstraction, CI). A JS-first approach reaches a working map in roughly half a day against current documentation.

Net — The package's sole advantage is composing map definitions in PHP. It purchases that at the cost of an unmaintained dependency, a legacy JS surface, full ownership burden, and a front-end rewrite anyway for clustering and CSP. The 0.03 score is an accurate signal; recommend declining adoption absent an unusual rendering constraint.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console