データベースの情報を設定
データベースの情報をconfig/database.iniファイルに設定します。エディタでファイルを開き、[dev]の各項目に環境に応じた適切な値を入力して保存します。
[dev] DriverType=QMYSQL DatabaseName=blogdb HostName= Port= UserName=root Password=root ConnectOptions=
作ったテーブルからコードを自動生成
コマンドラインから、ジェネレータコマンド(tspawn)を実行し、ベースとなるコードを生成します。下記の例ではコントローラ、モデル、ビューを生成しています。第2引数には、テーブル名を指定します。
$ cd blogapp $ tspawn scaffold blog created app/controllers/blogcontroller.h created app/controllers/blogcontroller.cpp created app/controllers/controllers.pro created app/models/sqlobjects/blogobject.h created app/models/blog.h created app/models/blog.cpp created app/models/models.pro created app/views/blog/index.html :
tspawnのオプションによって、コントローラだけ、あるいはモデルだけ生成するように動作を変えられます。"tspawnhelp"コマンドでヘルプを参照してください。
もし使用するSQLドライバがQt SDKに組み込まれていない場合エラーが発生します。そのときはドライバを組み込んでください。
ソースコードをビルド
qmakeコマンドおよびmakeコマンドを実行すると、コントローラ、モデル、ビュー、ヘルパのすべてをコンパイルします。
$ qmake -spec linux-g++ (← Makefileをつくるために1度だけ実行してください) $ make
-specオプションについては、Windowsではwin32-g++を、Mac OS Xではmacx-g++を指定すればよいでしょう。Windowsの場合はmakeコマンドの代わりにmingw32-makeコマンドを使ってください。
ビルドが成功すると、4つの共有ライブラリ(controller, model, view, helper)が「lib」ディレクトリに作られます。
アプリケーションサーバを起動
アプリケーションのルートディレクトリで、アプリケーションサーバを起動します。サーバは、コマンドが実行されたディレクトリをアプリケーションルートディレクトリと見なして処理を行います。サーバを止めるときはCtrl+cを押します。サーバは後処理をして数秒後に止まります。
$ treefrog -e dev
Windowsでは、treefrogdコマンドを使います。
> treefrogd -e dev
Windowsでは、Webアプリケーションをデバッグモードでビルドした場合はtreefrogdコマンドを、リリースモードでビルドした場合はtreefrogコマンドを使ってください。リリースモードとデバッグモードのオブジェクトが混在すると、正常に動作しませんので注意してください。
ビルドモードは、プロジェクトファイル(pro)のCONFIGパラメータで設定します。デフォルトはデバッグモードです。
ファイヤーウォールが設定されている場合は、ポート(デフォルト:8800)を開けてください。ポートは設定ファイル(treefrog.ini)で変更可能です。
ブラウザでアクセス
ブラウザでhttp://localhost:8800/Blog/indexにアクセスしてみましょう。
最初は1件も登録がありません。
2件ほど登録してみたところの画面。すでに新規登録、参照、編集、削除を行うができます。日本語の表示も問題ありません。
他のフレームワークと同様に、TreeFrogにもリクエストされたURLから該当するコントローラのメソッド(アクション)を呼び出す仕組みが備わっています。
コントローラの中身
生成されたコントローラの中身を見てみましょう。
まずはヘッダファイル。おまじないコードがいくつかありますが、ここでは気にしないことにします。ヘッダファイルにはCRUDに相当するアクションが定義されています。
class T_CONTROLLER_EXPORT BlogController : public ApplicationController
{
Q_OBJECT
public:
BlogController() { }
BlogController(const BlogController &other);
public slots:
void index(); // 一覧表示
void show(const QString &pk); // 1件表示
void entry(); // 登録画面表示
void create(); // 新規登録
void edit(const QString &pk); // 編集画面表示
void save(const QString &pk); // 保存(更新)
void remove(const QString &pk); // 1件削除
};
T_DECLARE_CONTROLLER(BlogController, blogcontroller) // おまじない
CRUDとは、Webアプリケーションにおける主要な4つの機能のことで、「Create(生成)」「Read(読込)」「Update(更新)」「Delete(削除)」の頭文字をとって表します。


