【コラム】
FileMaker Webアプリを実装するにあたり、FX.php, FileMaker API for PHPの使い方やパフォーマンス比較を紹介してきた。今回より、FMCakeMixの使ったFileMaker Webアプリの開発やソースコードリーディングを取りあげていこう。まずは環境構築~チュートリアル編から。
FMCakeMixのUser Guide.pdfを参考に、CakePHP x FileMakerでWebアプリの作成方法を紹介する。紹介するのは、CakePHPのPaginationという機能を使った一覧画面だ。今回はファイルのデプロイ、データベースの準備、データベース接続設定、モデルの定義までを紹介する。
まずは必要なファイルをすべてダウンロードし、特定のディレクトリに展開する。動作に必要なライブラリ、PHPファイルは次のとおり。
まずはこれらのファイルをWebサーバに展開する。ファイルのダウンロード先や展開の手順については「番外編: CakePHPでFileMakerを使う方法」を参照されたい。
ファイルの展開が完了したら、続いてデータベースファイルを公開する。FX.phpのパッケージを解凍して生成されるDatabases/Book_list.fp7を、FileMaker Serverのデータベースフォルダに配置する。配置後、FileMaker Server Admin Consoleを使ってファイル公開を実施。
CakePHPの規約に従うよう、Book_Listを公開後、FileMakerファイルを開いてテーブルに「id」フィールドを追加しておく。Book_ListとDetail_Viewの両レイアウトに「id」フィールドを配置し、全置換を使ってレコードID(シリアル値)を入力する。
必要なPHP・データベースファイルの展開が完了した。それではここから、FMCakeMixのUser Guide.pdfを参考に、実際に一覧画面を作成してみよう。
User Guide.pdf P.4 - Define Your Database Connectionより。データベースに接続するための設定を、app/config/database.phpに記述する。設定項目は次のとおり。
データベースコンフィグ記述例
var $default = array
(
'driver' => 'fmcakemix',
'persistent' => false,
'dataSourceType' => 'FMPro7',
'scheme' => 'http',
'port' => 80,
'host' => '127.0.0.1',
'login' => 'admin',
'password' => '',
'database' => 'Book_List',
'prefix' => '',
);
User Guide.pdf P.4~5 - Define Your Modelより。データベースのモデルを定義する。CakePHPのモデルでサポートするリレーションタイプは次の4種類。
FMCakeMixはこのうち"hasMany"と"belongTo"の2種類に対応している。今回使用するサンプルのBook_Listは1テーブルなので、とくにリレーションの設定はおこなわない。
このほかの設定項目については次のとおり。
モデル記述例
class Book extends AppModel
{
var $name = 'Book';
var $useDbConfig = 'default';
// FMCakeMix specific attributes
var $defualtLayout = 'Book_List';
var $fmDatabaseName = 'Book_List';
}
CakePHPをはじめて触る方はマニュアルを熟読しておこう。CakePHPは設定より規約(convention over configuration)という考え方をもとに作成されている。既存のFileMakerデータベースをFMCakeMixでWeb化する前に、CakePHPの基本原則に目を通しておきたいところだ。
| FileMaker ProのiPhone/iPadアプリ「FileMaker Go」登場 [2010/7/21] |
| ファイルメーカー、「FileMaker カンファレンス 2010」を10月に開催 [2010/7/2] |
| ファイルメーカー、FileMakerセミナーイベントを6月に5都市で開催 [2010/4/20] |
| 「FileMaker Pro 11」発表 - グラフ作成機能やクィック検索を搭載 [2010/3/10] |
| セメント鉱物の一種が高温用圧電センサ材料に - 東工大などが発見 [18:13 6/19] |
| 九大、植物の気孔開口に必要なK+チャネルの働きに必要な転写因子を発見 [17:59 6/19] |
| NICTなど、酸化ガリウムを用いたMOSトランジスタを開発 [16:57 6/19] |
| NIBBなど、分裂時の植物細胞内の仕切りができる様子を高解像度で撮影 [16:23 6/19] |
| 筑波大など、眠気は起きている間の経験で変動することなどを発見 [15:57 6/19] |
|
カメラの顔認識を阻害するプライバシーバイザー [00:00 6/20] エンタープライズ |
|
「GANTZ」連載13年でついに完結、戦いの結末を目撃せよ [00:00 6/20] ホビー |
|
サラ・イイネス「大阪豆ゴハン」がDモーニングで復刻連載 [00:00 6/20] ホビー |
|
[GANTZ]13年にわたる壮大なストーリーに終止符 意味深メッセージも [00:00 6/20] ホビー |
|
イシデ電「私という猫~呼び声~」、刊行記念で特典も [23:38 6/19] ホビー |