The device detection data file contains meta data that can provide additional information about the various records in the data model.This example shows how to access this data and display the values available.
The device detection data file contains meta data that can provide additional information about the various records in the data model. This example shows how to access this data and display the values available.
A list of the properties will be displayed, along with some additional information about each property.
Finally, the evidence keys that are accepted by device detection are listed. These are the keys that, when added to the evidence collection in flow data, could have some impact on the result returned by device detection.
This example requires a local data file. The free 'Lite' data file can be acquired by
pulling the git submodules under this repository (run `git submodule update --recursive`)
or from the device-detection-data
GitHub repository.
The Lite data file is only used for illustration, and has limited accuracy and capabilities.
Find out about the more capable data files that are available on our
pricing page
<?php
require_once(__DIR__ . "/exampleUtils.php");
require_once(__DIR__ . "/../../vendor/autoload.php");
{
public function run($logger, callable $output)
{
$engine = new DeviceDetectionOnPremise();
$this->outputEvidenceKeyDetails($engine, $output);
$this->outputProperties($engine, $output);
}
private function outputEvidenceKeyDetails($engine, callable $output)
{
$output("");
if (is_a($engine->getEvidenceKeyFilter(), "fiftyone\\pipeline\\core\\BasicListEvidenceKeyFilter"))
{
$filter = $engine->getEvidenceKeyFilter();
$output("Accepted evidence keys:");
foreach ($filter->getList() as $key)
{
$output("\t$key");
}
}
else
{
output("The evidence key filter has type " .
$engine->getEvidenceKeyFilter().". As this does not extend " .
"BasicListEvidenceKeyFilter, a list of accepted values cannot be " .
"displayed. As an alternative, you can pass evidence keys to " .
"filter->filterEvidenceKey(string) to see if a particular key will be included " .
"or not.");
output("For example, header.user-agent is " .
($engine->getEvidenceKeyFilter().filterEvidenceKey("header.user-agent") ? "" : "not ") .
"accepted.");
}
}
private function outputProperties($engine, callable $output)
{
foreach ($engine->getProperties() as $property)
{
$output("Property - ".$property["name"] . " " .
"[Category: ".$property["category"]."] (".$property["type"].")");
}
}
};
if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"]))
{
function main($argv)
{
$logger = new Logger("info");
}
main(isset($argv) ? array_slice($argv, 1) : null);
}