Magento2: यह सामने या बैकएंड की जाँच करें?


जवाबों:


22

और पढ़ें: blog.mageprince.com

ऑब्जेक्ट मैनजर के साथ

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$state =  $objectManager->get('Magento\Framework\App\State');
echo $state->getAreaCode(); //frontend or adminhtml or webapi_rest

निर्भरता इंजेक्शन के साथ

protected $_state;

public function __construct (
    \Magento\Framework\App\State $state
) {
    $this->_state = $state;
}

public function getArea()
{
    return $this->_state->getAreaCode();
}

नोट: Magento2 कोडिंग मानकों के अनुसार सीधे फाइलों में ऑब्जेक्ट मैनेजर इंस्टेंस का उपयोग नहीं करते हैं


1
निर्भरता इंजेक्शन के लिए +1
PЯINC

मैगेंटो कोडिंग मानक के अनुसार +1 @ PingINCƏ, निर्माण विधि में पूर्ण वर्ग नाम का उपयोग न करें। उपयोग कथन का उपयोग करके पूरी कक्षा की घोषणा करें और केवल कक्षा के नाम को निर्माण () विधि के लिए घोषित करें।
राकेश जेसादिया

1
@ राकेशजेसदिया इम आपसे सहमत नहीं हैं, कृपया इस सवाल को देखें: magento.stackexchange.com/questions/106096/…
PЯINC

6

लोगों ने पहले ही सवाल का जवाब दे दिया है। मैं इसे बेहतर बना रहा हूं।

const AREA_CODE = \Magento\Framework\App\Area::AREA_ADMINHTML;

private $_state;

public function __construct (
    \Magento\Framework\App\State $state
) {
    $this->_state = $state;
}

public function isAdmin()
{
    $areaCode = $this->_state->getAreaCode();
    return $areaCode == self::AREA_CODE;
}

हाय @ दिनेश, क्या हम केवल प्रशासन पक्ष के लिए रखरखाव मोड सक्षम कर सकते हैं?
जफ़र पिंजर

नहीं, वह विकल्प उपलब्ध नहीं है।
दिनेश यादव

3

नीचे दिए गए कोड का उपयोग करें

$objectmanager = \Magento\Framework\App\ObjectManager::getInstance();
$state =  $objectmanager->get('Magento\Framework\App\State');
if($state->getAreaCode() == 'frontend')
  //frontend
else
  //backend

2

यदि आप व्यवस्थापक क्षेत्र में हैं, तो जांच के लिए नीचे दिए गए कोड को आज़माएं

function df_is_admin($store = null) {
    /** @var \Magento\Framework\ObjectManagerInterface $om */
    $om = \Magento\Framework\App\ObjectManager::getInstance();
    /** @var \Magento\Framework\App\State $state */
    $state =  $om->get('Magento\Framework\App\State');
    return 'adminhtml' === $state->getAreaCode();
}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.