Magento 2:モジュールがインストールされているかどうかを確認する方法


18

Magento 2では、実行時にモジュールがインストールされているかどうかを確認できますか?

Magento 1では、isModuleEnabledヘルパーメソッドを使用するか、グローバル構成ツリーを手動で取得し、の下のノードを確認し<modules/>ます。

isModuleEnabledMagento 2に同等のものはありますか?そうでない場合、どのようにグローバル構成を取得し、必要なモジュールノードを確認できますか?

回答:


15

たぶんあなたはこれを探していますか?

lib / internal / Magento / Framework / Module / 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メソッドがあります。 v。2.2.0以降廃止

使用例:

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

うん、それは私が探していたものです!
アランストーム

3

composerを使用する目的の一部は、依存関係が存在することを確認できることです。そうしないと、モジュールがインストールされません。ただし、この「無効化」出力モードには少し奇妙なものがありますが、「クイック、壊れている、適切に修正できるまでオフにする」ようなものです。

したがって、モジュールを有効にするという概念は、m2とまったく同じではありません。

そうは言っても、そのようなAPIはあると確信していますが、@ APIアノテーションでまだpublic / supportedとしてマークされていない可能性があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.