SOY CMS / SOY Shop

ブログトップ

SOY Shopプラグインの解説 インストール時の処理

2014年02月13日


前回に引き続き、商品オプションプラグインをベースに

SOY Shopのプラグインの解説をしていきます。

SOY Shopプラグインの解説 プラグインの構造


今回はプラグインのインストール時の処理について記載します。





プラグインのインストール、アンインストール時は、

soyshop.plugin.install.phpが読み込まれます。


soyshop.plugin.install.phpでは、

onInstall関数とonUnInstall関数が用意されており、

onInstall関数はプラグインがインストールされた時、

onUnInstall関数はプラグインがアンインストールされた時に読み込まれ、


商品オプションプラグインでは、

プラグインがインストールされた時にSQLを発行して、

soyshop_ordersテーブルのスキーマの変更を行います。


具体的に見ていくと


function onInstall(){
	//初期化時のみテーブルを作成する
	$sql = $this->getSQL();
	$dao = new SOY2DAO();
		
	try{
		$dao->executeQuery($sql);
	}catch(Exception $e){
		//データベースが存在する場合はスルー
	}		
}
	
function getSQL(){
	$sql = file_get_contents(dirname(__FILE__) . "/sql/init_" . SOYSHOP_DB_TYPE . ".sql");
	return $sql;
}

(SOYSHOP_DB_TYPE定数はSOY Shopで定義しています。)


init_sqlite.sql

ALTER TABLE soyshop_orders ADD COLUMN attributes VARCHAR;

sqlディレクトリ以下にあるinit_{データベース}.sqlからSQL分を取得して、

SOY2DAOクラスを呼びだし、SQLを実行する

という処理が記載されています。


ちなみにonUnInstall関数、


function onUnInstall(){
	//アンインストールしてもテーブルは残す
}

つまりは商品オプションをアンインストールした時には何も行いません。


SOY2DAOに関しましては下記をご覧ください。

SOY2フレームワークの解説 1回目 SOY2DAO(1/2)

SOY2フレームワークの解説 1回目 SOY2DAO (2/2)

SOY App開発の説明 SOY2DAOでデータベースを利用する1