variable_get()
を理解しようとしています。ここまでは、_$conf
_配列を使用してsettings.phpに変数を設定し、variable_get()
を使用してコードで後で取得できることを確認しました。 variable_get()
を使用してデータベースから値を取得することもできることを読みました。
これはどのように作動しますか?
自動的に作成されるテーブルはありますか?
この機能が可能な場合、変数をどのように設定しますか?
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_schema と drupal_write_record を確認するか、Drupalエンティティシステムおよび エンティティAPI 。
変数を設定するには、 variable_set() を使用します。次に、 variable_get() を使用してそれらを取得できます。 Drupal APIサイトを理解する必要があります。
変数は、保存されている場合、変数テーブルにあります。
あなたはできる: