Categories: Мадженто 2

Код для отримання URL сайту в Magento 2

Всякий раз, коли ви працюєте над Magento2, вам потрібно буде часто отримувати базовий URL (посилання на головну сторінку інтернет-магазину), посилання на папку з картинками (media), або певну статичну URL-адресу. З цієї статті ви дізнаєтеся, як можна легко отримати URL магазину в Мадженто 2.

В Magento 1.х версій для отримання посилання на головну сторінку використовувався метод Mage::getBaseUrl(); а в Magento 2.х версій для цього використовується трохи інший підхід.

 

 

Використання ін’єкції залежностей

У Мадженто 2, якщо ви хочете отримати базову URL адрусу сайту, ви можете використовувати наступний код:

$this->_storeManager->getStore()->getBaseUrl();

 

Де $this->_storeManager – це екземпляр класу \Magento\Store\Model\StoreManagerInterface

 

Цей код дасть вам такий результат:

https://site.com (якщо включено SEO URL Rewrite)
або https://site.com/index.php (якщо SEO URL Rewrite не включено)

 

Щоб отримати базовий URL без index.php, використовуйте код:

$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);

 

Для отримання URL-адреси до папки з картинками (media), використовуйте код:

$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);

 

 

Для доступу до $this->_storeManager, ви повинні використовувати ін’єкцію залежностей класу \Magento\Store\Model\StoreManagerInterface $storeManager для функції __construct() в класі Блоку, наприклад так:

public $_storeManager;
public function __construct(
  \Magento\Store\Model\StoreManagerInterface $storeManager,
  ...
) {
  ...
  $this->_storeManager = $storeManager;
}

 

 

 

Використання Менеджера Об’єктів

ВАЖЛИВО! Даний метод не є рекомендованим. Його можна використовувати тільки для короткочасних цілей розробки.

 

Щоб отримати базову адресу сайту:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();

 

Базовий URL сайту без index.php:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);

 

Використання прямого виклику Менеджера Об’єктів дає можливість отримати базовий URL безпосередньо в шаблонах .phtml:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);

 

ВАЖЛИВО! Повторюся, що прямий виклик Менеджера Об’єктів – це не дуже гарна ідея. Якщо ви хочете отримати базовий URL в .phtml шаблонах, тоді використовуйте ін’єкцію залежностей класу StoreManagerInterface в клас Блоку.

 

Share
Published by
SebWeo

Recent Posts

Чому обрати освіту за кордоном: переваги для майбутнього вашої дитини

Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…

24 години ago

Як вибрати майстра для перетяжки меблів?

Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…

2 дні ago

Що краще вибрати для хостингу: сервер VPS Windows чи VPS Linux?

Вибір ідеального хостингу під свій сайт може бути досить заплутаною справою, особливо коли існує багато…

1 тиждень ago

Лоуренс Пітер

Щоб уникати помилок, потрібно набиратися досвіду; щоб набиратися досвіду, потрібно робити помилки Лоуренс Пітер  

2 тижні ago

Що таке Чорне СЕО (Black Hat SEO) — вся потрібна інформація

Коротке визначення Чорного SEO Чорне СЕО (або Чорна оптимізація) — це будь-яка практика, метою якої…

2 тижні ago

Права категорії C: кому вони потрібні та як їх отримати?

Отримання прав водія категорії C відкриває двері до професійної діяльності, пов'язаної з керуванням вантажними автомобілями.…

3 тижні ago