evert/google-api-php-client
A PHP client library for accessing Google APIs with OAuth 2.0, service-account authentication, token refresh, and generated service classes for Gmail, Drive, Calendar, Sheets, and more. Composer-ready for server-side PHP applications.
Architecture fit. evert/google-api-php-client is a Composer-installable fork of the upstream Google API PHP client (google/apiclient). It exposes the same service-object pattern (Google\Client, Google\Service\*) that Laravel applications typically consume via a thin service provider or facade. Architecturally it slots into a Laravel app the same way the upstream package does — no framework coupling, no published config, no service provider of its own. That is the extent of the good news.
Integration feasibility. Technically installable, practically inadvisable. The package's own description — "DO NOT USE THIS PACKAGE. ITS NOT MAINTAINED." — is an explicit maintainer directive, not a stale README. A 33-star fork with an opportunity score of ~1.14 and an overall score of ~1.97 places it firmly in the abandonware band. Any integration work would be throwaway: we would be building against a dependency whose author has publicly disowned it.
Technical risk. High and asymmetric:
firebase/php-jwt, PSR interfaces). We would be absorbing Google's and PHP's security surface with zero upstream coverage.evert changed relative to upstream, we cannot reason about blast radius when we eventually replace it.Key questions.
google/apiclient? (Most commonly: a PHP version constraint, a Composer dependency conflict, or a specific bugfix that has since landed upstream.) That original reason determines whether the fork is still necessary.google/apiclient? If not, that is a separate platform-upgrade workstream.Recommendation: do not adopt. Treat this package as a migration trigger, not a candidate. Standardize on google/apiclient (actively maintained by Google, same namespace and API surface) and capture the fork's original rationale before removal.
Stack fit. Laravel integrates with the Google client via a singleton bound in a service provider, credentials from config/services.php and .env, and a facade or injected Google\Client. Because the fork preserves the upstream namespace and class names, the integration code itself is largely portable — the binding, credential handling, and token storage do not need to change when we swap the vendor package.
Migration path. The migration is a Composer-level substitution, not a rewrite:
Google\, Google_, and any evert/google-api-php-client references; enumerate every service and method called. Produce a coverage matrix of used vs. supported methods.google/apiclient at a current major version. Use the google/apiclient-services subset mechanism — set the extra.google/apiclient-services allowlist to only the services we use, which materially reduces install size and autoload cost.composer why evert/google-api-php-client and composer why-not google/apiclient to surface the original constraint clash. Resolve it by upgrading the conflicting dependency or relaxing the PHP constraint.composer remove evert/google-api-php-client, regenerate the lockfile, and run the full test suite plus a staging smoke test against each Google API in the coverage matrix.league/oauth2-google or socialite (if used) resolves against the same Guzzle major as the new client.Compatibility. Expect three friction points: (a) constructor/credential changes if the fork predates the Google\Client rename from Google_Client; (b) Guzzle major-version alignment across the app's other HTTP consumers; (c) PHP version floor — current google/apiclient requires a modern PHP, which may force a runtime upgrade. All are known, bounded, and testable.
Sequencing. Run the swap as a standalone, single-purpose PR behind the existing test suite — never bundled with feature work. Stage in this order: dependency inventory → upstream pin and allowlist → fork removal on a branch → staging validation against real credentials (read-only scope first) → production rollout. Budget roughly one to two engineering days for a small surface, one sprint for a broad multi-service integration.
Maintenance. This is the decisive factor. The fork has zero maintenance runway: no security patches, no bugfixes, no compatibility updates, no issue triage. Every month of retention is accrued technical debt with a compounding interest rate — the eventual migration cost only grows as the codebase and PHP runtime advance. The upstream package, by contrast, is Google-maintained with a predictable release cadence.
Support. No vendor, no community, no SLA. Incident escalation for a Google API integration failure would fall entirely on internal engineers with no upstream channel. For a package touching authentication and credential exchange, that is an unacceptable operational posture.
Scaling. The client itself is not a throughput bottleneck — it is HTTP-bound, and scaling is a function of connection pooling, retry/backoff, and quota management, none of which the fork helps or hurts. The scaling concern is organizational: as more services integrate Google APIs, the number of call sites pinned to an unmaintained dependency multiplies, and the fork's removal becomes a cross-team coordination problem rather than a single PR.
Failure modes.
Ramp-up. Low in absolute terms — engineers familiar with google/apiclient are immediately productive, and the fork shares that API. The real ramp-up cost is the archaeology: reconstructing why the fork exists. Mitigate by requiring the migration PR to document the original rationale in the repo, so the next team does not repeat the investigation.
Verdict. Not a viable dependency. Adopt google/apiclient with a service allowlist, execute the swap as an isolated migration, and close out the fork before it becomes load-bearing infrastructure.
How can I help you explore Laravel packages today?