📜  在 magento 2 中获取基本 url - PHP (1)

📅  最后修改于: 2023-12-03 15:07:44.062000             🧑  作者: Mango

在 Magento 2 中获取基本 URL - PHP

如果您正在开发 Magento 2 应用程序,您可能需要在代码中获取基本 URL。这个 URL 是 Magento 应用的根 URL,通常是您网站的 URL。

在本文中,我们将介绍在 Magento 2 中获取基本 URL 的几种方法。

使用 \Magento\Store\Model\StoreManagerInterface

StoreManagerInterface 接口提供了一个名为 getStore 的方法,该方法返回正在使用的商店的实例。然后,可以使用 getBaseUrl 方法来获取基本 URL。

<?php

use Magento\Store\Model\StoreManagerInterface;

class MyClass
{
    protected $storeManager;

    public function __construct(StoreManagerInterface $storeManager)
    {
        $this->storeManager = $storeManager;
    }

    public function getBaseUrl()
    {
        return $this->storeManager->getStore()->getBaseUrl();
    }
}
使用依赖注入

Magento 2 应用程序使用依赖注入来获取所需的服务。在您的类构造函数中注入 \Magento\Framework\UrlInterface,然后使用 getBaseUrl 方法获取基本 URL。

<?php

use Magento\Framework\UrlInterface;

class MyClass
{
    protected $urlInterface;

    public function __construct(UrlInterface $urlInterface)
    {
        $this->urlInterface = $urlInterface;
    }

    public function getBaseUrl()
    {
        return $this->urlInterface->getBaseUrl();
    }
}
使用 object manager

虽然不可取,但有些情况下,您可能需要在 Magento 2 中使用 object manager。在这种情况下,可以使用 \Magento\Framework\App\ObjectManager 类获取 UrlInterface,然后通过 getBaseUrl 方法获取基本 URL。

<?php

$obj = \Magento\Framework\App\ObjectManager::getInstance();
$urlInterface = $obj->get('Magento\Framework\UrlInterface');

echo $urlInterface->getBaseUrl();
结论

在 Magento 2 中获取基本 URL 的最佳方法是使用依赖注入来注入 UrlInterface 并调用 getBaseUrl 方法。这是最安全和可靠的方法,且易于测试。