FileMaker Webアプリを支えるライブラリ・フレームワーク
FileMakerをバックエンドにしたWebアプリを実装する場合、実にさまざまな選択肢がある。自分の好きな言語でFMPXMLRESULTまたはfmresultset文法のXMLをパースするライブラリを自作、既存のライブラリを使用するなど。既存のライブラリを使用する場合、iViking(Chris Hansen氏)のFX.phpやFileMaker公式のFileMaker API for PHPあたりがメジャーなところだろう。今回は、FileMaker Webアプリの作成を助けてくれるライブラリ・フレームワークを紹介しよう。
FX.php
- FX.php公式サイト: http://www.iviking.org/FX.php/
- メーリングリスト: http://www.iviking.org/pipermail/fx.php_list/
- 新居雅行氏による日本語解説: http://msyk.net/fmp/fx_ja/
iViking(Chris Hansen氏)が開発・公開しているPHPライブラリで、最新バージョンは2008年2月28日(米国時間)にリリースされたversion 4.5.1。The Artistic License/The PHP License 3.0のもとで公開されているオープンソースソフトウェア。FileMaker Pro 5/6のWebコンパニオン時代から携わっている老舗ライブラリだ。cURLを使用してFileMaker Web公開エンジンのURIにアクセス、FMPXMLRESULT文法のXMLをパースしてPHPの配列として取り扱う。
比較的初期のバージョンではマルチバイト文字の扱いに難があったが、新居氏作成のFX_charsetによって日本語環境でも問題なく使用することができるようになった。この成果はFX.php version 4.0でマージされ、現在はiVikingで配布されているFX.php本体のみでもマルチバイト環境で使用できる。同ライブラリを使用する場合は、あらかじめcURLとmbstringが有効になっている必要がある。
FileMaker ServerのWeb公開機能にはサロゲートペア文字を扱う場合、パースできない不正なXMLを出力する不具合がある。この問題についても、新居氏作成のパッチを当てることで対処が可能だ。
FileMaker API for PHP
- PHP Web Publishingについて: http://www.filemaker.com/support/technologies/php.html
- Top PHP Answers: http://help.filemaker.com/app/answers/detail/a_id/6436
FileMaker公式のPHPライブラリ。FileMaker Software Licenseに同意することで使用できるライブラリ。FileMaker Server 9と同時にリリースされたライブラリで、fmresultset文法のXMLをパース、オブジェクトや配列として取り扱う。Web上では配布されておらず、FileMaker Serverに同梱されている。
FileMaker Server/FileMaker Web公開エンジンと通信するデータがFX.phpより多く、操作も柔軟なことができる分、FX.phpより動作はやや遅い。Implementationと呼ばれるコードの一部が難読化されており、有事の際に原因が追求しにくいというデメリットがある。このライブラリもFX.php同様、あらかじめcURLとmbstringが有効になっている必要がある。
上記2点はPHPでFileMaker Webアプリを実装する上でもっとも著名なものだ。これらの使い方や動作・パフォーマンス比較については当コラムのバックナンバーを参照されたい。
FileMaker API for Ruby (Rfm)
- Rfm公式サイト: http://sixfriedrice.com/wp/products/rfm/
- RubyForge: http://rubyforge.org/projects/rfm
- 松尾篤氏による和訳: http://www.famlog.jp/rfm/
Six Fried Rice(Geoff Coffey氏)が開発・公開しているRubyライブラリで、最新バージョンは2007年7月10日(米国時間)にリリースされた1.0。The MIT Licenseのもとで公開されているオープンソースソフトウェア。Ruby on Railsの影響を強く受けており、可読性に優れた実装が可能。
動作速度より生産性を重視したライブラリ。FX.php同様、XMLを使用したWeb公開機能を使用して動作する(FMPXMLRESULT)。FileMakerのODBC対応状況・Web公開エンジンの都合上、残念ながらActiveRecordには対応しないとのこと。
PyFileMaker
- PyFileMaker公式サイト: http://code.google.com/p/pyfilemaker/
- Package Index: http://pypi.python.org/pypi/PyFileMaker/2.6
Klokan氏、Petr Pridal氏が開発・公開しているPythonライブラリで、最新バージョンは2008年5月28日(米国時間)にリリースされた2.6。The BSD Licenseのもとで公開されているオープンソースソフトウェア。
Python2.4以上、FileMaker Server Advanced 7,8、カスタムWeb公開を有効にしたFileMaker Server 9以降で動作する。古いバージョン(1.2)を使用すれば、Webコンパニオンを有効にしたFileMaker Pro 6環境下でも利用可能だ。FX.php同様、XMLを使用したWeb公開機能を使用して動作する(FMPXMLRESULT)。
FMCakeMix
- FMCakeMix公式サイト: http://www.beezwax.net/solutions/FMCakeMix
- Project Page: https://projects.beezwax.net/projects/show/cake-fm-driver
- GitHub: http://github.com/beezwax/FMCakeMix
Beezwax(Alex Gibbons氏)が開発・公開しているPHPライブラリで、最新バージョンは2010年6月17日(米国時間)にリリースされたもの。The MIT Licenseのもとで公開されているオープンソースソフトウェア。
著名PHPフレームワーク「CakePHP」のDBOドライバとして動作する。FileMaker Server/FileMaker Web公開エンジンと通信する際はFX.phpを使用。DBOドライバとして動作するため、編集・削除などレコードIDが要求される一部の動作を除いて、バックエンドのデータベースを意識しないコーディングが可能となる。過去に日本語環境下で利用する場合の注意点を「番外編: CakePHPでFileMakerを使う方法」としてまとめたので、あわせて参照されたい。