> This page is for SDKs, version Legacy.
> For other versions, use one of these documentation indexes:
> - Current (default): https://buildwithfern.com/learn/sdks/current/llms.txt
> - Legacy: https://buildwithfern.com/learn/sdks/legacy/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 1.29.1

**`(fix):`** Fix wire tests for paginated endpoints. Previously, wire tests called paginated SDK methods
without iterating the returned Pager, so no HTTP request was made and WireMock verification
always failed with "Expected 1 requests, found 0". The generated test now iterates the Pager
to trigger the first page request.

## 1.29.0

**`(feat):`** Add support for generating interfaces for all SDK client classes. When `generateClientInterfaces: true`
is configured, each client `{ClientName}` gets a corresponding `{ClientName}Interface` with public
method signatures. Concrete clients declare `implements {ClientName}Interface`. This enables standard
PHP mocking and DI patterns (`PHPUnit::createMock()`, Laravel/Symfony DI containers) without requiring
concrete class dependencies.

```yaml
generators:
  - name: fernapi/fern-php-sdk
    config:
      generateClientInterfaces: true
```

## 1.28.0

**`(feat):`** Add support for default request parameter values.

When `useDefaultRequestParameterValues: true` is configured in `generators.yml`, the SDK will
generate default values for query parameters and headers that have defaults defined in the API
schema. Parameters with defaults become optional in the constructor, falling back to their
default value when omitted.

```yaml
generators:
  - name: fernapi/fern-php-sdk
    config:
      useDefaultRequestParameterValues: true
```