まえおき
1.開発環境の整備
2.EthnaのMVC
2-1.MVCって
2-2.Smartyを使うということ
2-3.データベースとのやりとり
3.
4.
5.
6.
2.EthnaのMVC
2-1.MVCって
MVCって、Modelと呼ばれるデータベースインタフェース、Viewと呼ばれる表示、Controllと呼ばれる処理というふうなものですが、Ethnaの場合、ほかのフレームワークと違い、VCはわかりやすいのですが、Mがはっきりしていないんですね。まあ、Mは特に設定しなくてもデータベースにアクセスすることはできるので、いらないっていえばそうかも。
2-2.Smartyを使うということ
SmartyをEclipseで使う場合、拡張子TPLをEclipseに設定しておきましょう。
一般→エディター→ファイルの関連付け
ですね。ファイル・タイプで「*.tpl」を追加し、その追加した「*.tpl」に「関連付けられたエディター」でエディターを追加するってことです。そうしないとEclipseエディターに表示されません。
Smartyを使うんで、Viewの方法は通常のSmartyと同様・・・?。
Ethnaは、データ渡し($_GETとか$_POSTとか)のために、自由なPHPを使うわりに変数の属性を決めなければなりません。セキュリティのためだそうです。
で、生成されたプロジェクトでとりあえず重要なのは、
app/action/Index.php
app/view/Index.php
template/ja_JP/index.tpl
の三つということになります。
app/action/Index.phpでは・・・
頭のところにある$formの設定で、データ渡しに使う変数の名前と属性を決めます。
そして、perform部で、VIEWに表示するデータを渡す処理をします。たとえば、
$this->af->setApp('title','タイトル');
というように。Smartyでいうところのassignというところです。
afとは何かと言うと、action_formatの略だそうで。
titleという変数にsetAppされた定数「タイトル」(もちろん変数でもかまわない)は、
app/view/Index.phpを通って・・・
というのは、ここでも$this->af->setApp('title','タイトル');できるので。
template/ja_JP/index.tplの
{$app.title}に表示される・・・という流れになるようです。
2-3.データベースとのやりとり
データベースのためにModelをいじる必要は特にないとはいえ、接続のための設定は避けて通れません。
その場所が、etc/xxxxxx-ini.phpの始めの方、コメントされているdsn設定です。
コメントを外し、こんな感じに設定します。
'dsn' => 'mysql://ユーザ:パスワード@ホスト名/データベース名'
このデータベースに作ったテーブルにアクセスするには、
|