用いられている機能の違い
FileMaker のデータを PHP を用いて操作する方法には、「FileMaker API for PHP」を用いる方法と、「FX.php」を用いる方法が主にあります。表面上はどちらも PHP で扱いますが、以下のような違いがあります。
FileMaker API for PHP
「FileMaker API for PHP」は、「カスタム Web 公開 with PHP」を用いた機能です。
FX.php
「FX.php」は、「カスタム Web 公開 with XML」を用いた機能です。
利用する上ではベースとなっている機能は意識する必要はない
上記のように内部的に利用する機能は異なりますが、どちらも PHP というラップにくるまれて利用できるので、利用する側でその内部機能の違いを意識する必要はありません。
実際の機能や性能の違い
これらを PHP 上で実際に扱う上での機能(性能)の違いはどうでしょうか。
###「マイナビニュース」には以下のように記述があります。
FileMaker API for PHPのメリット
- オブジェクト指向でコードが書ける
- 機能が豊富
FileMaker API for PHPのデメリット
- 機能が豊富なかわりに、一部機能のパフォーマンスがFX.phpに劣る。例えばポータルが配置されたレイアウトにアクセスした場合、FX.phpと比較するとレスポンスが数秒遅くなり、また一度にあつかうレコードが多ければ多いほどこの差がでる
- 一部のコードが難読化されている。ライブラリ全体を通して何が行われているかの見通しがFX.phpと比較すると難しい
FX.phpのメリット
- ライブラリ自体が軽量
- 使い方がFileMaker API for PHPと比較しシンプル。またパフォーマンスもよい
FX.phpのデメリット
- 機能がFileMaker API for PHPと比較するとやや少ない。動的な複合OR検索を実現する場合は対応するクラスを自前で用意する必要がある
実際に比較検証してみたページ その1
こちらのページでは、FX.php と FileMaker API for PHP と 生XML と ODBC の比較をしています。
結果はページにあるとおりですが、FX.php と FileMaker API for PHP は(相対的に)よくありません。「マイナビニュース」にある、FX.php が「パフォーマンスがよい」というのもあまり大きな差には見えません。
実際に比較検証してみたページ その2
こちらのページでも FileMaker API for PHP と FX.php の比較の結果(MLの引用)を紹介しています。それによれば、FX.php の方が 8倍 速いとのことです。
現場では
もっとも、レスポンスにどのくらいの時間をかかるかをもってして性能の良し悪しを語るのは場合によってはあまり意味が無いことがあります。それよりも、先にプロダクトとしてリリースをすることが重要な場面もあるでしょう。
学習コストがかかることは前提の上で、ケースバイケースでいつでも使い分けられるような準備をしておくことが大切なのかなと思います。