genealabs/phpgmaps
PHPGmaps is a Laravel package that integrates Google Maps into your applications, offering helpers for maps, markers, geocoding, and directions with a simple, fluent API.
genealabs/phpgmaps in a composer.json is an audit finding, not a platform decision. In practice it flags an address-lookup, store-locator, property-listing, or delivery-estimate feature built server-side around 2017 and never revisited. The decision it supports is effectively binary — contain now, replace at the next upgrade — and the evidence (archived, last release 0.4.3 on 2017-10-14, 27 stars, 0 dependents, MIT) all points the same direction.geocodes table caps quota exposure, survives any package replacement untouched, and produces an audit trail of what address data has left your system. For teams with privacy or vendor-review obligations, that trail is often the artifact that unblocks the feature.Geocoder / RouteEstimator / MapRenderer against Google's web services directly, plus the DB-backed cache) alongside the ticket.Consider it — narrowly, and only in these conditions:
Geocoder, RouteEstimator, MapRenderer) with the package as a single swappable implementation, the blast radius of the archive is contained. If the team intends to call the facade from controllers and Blade templates, do not proceed.0.4.3 or later. Earlier releases have a lookup-URL bug that breaks non-Latin alphabets. 0.4.3 is a hard floor, and it should be pinned exactly so a future composer update cannot float it into an untested state.MAPS_DRIVER config flag and a declared end-of-life make containment a bounded decision instead of a permanent one.Look elsewhere — meaning build the thin internal service against Google's web services directly, or drop maps entirely — when any of the following is true:
<script> emission fails under any policy without 'unsafe-inline', and the package has no nonce concept. This is frequently the trigger that forces the replacement conversation; surfacing it at deploy time is expensive.To executives — one paragraph. A dependency audit surfaced genealabs/phpgmaps, a Google Maps wrapper last released in October 2017 and now archived. It has no maintainer, no security patch path, and no other projects depending on it. It currently supports internal, low-traffic address and distance lookups — a low-value but non-zero surface. My recommendation is to contain it rather than adopt it: pin the version, put it behind a small internal interface so it can be swapped in one place, add a caching table so we stop paying for the same lookups repeatedly, and schedule replacement as a prerequisite ticket in the platform upgrade already on the roadmap. Cost of containment is roughly a day of engineering; cost of leaving it unmanaged is an outage or a security gap discovered during that upgrade, when the team has no slack. No new work will be built on it.
To engineering — the summary and the ask.
0.4.3, 2017-10-14), 27 stars, 0 dependents, MIT. Treat the source as frozen vendor code we have audited, not a dependency we can lean on. Do not subclass it, do not patch vendor/.genealabs/phpgmaps:0.4.3 exactly; (2) no new \Phpgmaps:: call sites — add a review checklist entry that blocks them; (3) route any existing call through an internal contract, bound in a service provider, so replacement is a one-class, one-binding change; (4) add timeout and error handling at the adapter — the wrapper is a request builder with no retry, backoff, or timeout logic, and geocoding must never run in the request cycle for batch work.status, not truthiness — Google returns HTTP 200 with ZERO_RESULTS, OVER_QUERY_LIMIT, REQUEST_DENIED, or INVALID_REQUEST, so a wrapper that "works" on happy paths silently returns empty data when a key is misconfigured or quota is blown. Log the constructed URL (minus key), HTTP status, and raw decoded payload before transformation. Use separate keys for server-side (IP-restricted) and browser (referrer-restricted) calls, and confirm billing is enabled — a disabled billing account produces errors that look identical to a bad key.Geocoder/RouteEstimator/MapRenderer against Google's web services directly, plus the DB-backed geocode cache — as a prerequisite in the modernization epic. The cache table survives the swap untouched, so the work done now is not thrown away. Have the exit conversation before the next framework upgrade, not during it.How can I help you explore Laravel packages today?