web-dev-qa-db-ja.com

variable_get()の変数を設定するにはどうすればよいですか?

variable_get()を理解しようとしています。ここまでは、_$conf_配列を使用してsettings.phpに変数を設定し、variable_get()を使用してコードで後で取得できることを確認しました。 variable_get()を使用してデータベースから値を取得することもできることを読みました。

これはどのように作動しますか?
自動的に作成されるテーブルはありますか?
この機能が可能な場合、変数をどのように設定しますか?

9
cthrucode

variable_set があらゆる種類の構造化データをデータベースに保存する魔法の方法であり、 variable_get が再びそれを取得する方法であることを学習したいと思うかもしれません。残念ながら、そうではありません。

「永続変数」は、しばしば呼ばれるように、サイト管理者が値を変更するまで、リクエスト、ユーザー、セッション全体で永続化する必要がある比較的単純なKey-Valueペアを意味します。良い例がサイト名です。

それで、それはどのように機能しますか?

Drupalがブートストラップされると、すべての変数がキャッシュ(利用可能な場合)または変数テーブルから読み取られます(正確なコードについては variable_initialize を参照してください)。変数と巨大な配列であるグローバル_$conf_変数に格納されます。Drupalは、変数が必要になるたびにデータベースクエリを実行するよりも効率的であるため、これを行います(variable_setを使用する理由でもありますデータの大きなblobには適していません。リクエストごとに読み込まれます!)

variable_get('variable_name', 'default_value')を使用すると、変数名は$ conf配列で検索されます。存在する場合、値が返されます。それ以外の場合は、デフォルト値が返されます。

最後に、ファミリの3番目のメンバー variable_del があります。名前が示すように、これは変数テーブルから変数を削除します。この関数は hook_uninstall 実装でよく使用され、モジュールがアンインストールされるときに変数を削除します。

より複雑なカスタムデータ構造をデータベースに保存する方法を探している場合は、 hook_schemadrupal_write_record を確認するか、Drupalエンティティシステムおよび エンティティAPI

25
marcvangend

Drush (強く推奨)を使用している場合は、コマンドラインからdrush vget > variables.txtを発行して、現在のすべての変数とその値のリストを含むテキストファイルを作成できます。同様に、drush vsetを使用して、変数を別の値に変更できます。

variable-getvariable-set、およびその他の便利なコマンドの詳細については、 GitHub を参照してください。

5
mrP

変数を設定するには、 variable_set() を使用します。次に、 variable_get() を使用してそれらを取得できます。 Drupal APIサイトを理解する必要があります。

変数は、保存されている場合、変数テーブルにあります。

3
Triskelion

あなたはできる:

2
Mołot