petrepatrasc/google-map-bundle
A Symfony bundle for integrating Google Maps into your application, helping you configure map instances, markers, and frontend assets from PHP. It simplifies embedding interactive maps and managing map-related settings with minimal setup in Symfony projects.
Verdict: Despite being framed as a Laravel/PHP package, petrepatrasc/google-map-bundle is a Symfony2 bundle with no Laravel surface whatsoever. At 0 stars, 0 dependents, and score 0.03, it is an unmaintained wrapper around a deprecated framework era. There is no "leverage" path that is cheaper than reimplementation; the only honest TPM framing is "extract the underlying map-building primitives, or write ~300 lines ourselves."
Architecture fit — the artifact does not fit the target stack
AppKernel registration, a DependencyInjection/*Extension with a Configuration tree, XML/YAML service definitions, and Twig extension helpers. Laravel has no bundle concept. Service providers, config/*.php, and Blade directives are conceptually adjacent but not configuration- or binary-compatible.egeloen/ivory-google-map-style library this bundle wraps. The bundle layer itself (wiring, config normalization, Twig helpers) is precisely what we would discard. That is a poor ratio for a dependency adoption decision.Integration feasibility
Technically feasible, value-poor. A realistic path is: identify and vendor the framework-agnostic builder/encoder classes, strip Symfony DI and Twig coupling, re-wrap in a Laravel service provider, modernize to PHP 8.1+, add characterization tests, then verify against current Google Maps Platform behavior. Estimate: 2–4 engineer-weeks before any product feature work. The reimplement-from-scratch alternative is 2–4 engineer-days and produces code we designed and can test.
Technical risk — high, concentrated in maintenance and API drift
composer.json and code patterns removed in PHP 8 (curly-brace string offsets, each(), dynamic properties). Current Laravel requires PHP 8.1+, so a hard modernization pass is mandatory, not optional.Key questions before spending engineering time
Stack fit — poor as-is; salvageable only via extraction
| Bundle concept | Laravel equivalent | Mechanical port? |
|---|---|---|
*Bundle class / AppKernel registration |
ServiceProvider + package discovery |
No — rewrite |
DI extension + Configuration tree |
config/*.php + mergeConfigFrom |
Partially — translate schema |
| XML/YAML service definitions | Container bindings / singletons | No — rewrite |
| Twig extension helpers | Blade directives / view composers | No — rewrite |
| Map builder / encoder / serializer | Framework-agnostic services | Yes, if truly decoupled — verify first |
Only the last row determines cost. If inspection shows the builder and encoder carry Symfony annotations or container lookups, treat the port as a rewrite and re-baseline upward.
Migration path — three options, ranked
Compatibility considerations
config/services.php + .env, never bundle-style YAML. Apply HTTP-referrer or IP key restrictions from day one.Sequencing (if pursued)
app/Support/Maps or an internal Composer package with its own test suite.Maintenance
This package's operational profile is the dominant cost, not its code. Nobody upstream is fixing it. Every hour spent on it is an hour we own forever. Under Option B, budget ongoing maintenance as an internal library: quarterly dependency review, PHP/Laravel major-upgrade work, and Google Maps Platform changelog monitoring. Under Option A, maintenance collapses to a small Blade partial and a couple of helper functions that ride along with normal application upkeep — the materially better operational posture.
Support
No upstream support channel exists: no maintainer response, no security advisories, no community triage. Internal supportability therefore depends entirely on how legible the extracted code is. If we extract, we inherit Symfony-era idioms (extension classes, config trees, Twig assumptions) and must document them for engineers who have never seen Symfony 2. This is a hidden onboarding tax. Option A avoids it.
Scaling
Client-side map rendering scales trivially — it is the browser's problem. The real scaling axes are Google Maps Platform quota and billing (per-SKU pricing above the free tier, billing account required, key restrictions enforceable) and server-side geocoding throughput, which is a rate-limit and caching problem. Neither is addressed by this bundle. If geocoding volume grows, the architectural answer is a caching layer plus ToS-compliant retention, not a richer wrapper.
Failure modes
Ramp-up
Under Option B, expect 1–2 weeks of engineer ramp-up on the extracted code plus a day for the Google Maps Platform billing/key setup and CSP interaction. Under Option A, ramp-up is under a day for any engineer familiar with the Maps JS API and Blade, and the code is idiomatic to our stack. Given the 2–4 week extraction cost, the ramp-up delta alone tilts the TPM recommendation decisively toward Option A: decline the dependency, build the thin slice, and spend the saved time on the actual risk — the Google Maps Platform contract and the geocoding data-retention policy.
How can I help you explore Laravel packages today?