SOY2HTMLのIgnoreプラグインを使ってみるに引き続き、

SOY CMS以外のアプリでSOY2DAOを使ってみる。


SOY2DAOはその名の通りDAOのためのクラスですが、

SQL構文をそのまま実行出来るという痒いところに手が届く的な側面もあるため、

PDOよりも直感的にSQLを実行出来るといった機能もある。


SOY2DAOに関する詳細は下記の記事をご覧ください。

SOY CMS/Shopのモジュール内でSQLを実行する

SOY2DAOでデータベースから値を取り出す


早速、SOY2DAOだけ使用するためのコードを作成してみる。


最初にディレクトリの構成は下記の通り

.
├── index.php
└── webapp
    └── lib
         └── soy2_build.php

index.phpに下記のコードを書いてみた。


<?php
define("WEBAPP_DIR", dirname(__FILE__) . "/webapp/");

//include SOY2
if(!class_exists("SOY2")) include_once(WEBAPP_DIR . "lib/soy2_build.php");

//configure SOY2
SOY2::RootDir(WEBAPP_DIR . "src/");	//今は使わないけれども一応

//SQLiteのインメモリを使用
SOY2DAOConfig::Dsn("sqlite::memory:");

$dao = new SOY2DAO();
$table = "CREATE TABLE soy2_sample (id integer primary key AUTOINCREMENT, text TEXT);";
$insert = "INSERT INTO soy2_sample (text) VALUES('hoge');";
$sql = "SELECT * FROM soy2_sample;";


try{
	$dao->executeQuery($table);
	$dao->executeQuery($insert);
	$results = $dao->executeQuery($sql);
	var_dump($results);
}catch(Exception $e){
	var_dump($e);
}

簡単な説明をすると、

SQLiteのインメモリでデータベースを作成し、

soy2_sampleというテーブルを作成して、hogeという値を挿入した後、全件検索という手順のコードになる。


このコードを実行してみると、

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["text"]=>
    string(4) "hoge"
  }
}

期待通りの結果となった。


SOY2DAOが使えることがわかったので、

次回はDAOの本来の機能の方を見ていくことにする。