В Magento 2 получение базового URL-адреса является общим требованием для различных задач разработки. Если вам нужно создавать динамические ссылки или получать доступ к ресурсам в вашем магазине Magento 2, важно понимать различные методы получения базового URL-адреса. В этой статье мы рассмотрим несколько подходов, сопровождаемых примерами кода, которые помогут вам получить базовый URL-адрес в Magento 2.
Метод 1: использование \Magento\Store\Model\StoreManagerInterface
Пример кода:
use Magento\Store\Model\StoreManagerInterface;
...
protected $storeManager;
public function __construct(
StoreManagerInterface $storeManager
) {
$this->storeManager = $storeManager;
}
public function getBaseUrl()
{
$baseUrl = $this->storeManager->getStore()->getBaseUrl();
return $baseUrl;
}
Метод 2: использование \Magento\Framework\UrlInterface
Пример кода:
use Magento\Framework\UrlInterface;
...
protected $urlBuilder;
public function __construct(
UrlInterface $urlBuilder
) {
$this->urlBuilder = $urlBuilder;
}
public function getBaseUrl()
{
$baseUrl = $this->urlBuilder->getBaseUrl();
return $baseUrl;
}
Метод 3: доступ к базовому URL-адресу через диспетчер объектов
Пример кода:
use Magento\Framework\App\ObjectManager;
...
$objectManager = ObjectManager::getInstance();
$storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface');
$baseUrl = $storeManager->getStore()->getBaseUrl();
Метод 4. Прямой доступ к базовому URL-адресу из конфигурации.
Пример кода:
use Magento\Framework\App\Config\ScopeConfigInterface;
...
protected $scopeConfig;
public function __construct(
ScopeConfigInterface $scopeConfig
) {
$this->scopeConfig = $scopeConfig;
}
public function getBaseUrl()
{
$baseUrl = $this->scopeConfig->getValue('web/unsecure/base_url');
return $baseUrl;
}
Метод 5. Получение базового URL-адреса с помощью вспомогательного класса
Пример кода:
use Magento\Framework\App\Helper\Context;
use Magento\Store\Model\StoreManagerInterface;
...
protected $storeManager;
protected $context;
public function __construct(
Context $context,
StoreManagerInterface $storeManager
) {
$this->context = $context;
$this->storeManager = $storeManager;
}
public function getBaseUrl()
{
$baseUrl = $this->context->getUrlBuilder()->getBaseUrl();
return $baseUrl;
}
В этой статье мы рассмотрели несколько методов получения базового URL-адреса в Magento 2. Используя эти подходы, вы можете получить базовый URL-адрес в соответствии с вашими конкретными требованиями. Независимо от того, предпочитаете ли вы использовать интерфейс Store Manager, интерфейс URL-адреса, диспетчер объектов или конфигурацию, теперь у вас есть множество вариантов получения базового URL-адреса в Magento 2.