diff --git a/src/Control/HTTP.php b/src/Control/HTTP.php index 494530c04..e691edb3e 100644 --- a/src/Control/HTTP.php +++ b/src/Control/HTTP.php @@ -70,7 +70,7 @@ class HTTP */ public static function absoluteURLs($html) { - $html = str_replace('$CurrentPageURL', $_SERVER['REQUEST_URI'], $html); + $html = str_replace('$CurrentPageURL', Controller::curr()->getRequest()->getURL(), $html); return HTTP::urlRewriter($html, function ($url) { //no need to rewrite, if uri has a protocol (determined here by existence of reserved URI character ":") if (preg_match('/^\w+:/', $url)) { @@ -170,7 +170,8 @@ class HTTP */ public static function setGetVar($varname, $varvalue, $currentURL = null, $separator = '&') { - $uri = $currentURL ? $currentURL : Director::makeRelative($_SERVER['REQUEST_URI']); + $request = Controller::curr()->getRequest(); + $uri = $currentURL ?: $request->getURL(); $isRelative = false; // We need absolute URLs for parse_url() diff --git a/tests/php/ORM/DBTest.php b/tests/php/ORM/DBTest.php index f68993fb7..8cb20163b 100644 --- a/tests/php/ORM/DBTest.php +++ b/tests/php/ORM/DBTest.php @@ -3,6 +3,8 @@ namespace SilverStripe\ORM\Tests; use SilverStripe\Control\Director; +use SilverStripe\Core\Injector\Injector; +use SilverStripe\Core\Kernel; use SilverStripe\ORM\DB; use SilverStripe\Dev\SapphireTest; @@ -11,19 +13,20 @@ class DBTest extends SapphireTest public function testValidAlternativeDatabaseName() { - + /** @var Kernel $kernel */ + $kernel = Injector::inst()->get(Kernel::class); $prefix = getenv('SS_DATABASE_PREFIX') ?: 'ss_'; - Director::set_environment_type('dev'); + $kernel->setEnvironment(Kernel::DEV); $this->assertTrue(DB::valid_alternative_database_name($prefix.'tmpdb1234567')); $this->assertFalse(DB::valid_alternative_database_name($prefix.'tmpdb12345678')); $this->assertFalse(DB::valid_alternative_database_name('tmpdb1234567')); $this->assertFalse(DB::valid_alternative_database_name('random')); $this->assertFalse(DB::valid_alternative_database_name('')); - Director::set_environment_type('live'); + $kernel->setEnvironment(Kernel::LIVE); $this->assertFalse(DB::valid_alternative_database_name($prefix.'tmpdb1234567')); - Director::set_environment_type('dev'); + $kernel->setEnvironment(Kernel::DEV); } }