cfv1000/phantomjs-cloud

PhantomJS Cloud API wrapper

1.0.3 2017-05-02 13:06 UTC

This package is auto-updated.

Last update: 2024-04-16 06:53:15 UTC


README

A library to interact with the Phantom JS Cloud

Examples and extensive documentation on the API https://phantomjscloud.com/docs/http-api/

Simple example

Write the web page to a JPG file:

include_once 'vendor/autoload.php';

$request = new \PhantomJS\PageRequest('http://www.example.com');
file_put_contents('example.com.jpg', $request->getResponse());

This example shouldn't be used in production. If you need to perform advanced HTTP requests to the api, please address a dedicated library for that. This library should be used only to write your requests

Guzzle Example

include_once __DIR__ . '/vendor/autoload.php';

/**
 * write your phantom js request
 * @see https://phantomjscloud.com/docs/
 */
$request = new \PhantomJS\PageRequest('http://www.example.com');

/**
 * Initialize Guzzle to perform HTTP requests
 * @see http://docs.guzzlephp.org/en/stable
 * The request url will be https://phantomjscloud.com/api/browser/v2/a-demo-key-with-low-quota-per-ip-address/?request={url:%22http://www.example.com%22}
 */
$client = new GuzzleHttp\Client();
$response = $client->get($request->getApiUrl() . '?request=' . $request->toJSON());
print $response->getBody();

TODO - What we plan next for this code

  • have a directory structure that will allow you to separate PhantomJS classes from helper classes
  • migrate public arguments to protected arguments where possible and use setters and getters.
  • see TODO's in the class comments
  • add examples in the documentation