Іноді під час вам потрібно отримати інформацію про магазин програмно. Вам може знадобитися отримати поточний ідентифікатор магазину, код магазину, назву, ідентифікатор веб-сайту або поточна URL-адреса .
Щоб отримати ці дані, використовуйте екземпляр singleton наступного класу:
\Magento\Store\Model\StoreManagerInterface
Наприклад, ви можете включити його до конструктора класу, а потім викликати:
<?php
namespace \MyCompany\ExampleModule\Model;
class Example
{
private $storeManager;
public function __construct( ... \Magento\Store\Model\StoreManagerInterface $storeManager, ... ) {
... $this->storeManager = $storeManager; ... } /**
* Examples
*/
public function execute()
{
/* Get Current Store ID */
$storeId = $this->storeManager->getStore()->getId();
/* Get Current Store Code */
$storeCode = $this->storeManager->getStore()->getCode();
/* Get Current Store Name */
$storeName = $this->storeManager->getStore()->getName();
/* Get Current Store Status */
$isActive = $this->storeManager->getStore()->isActive();
/* Get Current Website ID */
$websiteId = $this->storeManager->getStore()->getWebsiteId();
/* Get Current URL */
$currentUrl = $this->storeManager->getStore()->getCurrentUrl();
/* Get Login Page URL */
$loginPageUrl = $this->storeManager->getStore()->getUrl('customer/account/login');
/* Get Code of Store With ID 2 */
$secondStoreCode = $this->storeManager->getStore(2)->getCode();
} }
Ви можете використовувати менеджер об'єктів , щоб швидко отримати об'єкт StoreManager для тесту, як у прикладі нижче:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager->get(\Magento\Store\Model\StoreManagerInterface::class);
Увага! Якщо ви хочете використовувати StoreManager всередині клас блоків , і блок розширюється з \Magento\Framework\View\Element\Template, тоді StoreManager доступний для вас "з коробки" через захищену властивість $this->_storeManager.
Приклад:
<?php
namespace \MyCompany\ExampleModule\Block;
class Example extends \Magento\Framework\View\Element\Template
{
public function getCurrentStoreId()
{
/* Get Current Store ID */
return $this->_storeManager->getStore()->getId(); } }
Окрім поточного ідентифікатора магазину, коду, назви та ідентифікатора веб-сайту, URL-адреси, вам потрібно знати як отримати URL-адреси у файлі Magento .phtml .