Magento 2: วิธีการตรวจสอบว่ามีการติดตั้งโมดูลหรือไม่


18

ใน Magento 2 เป็นไปได้ไหมที่จะตรวจสอบว่ามีการติดตั้งโมดูลตอนรันไทม์หรือไม่?

ในวีโอไอพี 1 ฉันอาจจะใช้วิธีการช่วยเหลือหรือด้วยตนเองเรียกต้นไม้การกำหนดค่าส่วนกลางและตรวจสอบโหนดภายใต้isModuleEnabled<modules/>

isModuleEnabledMagento 2 มีความเท่าเทียมกันหรือไม่? หากไม่ใช่ฉันจะคว้าการกำหนดค่าส่วนกลางและตรวจสอบโหนดโมดูลที่ฉันต้องการได้อย่างไร

คำตอบ:


15

คุณอาจกำลังมองหาสิ่งนี้อยู่ใช่ไหม

lib / ภายใน / วีโอไอพี / กรอบ / โมดูล / Manager.php

/**
 * Whether a module is enabled in the configuration or not
 *
 * @param string $moduleName Fully-qualified module name
 * @return boolean
 */
public function isEnabled($moduleName)
{
    return $this->_moduleList->has($moduleName);
}

นอกจากนี้ยังมีวิธีการisoutputEnabledในชั้นเรียนเดียวกัน depricated ตั้งแต่ v. 2.2.0

ตัวอย่างการใช้งาน:

if (!$this->_moduleManager->isEnabled('Magento_Reports')) {

ใช่นั่นคือสิ่งที่ฉันกำลังมองหา!
Alan Storm

3

ส่วนหนึ่งของเป้าหมายในการใช้ผู้แต่งคือคุณสามารถมั่นใจได้ว่ามีการอ้างอิงอยู่ไม่เช่นนั้นโมดูลอื่นจะไม่ติดตั้ง อย่างไรก็ตามมีโหมดเอาต์พุต "ปิดใช้งาน" ที่แปลกเล็กน้อย แต่ก็เหมือน "เร็วเกินไปมันพังเปิดปิดจนกว่าเราจะสามารถแก้ไขได้อย่างถูกต้อง"

ดังนั้นแนวคิดของโมดูลที่เปิดใช้งานจึงไม่เหมือนกันใน m2

ต้องบอกว่าฉันค่อนข้างมั่นใจว่ามี API ดังกล่าว แต่อาจยังไม่ได้รับการทำเครื่องหมายเป็นสาธารณะ / สนับสนุนด้วยคำอธิบายประกอบ @ API

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.