前回の記事からかなり日が開いたけど、その続き。
前回の記事はコチラから。
今回は、MVCモデルの残りである「Model(モデル)」と、Curry独特のモデル「Service(サービス)」について紹介。

参考:

本家様サイト — マニュアル:Modelについて
本家様サイト — マニュアル:Serviceについて

Modelについて

通常、MVCモデルにおけるModelはメインロジックを記載するものだが、curryにおいてはテーブルと1:1で結びついたものとして利用されている。
ここらへんは本家サイトの「Modelについて」にも詳しく書いてある。
Modelを利用することで、データベーステーブルのアクセスや基本的な処理(初期化など)をパッケージ化することができる、という寸法である。

Serviceについて

Modelがテーブルと結びついているもの、となると、本来のMVCモデルのMのロジック記述というのがどこにいくの?ということになるので、currではロジックの記述はServiceに行うよう推奨している。
ログイン処理はトランザクション処理などのメインロジックは、Serviceに書くといい。

データベースの設定について

Modelを利用するにあたり、データベースの設定が必要となる。
データベースの設定は、下記2ファイルでそれぞれ設定の必要がある。

1)configs/database.ini
ホスト名やユーザ名、パスワードを保存したファイル。内容は以下のとおり。

[product]
;mysql or pgsql or sqlite
type = mysql

;database server ip address
host = localhost

;database name
dbname =

;database user
user =

;database password
password =

;port = 3306
;charset = utf8

上のhost / dbname / user / password にそれぞれホスト名やDBスキーマ名などを設定するだけでOK。
また、database.iniはそれぞれの環境ごとに異なる内容を1つのファイルで管理できる。
上記例だと[product]の部分で、それぞれの環境に合わせて値を保存しわけることが可能となっている。

2).htaccess
当該サーバーがどの環境であるかを選択できる。
当該ファイルの先頭行に下記の記述がある。

SetEnv APP_ENV product

こちらのproductをそれぞれのサーバーごとに変更することで、それぞれの環境の切り替えが可能という寸法である。
今回はproductとしているが、これをdevelopとすることで、developの設定を読み込んでくれるようになる。
この切り替えは他の部分でも利用できるので、積極的に利用していきたいところ。

とりあえず今回はここまで。
具体的な実装方法については次の記事で紹介する。