41 lines
1009 B
PHP
41 lines
1009 B
PHP
|
<?php
|
||
|
|
||
|
namespace NoccyLabs\Hotfix\Hotfix;
|
||
|
|
||
|
use NoccyLabs\Hotfix\Exception\ConfigurationException;
|
||
|
|
||
|
class AliasManager
|
||
|
{
|
||
|
private static $aliases = [];
|
||
|
|
||
|
public static function registerFromConfig($file)
|
||
|
{
|
||
|
$config = parse_ini_file($file, true);
|
||
|
if (!array_key_exists('alias', $config)) {
|
||
|
return ;
|
||
|
}
|
||
|
foreach ($config['alias'] as $prefix=>$url) {
|
||
|
self::registerAlias($prefix, $url);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static function registerAlias($prefix, $url)
|
||
|
{
|
||
|
if (strpos($url,'{fix}')===false) {
|
||
|
throw new ConfigurationException("The alias URL for {$prefix} does not contain the magic '{fix}' placeholder");
|
||
|
}
|
||
|
self::$aliases[$prefix] = $url;
|
||
|
}
|
||
|
|
||
|
public static function getRegisteredAlises()
|
||
|
{
|
||
|
return self::$aliases;
|
||
|
}
|
||
|
|
||
|
public static function getAlias($prefix)
|
||
|
{
|
||
|
if (!array_key_exists($prefix,self::$aliases)) return null;
|
||
|
return self::$aliases[$prefix];
|
||
|
}
|
||
|
|
||
|
}
|