<?php
declare(strict_types=1);
namespace SlimStat\Dependencies\BrowscapPHP\Helper;
use function str_replace;
/**
* class to load the browscap.ini
*/
final class IniLoader implements IniLoaderInterface
{
/**
* The location from which download the ini file. The placeholder for the file should be represented by a %s.
*/
private const REMOTE_INI_URI = 'http://browscap.org/stream?q=%q';
/**
* The location to use to check out if a new version of the browscap.ini file is available.
*/
private const REMOTE_TIME_URI = 'http://browscap.org/version';
private const REMOTE_VERSION_URI = 'http://browscap.org/version-number';
private string $remoteFilename = IniLoaderInterface::PHP_INI;
/**
* sets the name of the local ini file
*
* @param string $name the file name
*
* @throws Exception
*/
public function setRemoteFilename(string $name): void
{
if (empty($name)) {
throw new Exception(
'the filename can not be empty',
Exception::INI_FILE_MISSING
);
}
$this->remoteFilename = $name;
}
/**
* returns the of the remote location for updating the ini file
*
* @throws void
*/
public function getRemoteIniUrl(): string
{
return str_replace('%q', $this->remoteFilename, self::REMOTE_INI_URI);
}
/**
* returns the of the remote location for checking the version of the ini file
*
* @throws void
*/
public function getRemoteTimeUrl(): string
{
return self::REMOTE_TIME_URI;
}
/**
* returns the of the remote location for checking the version of the ini file
*
* @throws void
*/
public function getRemoteVersionUrl(): string
{
return self::REMOTE_VERSION_URI;
}
}