0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Markdown AIチャレンジ!効率化と個性を活かした活用術!

DrupalのState API と Config APIの違いメモ

Posted at

概要

これまでState APIを使ったことがなかったです。
どういうものかすら知らなかったので、メモとして残します。

本題

ドキュメントを見てから、どこに保存されていか調べると、
State APIはテーブル「key_value」に保存され、Config APIの「config」テーブルとテーブルの構造も似ています。

test1.png

ここまで分かった段階でそれぞれの使い分けが分からなくなりました。

Drupalの質問サイトでも同じように悩んでいる方がいましたので、紹介します。

自分の解釈

Config API

Drushなどから、設定情報をエクスポートやインポートできる機能がある。
そのため、テストサイトから本番サイトへの設定情報の同期する必要があるデータを保存する。(コンテンツタイプの設定など)

State API

エクスポートやインポート機能はない。
サイト固有のデータを保存する。
例えば、ある条件の場合の、モジュールの実行した時間など。
同期する必要がない情報を保存する。

一部の環境でだけ、設定値を同期させたくない場合

ここで悩んだのが、本番とテスト環境で違う値を使用するケースです。
例えば、EC-CUBEを例に挙げると、多くの決済代行業者を決済プラグインを出していますが、開発時と本運用時で設定項目が別で、あったります。(ダミーのクレジットのテストなど)
そういったケースの場合は、この流れからいうと「State API」を使うのが良いのかなと思いますが、サイトの状態かというと微妙な気がしました。
その場合は、コントリビュートモジュールの「Configuration Split」を使うと解決できると思いました。
一部だけは、Config APIのデータを同期させないなどを設定が、できるモジュールのようです。

まだ使ったことはありませんが、便利そうなモジュールなので、使いこなせれば、開発時に威力を発揮しそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?