review file \Magento\Store\Model\Store.php
public function getBaseUrl($type = \Magento\Framework\UrlInterface::URL_TYPE_LINK, $secure = null)
{
$cacheKey = $type . '/' . ($secure === null ? 'null' : ($secure ? 'true' : 'false'));
if (!isset($this->_baseUrlCache[$cacheKey])) {
$secure = $secure === null ? $this->isCurrentlySecure() : (bool)$secure;
switch ($type) {
case \Magento\Framework\UrlInterface::URL_TYPE_WEB:
$path = $secure
? self::XML_PATH_SECURE_BASE_URL
: self::XML_PATH_UNSECURE_BASE_URL;
$url = $this->getConfig($path);
break;
case \Magento\Framework\UrlInterface::URL_TYPE_LINK:
$path = $secure ? self::XML_PATH_SECURE_BASE_LINK_URL : self::XML_PATH_UNSECURE_BASE_LINK_URL;
$url = $this->getConfig($path);
$url = $this->_updatePathUseRewrites($url);
$url = $this->_updatePathUseStoreView($url);
break;
case \Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK:
$path = $secure ? self::XML_PATH_SECURE_BASE_LINK_URL : self::XML_PATH_UNSECURE_BASE_LINK_URL;
$url = $this->getConfig($path);
$url = $this->_updatePathUseRewrites($url);
break;
case \Magento\Framework\UrlInterface::URL_TYPE_STATIC:
$path = $secure ? self::XML_PATH_SECURE_BASE_STATIC_URL : self::XML_PATH_UNSECURE_BASE_STATIC_URL;
$url = $this->getConfig($path);
if (!$url) {
$url = $this->getBaseUrl(
\Magento\Framework\UrlInterface::URL_TYPE_WEB,
$secure
) . $this->filesystem->getUri(
DirectoryList::STATIC_VIEW
);
}
break;
case \Magento\Framework\UrlInterface::URL_TYPE_MEDIA:
$url = $this->_getMediaScriptUrl($this->filesystem, $secure);
if (!$url) {
$path = $secure ? self::XML_PATH_SECURE_BASE_MEDIA_URL : self::XML_PATH_UNSECURE_BASE_MEDIA_URL;
$url = $this->getConfig($path);
if (!$url) {
$url = $this->getBaseUrl(
\Magento\Framework\UrlInterface::URL_TYPE_WEB,
$secure
) . $this->filesystem->getUri(
DirectoryList::MEDIA
);
}
}
break;
default:
throw new \InvalidArgumentException('Invalid base url type');
}
if (false !== strpos($url, self::BASE_URL_PLACEHOLDER)) {
$distroBaseUrl = $this->_request->getDistroBaseUrl();
$url = str_replace(self::BASE_URL_PLACEHOLDER, $distroBaseUrl, $url);
}
$this->_baseUrlCache[$cacheKey] = rtrim($url, '/') . '/';
}
return $this->_baseUrlCache[$cacheKey];
}
Nhận xét
Đăng nhận xét