【コラム】
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] |
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
激シブ!もう一度ゴルフ Ⅱ の魅力を味わってみませんか?【大阪オートメッセ2012】 [03:06 2/11] キャリア |
|
『ヘタリア』キャラソン、新シリーズが配信決定! [03:05 2/11] キャリア |
|
全国の温泉を擬人化したドラマCD、第1弾「草津」は櫻井孝宏さん! [03:05 2/11] キャリア |
|
柿原徹也さんの2ndミニアルバム「CONTINUOUS」2月15日発売 [03:04 2/11] キャリア |
|
アニメ「Fate/Zero」陣営ごとのお守りが発売決定 [03:03 2/11] キャリア |