mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-03 17:22:20 +09:00
Add R\F\URL::getCurrentDomain()
This commit is contained in:
parent
5f47ddeb53
commit
8a012a5847
3 changed files with 38 additions and 3 deletions
|
|
@ -33,6 +33,23 @@ class URL
|
||||||
/**
|
/**
|
||||||
* Get the current domain.
|
* Get the current domain.
|
||||||
*
|
*
|
||||||
|
* @param bool $preserve_port
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getCurrentDomain(bool $preserve_port = false): string
|
||||||
|
{
|
||||||
|
// Get current domain.
|
||||||
|
$domain = strtolower($_SERVER['HTTP_HOST'] ?? '');
|
||||||
|
if (!$preserve_port)
|
||||||
|
{
|
||||||
|
$domain = preg_replace('/:\d+$/', '', $domain);
|
||||||
|
}
|
||||||
|
return self::decodeIdna($domain);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a URL using the current domain and the path.
|
||||||
|
*
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -198,8 +198,7 @@ class ModuleModel extends Module
|
||||||
public static function getDefaultMid($domain = null)
|
public static function getDefaultMid($domain = null)
|
||||||
{
|
{
|
||||||
// Get current domain.
|
// Get current domain.
|
||||||
$domain = $domain ?: strtolower(preg_replace('/:\d+$/', '', $_SERVER['HTTP_HOST']));
|
$domain = $domain ? Rhymix\Framework\URL::decodeIdna($domain) : Rhymix\Framework\URL::getCurrentDomain();
|
||||||
$domain = Rhymix\Framework\URL::decodeIdna($domain);
|
|
||||||
|
|
||||||
// Find the domain information.
|
// Find the domain information.
|
||||||
$domain_info = self::getSiteInfoByDomain($domain);
|
$domain_info = self::getSiteInfoByDomain($domain);
|
||||||
|
|
@ -208,7 +207,7 @@ class ModuleModel extends Module
|
||||||
$domain_info = self::getDefaultDomainInfo();
|
$domain_info = self::getDefaultDomainInfo();
|
||||||
if (!$domain_info)
|
if (!$domain_info)
|
||||||
{
|
{
|
||||||
$domain_info = getClass('module')->migrateDomains();
|
$domain_info = Module::getInstance()->migrateDomains();
|
||||||
}
|
}
|
||||||
$domain_info->is_default_replaced = true;
|
$domain_info->is_default_replaced = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,25 @@ class URLTest extends \Codeception\Test\Unit
|
||||||
$_SERVER['REQUEST_URI'] = $old_request_uri;
|
$_SERVER['REQUEST_URI'] = $old_request_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetCurrentDomain()
|
||||||
|
{
|
||||||
|
$original_host = $_SERVER['HTTP_HOST'];
|
||||||
|
|
||||||
|
$_SERVER['HTTP_HOST'] = 'rhymix.org';
|
||||||
|
$this->assertEquals('rhymix.org', Rhymix\Framework\URL::getCurrentDomain());
|
||||||
|
$this->assertEquals('rhymix.org', Rhymix\Framework\URL::getCurrentDomain(true));
|
||||||
|
|
||||||
|
$_SERVER['HTTP_HOST'] = 'xn--oi2b48fl0g0pf.RHYMIX.ORG:443';
|
||||||
|
$this->assertEquals('라이믹스.rhymix.org', Rhymix\Framework\URL::getCurrentDomain());
|
||||||
|
$this->assertEquals('라이믹스.rhymix.org:443', Rhymix\Framework\URL::getCurrentDomain(true));
|
||||||
|
|
||||||
|
$_SERVER['HTTP_HOST'] = 'rhymix.org:8080';
|
||||||
|
$this->assertEquals('rhymix.org', Rhymix\Framework\URL::getCurrentDomain());
|
||||||
|
$this->assertEquals('rhymix.org:8080', Rhymix\Framework\URL::getCurrentDomain(true));
|
||||||
|
|
||||||
|
$_SERVER['HTTP_HOST'] = $original_host;
|
||||||
|
}
|
||||||
|
|
||||||
public function testGetCurrentDomainURL()
|
public function testGetCurrentDomainURL()
|
||||||
{
|
{
|
||||||
$this->assertEquals('https://www.rhymix.org/', Rhymix\Framework\URL::getCurrentDomainURL());
|
$this->assertEquals('https://www.rhymix.org/', Rhymix\Framework\URL::getCurrentDomainURL());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue