PHP configuration
You can customize the behavior of the PHP SDK generator in generators.yml:
SDK configuration options
auto-generate-idempotency-key
Overrides the API-wide api.settings.auto-generate-idempotency-key for this SDK. Set true to attach an idempotency-key header to eligible requests (POST and PUT by default) unless the caller provides one, or false to opt this SDK out when auto-generation is enabled API-wide. Pass an object to customize header-name and methods.
clientName
Sets the name of the generated API client class. This determines the primary client type name that users will interact with in the generated PHP SDK.
composerJson
Allows customization of the generated composer.json file contents. You can specify additional metadata, dependencies, or configuration that will be merged into the package’s composer configuration file.
enable-wire-tests
When enabled, generates mock server (wire) tests to verify that the SDK sends and receives HTTP requests as expected.
encode-path-params
Percent-encodes path parameter values when the generated SDK substitutes them into the request path. By default, values are inserted unencoded, so a value containing / or .. changes the path the request resolves to: for an endpoint GET /plants/{plantId}, a plantId of ../plants requests /plants. When enabled, the same value requests /plants/..%2Fplants.
inlinePathParameters
When enabled, path parameters are included as properties in the request class instead of being passed as separate method parameters. This creates a more unified request structure where all parameters are grouped together in the request object.
maxRetries
The default number of retries for failed requests. When not set, the generated SDK uses its own built-in default. SDK users can still override this per-request via request options.
namespace
Specifies the PHP namespace for all generated code. This determines the namespace hierarchy that users will use when importing and using the SDK classes.
offsetSemantics
Controls how the offset parameter is interpreted for auto-paginated endpoints.
item-index: The offset counts individual items (e.g., offset 20 skips the first 20 items).page-index: The offset counts pages (e.g., offset 3 skips to page 3).
omitFernHeaders
When enabled, the generated SDK omits the X-Fern-Language, X-Fern-SDK-Name, and X-Fern-SDK-Version headers from HTTP requests.
includePlatformHeaders
When enabled, the generated SDK sends a single structured User-Agent header of the form {sdkName}/{version} ({os}; {arch}) {runtime}/{runtimeVersion} (for example, my-sdk/0.0.1 (linux; x86_64) PHP/8.2.0), carrying SDK, operating system, architecture, and runtime information in place of the default User-Agent and discrete platform headers. A configured user-agent template supplies the leading product token. If omitFernHeaders is enabled, no User-Agent or platform headers are sent and this option has no effect.
allowUserAgentAppInfo
When enabled, the generated client accepts an optional appInfo client option of the shape array{name: string, version?: string, comment?: string}, which appends a {name}/{version} ({comment}) product token to the User-Agent header so an application built on the SDK can identify itself to the API. The application passes a required name plus an optional version and comment; omitted or blank values are dropped from the token. An explicit User-Agent header takes precedence, and omitFernHeaders suppresses the header entirely.
packageName
Sets the name of the PHP package as it will appear in Composer and Packagist. This is the name users will use to install the SDK via Composer (e.g., composer require your/package-name).
packagePath
Specifies the directory path where the generated SDK source files should be placed. This determines the file system location of the generated PHP code relative to the output directory.
propertyAccess
Controls the access level of generated class properties. When set to ‘public’, properties are public and getter/setter methods are omitted. When set to ‘private’, properties are private and getter/setter methods are generated for encapsulation.
<ParamField path=“user-agent” type=“string” default=“{packageName}/{version}” required= toc=>
Sets a custom User-Agent header template for requests sent by the generated SDK. The template is resolved at generation time and supports the {packageName}, {version}, {language}, {generatorVersion}, {organization}, and {apiName} placeholders.
This sends User-Agent: plantstore-php-sdk/0.1.0. With includePlatformHeaders enabled, the resolved value leads the structured header: User-Agent: plantstore-php-sdk/0.1.0 (linux; x86_64) PHP/8.2.0. A value that doesn’t end in a version, such as plantstore/sdk-php, is used as-is. The allowUserAgentAppInfo token is appended after either form.
<ParamField path=“respectOptionalRequestBody” type=“boolean” default=“false” required= toc=>
Lets callers omit the request body argument on endpoints with an optional request body. A call that omits it sends no body and no Content-Type header, instead of an empty JSON object ({}). Enable this when your API treats a missing body differently from an empty one.
Only applies to request bodies declared as a single named type. Required bodies and inlined request properties are unaffected.</ParamField>