トップページ > 1. ドキュメント > 1.2. CharcoalPHPの基本 > 1.2.3. 拡張コンポーネント(基本) > SmartGatewayコンポーネントの使い方(1)

SmartGatewayコンポーネントの使い方(1)

SmartGatewayコンポーネント

 SmartGatewayコンポーネントは、データベースアクセスを提供するコンポーネントです。他のO/Rマッピングライブラリと同じようにSmartGatewayコンポーネントを使うことでSQLをあまり意識することなくデータの抽出や更新を行うことができます。

SmartGatewayコンポーネントの特徴

 SmartGatewayコンポーネントは以下の特徴があります。

  • JOIN(INNER JOIN/LEFT JOIN/RIGHT JOIN)に対応
  • プリペアドステートメント(Prepared Statement)に対応(※データソース・データアクセスライブラリが対応している場合)
  • トランザクションにも対応(※データソース・データアクセスライブラリ・RDBMSが対応している場合)

 ※の部分についてはそれぞれのデータソース・データアクセスライブラリ・RDBMSについてのマニュアルを参照してください。

SmartGatewayコンポーネントを使うための準備

 SmartGatewayコンポーネントは他のコンポーネントと同様、以下のステップで使用されます。

  1. コンポーネントインスタンスの作成
  2. 初期設定ファイルの読み込み
  3. コンポーネントが実装しているメソッドの実行

コンポーネントインスタンスの生成

 コンポーネントインスタンスの生成は、下記のように非常に簡単なコードになります。

 イベントコンテキストが取得できないコンテキスト(グローバルスコープなど)でSmartGatewayコンポーネントのインスタンスを生成したい場合、以下のようにできます。

初期設定ファイルの読み込み

 次に、初期設定ファイルの読込が行われますがこれはフレームワークが自動的に行います。

 初期設定ファイル名は「smart_gateway.component.ini」です(変更することもできます)。

 1)の手順でインスタンスの生成が行われると、フレームワークは以下の場所からコンポーネントの初期設定ファイルを読み込みます。

  • $CHARCOAL_HOME/config/components/charcoal/db/smart_gateway.component.ini
  • $CHARCOAL_HOME/src/modules/charcoal/db/smart_gateway.component.ini
  • $CHARCOAL_WEBAPP_DIR/config/components/charcoal/db/smart_gateway.component.ini
  • $CHARCOAL_WEBAPP_DIR/modules/charcoal/db/smart_gateway.component.ini
  • $CHARCOAL_WEBAPP_DIR/$CHARCOAL_PROJECT/config/components/charcoal/db/smart_gateway.component.ini
  • $CHARCOAL_WEBAPP_DIR/$CHARCOAL_PROJECT/modules/charcoal/db/smart_gateway.component.ini
  • $CHARCOAL_WEBAPP_DIR/$CHARCOAL_PROJECT/apps/$CHARCOAL_APPLICATION/config/components/charcoal/db/smart_gateway.component.ini
  • $CHARCOAL_WEBAPP_DIR/$CHARCOAL_PROJECT/apps/$CHARCOAL_APPLICATION/modules/charcoal/db/smart_gateway.component.ini

 (上記の$で始まる変数は、エントリスクリプト(index.php)で定義される定数です)

 また、SmartGatewayコンポーネントはインスタンス生成時に以下の内部オブジェクトを生成するため、データベースの接続先設定などはそちらの設定ファイルで行います。

  • データソース(データベースに対する低レベルなインタフェース。データベース接続先の設定を保持している)
  • SQLビルダ(RDBMS固有のキーワードやSQLの仕様に関する差異を吸収するためのコンポーネント)

 以下はそれぞれのコンポーネントやオブジェクトの初期設定ファイルの例です。

 SmartGatewayコンポーネントとSQLビルダオブジェクトの初期設定ファイルは非常にシンプルです。SmartGatewayコンポーネントのscopeエントリにはrequestを指定しています。これは、複数のタスクで何度かSmartGatewayコンポーネントを利用した場合、その都度データベースに接続したのではオーバーヘッドが大きくなってしまうため、一度接続した後は別タスクでSmartGatewayコンポーネントを起動しても前回の接続を利用してSQLコマンドを発行するようにするためです。

 データソースはデータベース接続とRDBMSへの低レベルなコマンド発行を行うオブジェクトで、PDOのような低レベルデータアクセスライブラリをラップするものです。初期設定ファイルではデータベースの接続先の情報とbackendを指定します。

コンポーネントが実装しているメソッドの実行

  SmartGatewayコンポーネントのインスタンスを生成すると自動的に初期設定を読み込みますのであとは下記のようにSmartGatewayコンポーネントのメソッドを実行するだけです。

Pocket

Comments are closed.