モジュールが有効になっているかどうかを確認するにはどうすればよいですか?


20

Drupal 7では、module_exists()を使用して、モジュールが有効かどうか(およびそのモジュールが存在するかどうかを確認できます。

例えば、

if (module_exists('devel')) {

Drupal 8でモジュールが有効になっているかどうかを確認するにはどうすればよいですか?

回答:


33

Cliveの言及と同じように....

\ Drupalを使用するよりもサービスが望ましい(現在のコンテキストではオプションであると想定)

モジュールが有効になっているがサービスを使用しているかどうかを確認する例を次に示します。

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }

2
\Drupal::moduleHandlerとにかく「module_handler」サービスを取得するために同等の呼び出しを行うことになります(moduleHandler docoを参照)。Clivesコメントのキーワードは、注入、つまりサービスをコンストラクターに渡すことでした。
ジョージ

12

このような:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {

2
module_handlerサービスを\Drupalインジェクトすることは、使用することよりも望ましいことではありません(現在のコンテキストではオプションであると仮定)
Clive
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.