web-dev-qa-db-ja.com

設定ファイルsetting.phpに変数を設定してコードから使用するにはどうすればよいですか?

設定ファイルsetting.phpに変数を設定してコードから使用するにはどうすればよいですか?

20
David

settings.php:

$conf['yoursite_something'] = 5;

次に、コードで:

// Second argument is the default.
variable_get('yoursite_something', NULL);

変数の前に、使用するモジュールまたはサイト名を必ず付けてください。

27
Berdir

Settings.phpで永続変数を宣言する必要がないことに注意してください。コードからvariable_get()を呼び出すだけで、変数が設定されていない場合のデフォルト値を定義できます。たとえば、次のコードでは、 'mymodule_say_hello'変数が明示的に_0_に設定されていない限り、すべてのページリクエストでhelloと表示されます。

_<?php
function mymodule_init() {
  // Get the mymodule_say_hello variable or use 1 if it's not set. 
  if (variable_get('mymodule_say_hello', 1)) {
    drupal_set_message('Hello world');
  }
}
?>
_

必要に応じて、モジュールで管理者がこの機能を無効にできるフォームを公開するか( system_settings_form 関数で簡単にできます)、またはvariable_set('mymodule_say_hello', 0)を呼び出してプログラムで設定を変更できます。

5
marcvangend

Drupal 8

あなたのsettings.phpで:

$settings['foo'] = 'bar';

あなたのコードで:

use Drupal\Core\Site\Settings;

Settings::get('foo', 'mydefaultvalue');
2
leymannx