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 Api Php Client Laravel Package

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.

Deep Wiki
Context7

Technical Evaluation

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:

  • Security exposure. Google client libraries handle OAuth 2.0 tokens, service-account private keys, and refresh-token flows. An unpatched fork receives no CVE response, no token-handling hardening, and no dependency bumps for transitive packages (Guzzle, firebase/php-jwt, PSR interfaces). We would be absorbing Google's and PHP's security surface with zero upstream coverage.
  • API drift. Google's discovery documents and endpoint behaviors change continuously. An unmaintained fork will silently lag on new scopes, deprecations, and quota/retry semantics.
  • Forks diverge arbitrarily. Without visibility into what evert changed relative to upstream, we cannot reason about blast radius when we eventually replace it.
  • License is fine (Apache-2.0), so there is no legal blocker — the blocker is purely lifecycle.

Key questions.

  1. Why was this fork introduced rather than 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.
  2. Which services and methods do we actually call? If the surface is small (e.g., Sheets append, Gmail send, Drive upload), we can validate a migration quickly.
  3. Who owns the Google integration today, and is there an undocumented dependency on fork-specific behavior?
  4. Does the app run on a PHP version supported by current 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.

Integration Approach

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:

  1. Inventory. Grep the codebase for 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.
  2. Pin upstream. Add 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.
  3. Conflict resolution. Run 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.
  4. Remove the fork. 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.
  5. Harden. Confirm 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.

Operational Impact

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.

  • Silent auth breakage when Google rotates token endpoints or deprecates legacy OAuth flows.
  • Transitive dependency CVE (Guzzle, JWT libraries) with no upstream patch path — mitigated only by our own Composer constraints, which we would be managing by hand.
  • Undocumented fork divergence producing behavior differences from upstream that surprise future maintainers.
  • Composer graph conflict that hard-blocks a future framework or PHP upgrade, converting a routine maintenance task into a release blocker.
  • Knowledge loss — the original reason for the fork is rarely documented, so its removal carries unknown-unknowns risk.

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.

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.
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics
robbiep/afterthedeadline
frankkessler/incontact-laravel-oauth2-rest
jlxh/laravel-userlog
davidmgilo/timetables
qylinfly/role-permission
reflect-digital/conduit
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr