A PHP client library for interacting with most facets of the Fastly API.
Requires PHP 7.3 or later.
To install via Composer, add the following to your project's composer.json
:
{
"require": {
"fastly/fastly": "*@dev"
}
}
Then run composer install
.
Composer generates a vendor/autoload.php
file. You can include this file and start using the classes provided by this client without any extra work:
<?php
require_once('/path/to/project/vendor/autoload.php');
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Authorize the client with a Fastly API token.
$config = Fastly\Configuration::getDefaultConfiguration()->setApiToken('YOUR_API_TOKEN');
// Alternatively, set the FASTLY_API_TOKEN environment variable:
// $config = Fastly\Configuration::getDefaultConfiguration();
$apiInstance = new Fastly\Api\(
// Optionally, pass a custom client that implements `GuzzleHttp\ClientInterface`.
// `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$options['service_id'] = 'SU1Z0isxPaozGVKXdv0eY'; // string
$options['version_id'] = 56; // int
$options['name'] = 'my_acl'; // string
try {
$result = $apiInstance->createAcl($options);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling AclApi->createAcl: ', $e->getMessage(), PHP_EOL;
}
Note
The Fastly API requires an API token for most operations.
Set up the API token in the PHP client by using the setApiToken
method of a configuration as shown:
Fastly\Configuration::getDefaultConfiguration()->setApiToken('YOUR_API_TOKEN');
Alternatively, set the FASTLY_API_TOKEN
environment variable instead of using setApiToken
.
Fastly\Configuration::getDefaultConfiguration();
The main documentation for the Fastly API can be found on our Developer Hub.
Table of API endpoints
The fastly-php API client currently does not support the following endpoints:
/alerts/definitions/{definition_id}
(DELETE, GET, PUT)/alerts/definitions
(GET, POST)/alerts/history
(GET)/dns/configurations/{dns_configuration_id}
(DELETE, GET, PATCH)/dns/configurations
(GET, POST)/notifications/integration-types
(GET)/notifications/integrations/{integration_id}/rotateSigningKey
(POST)/notifications/integrations/{integration_id}/signingKey
(GET)/notifications/integrations/{integration_id}
(DELETE, GET, PATCH)/notifications/integrations
(GET, POST)/notifications/mailinglist-confirmations
(POST)/resources/stores/kv/{store_id}/batch
(PUT)/tls/activations/{tls_activation_id}
(GET, PATCH)/tls/activations
(GET)/tls/configurations/{tls_configuration_id}
(DELETE, GET, PATCH)/tls/configurations
(GET, POST)/tls/preview/domains/{domain_id}
(GET, PATCH)/tls/preview/domains
(GET, POST)/v1/channel/{service_id}/ts/h/limit/{max_entries}
(GET)/v1/channel/{service_id}/ts/h
(GET)/v1/channel/{service_id}/ts/{start_timestamp}
(GET)
If you encounter any non-security-related bug or unexpected behavior, please file an issue using the bug report template.
Please see our SECURITY.md for guidance on reporting security-related issues.
MIT.