Download the PHP package gosuccess/php-enhance-api-wrapper without Composer
On this page you can find all versions of the php package gosuccess/php-enhance-api-wrapper. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download gosuccess/php-enhance-api-wrapper
More information about gosuccess/php-enhance-api-wrapper
Files in gosuccess/php-enhance-api-wrapper
Package php-enhance-api-wrapper
Short Description Modern PHP API client for the Enhance control panel API with PHP 8.4 features
License MIT
Homepage https://github.com/GoSuccessHQ/enhance-api
Informations about the package php-enhance-api-wrapper
Enhance API
A modern, dependency-free PHP client for the Enhance control panel API.
- Vanilla – zero runtime dependencies, only the
curlandjsonextensions. - Complete – all 482 operations across 33 resources, covering the full Enhance API (v12.25.4).
- Type-safe – typed DTOs, enums, and resource methods built on PHP 8.4 features (property hooks,
readonly, backed enums).
Requirements
- PHP 8.4 or higher
ext-curl,ext-json
Installation
Quick start
Every API section is exposed as a resource on the Enhance object, e.g.
$enhance->websites, $enhance->servers, $enhance->orgs, $enhance->plans,
$enhance->subscriptions, $enhance->domains, $enhance->dns,
$enhance->emails, $enhance->backups, $enhance->ssl, and so on.
Documentation & examples
- docs/ – one reference page per resource, listing every method with its route, parameters, and a usage example.
- examples/ – runnable scripts (account overview, error handling, a full create/read/delete lifecycle).
Working with DTOs
Request bodies are typed DTOs; only the properties you set are sent. Responses are hydrated into DTOs automatically.
By default, properties left as null are omitted from the request body. To
clear a field via an update endpoint, mark it with setNull() so it is sent as
an explicit null:
The organization id
Most endpoints are scoped to an organization. The orgId you pass to
Enhance::create() is used by default, so you can omit it. Pass it explicitly
to target a different organization (e.g. as an MO managing customers):
Pagination
Listing endpoints accept offset/limit. Paginator::items() transparently
walks every page for you:
Configuration
Enhance::create() covers the common case. For finer control, build a
Configuration and pass it to the constructor:
A 429 is retried after Retry-After (capped at a minute) unless
retryOnRateLimit is off; then it throws the RateLimitException right away,
while transport errors and 5xx responses of GET, PUT and DELETE are
still retried. That suits callers with a deadline of their own.
Error handling
Non-2xx responses throw a typed exception. All of them extend
GoSuccess\Enhance\Exception\ApiException, which carries the status code and
response body as context.
| Status | Exception |
|---|---|
| 400 | BadRequestException |
| 401 | UnauthorizedException |
| 403 | ForbiddenException |
| 404 | NotFoundException |
| 409 | ConflictException |
| 429 | RateLimitException |
| 5xx | ServerException |
| transport error | RequestException |
Redirects are never followed and are not treated as errors: the SSO endpoints
document a 3xx as their success case, so the response is returned and its
target can be read from Response::$location.
Custom transport
ApiClient builds the request (URL, query, headers, JSON body), retries
transient failures and maps the response to typed exceptions. The bytes go
over the wire through a GoSuccess\Enhance\Http\Transport; the default is
CurlTransport. Pass your own to route the requests through your
application's HTTP stack, fake them in tests or limit the response size,
while keeping the retry policy and the error mapping:
Custom HTTP client
To replace the whole client instead (no retries, no error mapping), implement
GoSuccess\Enhance\Contract\HttpClientInterface:
Architecture
Development
The Resource, DTO, and Enum classes were originally derived from the
Enhance OpenAPI specification (v12.25.4) and are now maintained by hand.
License
MIT
All versions of php-enhance-api-wrapper with dependencies
ext-curl Version *
ext-json Version *