The recommended method to install Fastly-PHP is through Composer.
-
Add
fastly/fastly
as a dependency in your project'scomposer.json
:{ "require": { "fastly/fastly": "~0.2" } }
-
Download and install Composer:
curl -s http://getcomposer.org/installer | php
-
Install your dependencies:
php composer.phar install --no-dev
-
Require Composer's autoloader
Composer also prepares an autoload file that's capable of autoloading all of the classes in any of the libraries that it downloads. To use it, just add the following line to your code's bootstrap process:
<?php require 'vendor/autoload.php'; $adapter = new GuzzleAdapter('api_key'); $client = new Fastly($adapter);
You can find out more on how to install Composer, configure autoloading, and other best-practices for defining dependencies at getcomposer.org.
You'll notice that the installation command specified --no-dev
. This prevents Composer from installing the various testing and development dependencies. For average users, there is no need to install the test suite. If you wish to contribute to development, just omit the --no-dev
flag to be able to run tests.
$adapter = new GuzzleAdapter('api_key');
$fastly = new Fastly($adapter);
$result = $fastly->send('GET', 'stats?from=1+day+ago');
$result = $fastly->purgeAll('some_service_id');
$result
is an instance of Psr\Http\Message\ResponseInterface
This packages uses Guzzle as the default http client.
To use a different http client an adapter class that implements implementing Fastly\Adapter\AdapterInterface
should be provided.
There is a class provided in order to fake Fastly so it can be used for testing:
$fastly = new FastlyFake();
$result = $fastly->send('GET', 'stats?from=1+day+ago');
$result = $fastly->purgeAll('some_service_id');
$fastly->getCall(0); // Will return array('send', 'GET', 'stats?from=1+day+ago', array())
$fastly->getCall(1); // Will return array('purgeAll', 'some_service_id', array());
Run tests with bin/phpspec run
docs consistantly formatted docs
This package uses the MIT License (MIT). Please see LICENSE
for more information.