This example shows how to use the 51Degrees Cloud service to lookup the details of a device based on a given 'native model name'. Native model name is a string of characters that are returned from a query to the device's OS. There are different mechanisms to get native model names for Android devices and iOS devices
<?php
require_once(__DIR__ . "/../../vendor/autoload.php");
use fiftyone\pipeline\core\Logger;
if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"]))
{
    function main($argv)
    {
        
        $logger = new Logger("info");
        
        
        $resourceKey = ExampleUtils::getResourceKeyFromEnv();
        
        if (empty($resourceKey)) {
            $resourceKey = ExampleUtils::getResourceKeyFromCliArgs($argv);
        }
        if (empty($resourceKey)) {
            $message = "No resource key specified in CLI args or environment variable '" .
                ExampleUtils::RESOURCE_KEY_ENV_VAR . "'." . PHP_EOL .
                "The 51Degrees cloud service is accessed using a 'ResourceKey'. " .
                "For more information " .
                "see http://51degrees.com/documentation/_info__resource_keys.html. " .
                "Native model lookup is not available as a free service. This means that " .
                "you will first need a license key, which can be purchased from our " .
                "pricing page: http://51degrees.com/pricing. Once this is done, a resource " .
                "key with the properties required by this example can be created at " .
                "https://configure.51degrees.com/QKyYH5XT. You can now populate the " .
                "environment variable mentioned at the start of this message with the " .
                "resource key or pass it as the first argument on the command line.";
            ExampleUtils::logErrorAndExit($logger, $message);
        }
        (new NativeModelLookupConsole())->run($resourceKey, $logger, [ExampleUtils::class, 'output']);
    }
    main(isset($argv) ? array_slice($argv, 1) : null);
}