fix(php): use interface_exists instead of class_exists for GuzzleHttp\ClientInterface#16006
Conversation
…\ClientInterface Co-Authored-By: will.kendall@buildwithfern.com <wpk235@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
SDK Generation Benchmark ResultsComparing PR branch against median of 5 nightly run(s) on Full benchmark table (click to expand)
main (generator): generator-only time via --skip-scripts (includes Docker image build, container startup, IR parsing, and code generation — this is the same Docker-based flow customers use via |
…atingClient Co-Authored-By: will.kendall@buildwithfern.com <wpk235@gmail.com>
Co-Authored-By: will.kendall@buildwithfern.com <wpk235@gmail.com>
…icts with static $warned flag) Co-Authored-By: will.kendall@buildwithfern.com <wpk235@gmail.com>
Co-Authored-By: will.kendall@buildwithfern.com <wpk235@gmail.com>
Description
Linear ticket: Refs https://linear.app/buildwithfern/issue/FER-10673/
class_exists('GuzzleHttp\ClientInterface')always returnsfalsebecauseClientInterfaceis an interface, not a class. This meant the Guzzle timeout path inRetryDecoratingClientwas never reached, causing users to see:Changes Made
class_exists→interface_existsforGuzzleHttp\ClientInterfaceinRetryDecoratingClient.Template.phpRawClientTest.Template.php:testInterfaceExistsDetectsGuzzle— confirmsinterface_existsdetects Guzzle when installedtestTimeoutForwardsToGuzzleSend— verifies timeout is forwarded via Guzzle'ssend()with['timeout' => 5.0]testNoTimeoutDoesNotCallGuzzleSend— verifiessendRequest()is used (notsend()) when timeout is nullTesting
php vendor/bin/phpunitinseed/php-sdk/exhaustive/wire-tests(38 tests, 118 assertions)api-wide-base-path-with-default) is a pre-existing phpstan error from PR chore(seed): update all seed snapshots #15999Link to Devin session: https://app.devin.ai/sessions/d14585aa60304ee79757b9dc229aaa8d