Files
website/rendering/Helper/Environment.php

77 lines
1.5 KiB
PHP

<?php
/**
* Hilfsklasse zum Auslesen der Umgebungsvariablen, die in einer .htaccess gesetzt sind
*
* @author Christian Steinle
* @date 02.08.2016
*
* @copyright CS medien- & kommunikationssysteme (http://www.steinle-computer.de)
*/
namespace Helper;
use Singleton\SingletonAbstract;
class Environment extends SingletonAbstract
{
/**
* @var string
*/
protected static $_environment = '';
/**
* @return Environment|null
*/
public static function getInstance()
{
if (null === self::$_instance)
{
self::$_instance = new self;
self::setEnvironment();
}
return self::$_instance;
}
/**
* Falls ein Skript via Apache gestartet wird, zieht getenv.
* Andernfalls werden die Informationen aus einer .htaccess im FileSystem ausgelesen.
*/
protected static function setEnvironment()
{
$environment = getenv('ENVIRONMENT');
if ($environment === false)
{
$tmpPath = __DIR__;
while ($tmpPath != '/')
{
$htFile = $tmpPath . '/.htaccess';
if (is_file($htFile) && is_readable($htFile))
{
$htContent = file($htFile);
foreach ($htContent as $line => $text)
{
if (strpos($text, 'SetEnv') !== false && strpos($text, 'ENVIRONMENT') !== false)
{
self::$_environment = trim(str_replace(array('SetEnv', 'ENVIRONMENT'), '', $text));
exit();
}
}
}
$tmpPath = dirname($tmpPath);
}
$environment = '';
}
self::$_environment = $environment;
}
/**
* @return string
*/
public static function getEnvironment()
{
return self::$_environment;
}
}