Current File : /var/www/prestashop/modules/ps_metrics/vendor/segmentio/analytics-php/lib/Segment/Consumer/File.php |
<?php
namespace ps_metrics_module_v4_0_6;
class Segment_Consumer_File extends Segment_Consumer
{
private $file_handle;
protected $type = "File";
/**
* The file consumer writes track and identify calls to a file.
* @param string $secret
* @param array $options
* string "filename" - where to log the analytics calls
*/
public function __construct($secret, $options = array())
{
if (!isset($options["filename"])) {
$options["filename"] = \sys_get_temp_dir() . \DIRECTORY_SEPARATOR . "analytics.log";
}
parent::__construct($secret, $options);
try {
$this->file_handle = \fopen($options["filename"], "a");
\chmod($options["filename"], 0777);
} catch (\Exception $e) {
$this->handleError($e->getCode(), $e->getMessage());
}
}
public function __destruct()
{
if ($this->file_handle && \get_resource_type($this->file_handle) != "Unknown") {
\fclose($this->file_handle);
}
}
/**
* Tracks a user action
*
* @param array $message
* @return [boolean] whether the track call succeeded
*/
public function track(array $message)
{
return $this->write($message);
}
/**
* Tags traits about the user.
*
* @param array $message
* @return [boolean] whether the identify call succeeded
*/
public function identify(array $message)
{
return $this->write($message);
}
/**
* Tags traits about the group.
*
* @param array $message
* @return [boolean] whether the group call succeeded
*/
public function group(array $message)
{
return $this->write($message);
}
/**
* Tracks a page view.
*
* @param array $message
* @return [boolean] whether the page call succeeded
*/
public function page(array $message)
{
return $this->write($message);
}
/**
* Tracks a screen view.
*
* @param array $message
* @return [boolean] whether the screen call succeeded
*/
public function screen(array $message)
{
return $this->write($message);
}
/**
* Aliases from one user id to another
*
* @param array $message
* @return boolean whether the alias call succeeded
*/
public function alias(array $message)
{
return $this->write($message);
}
/**
* Writes the API call to a file as line-delimited json
* @param [array] $body post body content.
* @return [boolean] whether the request succeeded
*/
private function write($body)
{
if (!$this->file_handle) {
return \false;
}
$content = \json_encode($body);
$content .= "\n";
return \fwrite($this->file_handle, $content) == \strlen($content);
}
}