前回からの続きで、今回はModelとServiceの具体的な実装から。
参考:
本家様サイト — マニュアル:Modelについて
本家様サイト — マニュアル:データアクセスについて
今回はこんな感じのテーブルを用意しておいた。
テーブルのアクセス
データベーステーブルにアクセスする際は、modelsフォルダ内にテーブル名と同じ名前のphpファイルを作成する。
models/user_currytest.php
<?php
class user_currytest extends Model
{
public function searchAll()
{
$sel = $this->select();
$rows = $sel->fetchAll();
return $rows;
}
}
?>
単純に、テーブル内のレコードをすべて取得して値を返すメソッドだけ準備した。これを、コントローラーやサービスから呼び出せばいい。
controllers/index_controller.php
<?php
class IndexController extends Controller
{
public function index()
{
$user_currytestTable = $this->model(‘user_currytest’);
$ret = $user_currytestTable->searchAll();
print_r($ret);
}
}
MVCもくそもないけど、とりあえずModelの挙動を見るために簡単なテストコードを書いてみた。
これを実行すると、結果はこんな感じ。
出力結果
12345678910111213141516171819202122 Array([0] => Array([id] => 1[userid] => user[password] => password[created] => 2014-01-01 00:00:00[deleted] =>[last_login] => 2014-01-08 00:00:00)[1] => Array([id] => 2[userid] => user2[password] => password2[created] => 2014-01-02 00:00:00[deleted] =>[last_login] => 2014-01-07 00:00:00))※注 パスワードはせめてハッシュ化してから格納しよう。
こんな感じ。
検索条件や並び順を指定する場合は↓のように書いてあげるだけ。
models/user_currytest.php
public function searchAll()
{
$sel = $this->select();
$sel->where(‘deleted is null’);
$sel->order(‘last_login desc’);
$rows = $sel->fetchAll();
return $rows;
}
ね、簡単でしょ?
もっと詳しい内容が知りたくなったら、本家サイトの「Modelについて」、「データアクセスについて」を参照のこと。