A modest collection of PHP libraries used at SparkFun.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

83 lines
1.6 KiB

<?php
namespace SparkLib;
/**
* An interface to Phant instances.
*/
class Phant {
protected $_endpoint = 'http://data.sparkfun.com';
protected $_pubhash;
protected $_privhash;
public function __construct ($endpoint, $pubhash, $privhash)
{
$this->_endpoint = $endpoint;
$this->_pubhash = $pubhash;
$this->_privhash = $privhash;
}
/**
* Write data to a stream for which we know the private hash.
*/
public function input (array $data)
{
$postbody = http_build_query($data);
$headers = [
"Phant-Private-Key: {$this->_privhash}",
"Content-type: application/x-www-form-urlencoded",
];
$opts = [
'http' => [
'method' => 'POST',
'header' => $headers,
'content' => $postbody
]
];
$url = $this->_endpoint . '/input/' . $this->_pubhash . '.txt';
$context = stream_context_create($opts);
return file_get_contents($url, false, $context);
}
/**
* Get current stats for the stream.
*/
public function stats ()
{
$opts = [
'http' => [
'method' => 'GET',
]
];
$url = $this->_endpoint . '/output/' . $this->_pubhash . '/stats';
$context = stream_context_create($opts);
return json_decode(file_get_contents($url, false, $context));
}
/**
* Return stream data.
*/
public function data ()
{
$opts = [
'http' => [
'method' => 'GET',
]
];
$url = $this->_endpoint . '/output/' . $this->_pubhash . '.json';
$context = stream_context_create($opts);
return json_decode(file_get_contents($url, false, $context));
}
}