【コラム】
今回はFileMakerレイアウト情報の取得に特化したクラス「FileMaker_Layout」について取りあげよう。ひとつのレイアウトに複数のポータルや値一覧を設定し、それをWebアプリ化したいとなった場合はFileMaker_Layoutクラスの出番だ。
FileMaker_Layoutクラスに用意されているメソッドで取得できる情報は、おもに次のとおり。
これらの情報は、基本的に前回の最後に紹介したFileMakerクラスのgetLayout()などを使用して取得・生成したFileMaker_Layoutオブジェクトから取得する。前回のfmapi_getlayout.phpをベースに、FileMaker_Layoutクラスの機能を順に紹介していこう。1回目はこのうち比較的使い方が簡単な「データベースファイル名を取得」「レイアウト名」「レイアウトに配置されているフィールド情報」の3点をピックアップして紹介する。
まずはデータベースファイル名とレイアウト名取得方法からだ。これらを取得するにはそれぞれgetDatabase(), getName()をもちいる。
/**
* Returns the name of the database that this layout is in.
*
* @return string Database name.
*/
function getDatabase()
/**
* Returns the name of this layout.
*
* @return string Layout name.
*/
function getName()
この2つのメソッドに引数はない。結果は両者とも文字列型で返る。
レイアウトに配置しているフィールド情報は、getField(), getFields(), listFields()をもちいる。
/**
* Returns a FileMaker_Field object that describes the specified field.
*
* @param string $fieldName Name of field.
*
* @return FileMaker_Field|FileMaker_Error Field object, if successful.
* Otherwise, an Error object.
*/
function &getField($fieldName)
/**
* Returns an associative array with the names of all fields as
* keys and FileMaker_Field objects as the array values.
*
* @return array Array of {@link FileMaker_Field} objects.
*/
function &getFields()
/**
* Returns an array with the names of all fields in this layout.
*
* @return array List of field names as strings.
*/
function listFields()
getFields(), listFields()に引数はない。
似たような名前のメソッドだがそれぞれ用途が異なるので注意されたい。これらの用途をまとめると次のようになる。
フィールドのタイプや入力値の制限といったフィールド情報の詳細を追いかけたい場合はこのFileMaker_Layoutクラス同様、getField()やgetFields()を用いてFileMaker_Fieldオブジェクトを生成し、FileMaker_Fieldクラスを使用するのが便利だ。単純にフィールド名だけを取得したい場合はlistFields()を使おう。
FileMaker_Fieldオブジェクトを返す2オブジェクトを除き、getDatabase(), getName(), listFields()がどのような値を返すのか実際に確認する。
fmapi_layout.php
<?php
include_once('../FileMaker.php');
$data = new FileMaker('fmapi_test', 'http://localhost:80', 'admin', 'admin');
// レイアウトオブジェクトを取得
$layoutObj = $data->getLayout('fmapi_list');
// レイアウトオブジェクトエラー判定
if (FileMaker::isError($layoutObj))
{
// エラー処理..
echo 'FileMaker Error Code: ' . $layoutObj->getCode();
echo '<p>'. $layoutObj->getMessage() . '</p>';
}
else
{
// 正常処理
?>
<table border="1">
<tr>
<th>getDatabase()</th>
<td><pre><?php var_dump($layoutObj->getDatabase()); ?> </pre></td>
</tr>
<tr>
<th>getName()</th>
<td><pre><?php var_dump($layoutObj->getName()); ?> </pre></td>
</tr>
<tr>
<th>listFields()</th>
<td><pre><?php var_dump($layoutObj->listFields()); ?> </pre></td>
</tr>
</table>
<?php
}
?>
このスクリプトでは今回紹介したメソッドのうち3つの取得結果をテーブルで表示する。実際にWebブラウザで確認してみよう。
それぞれのオブジェクトがどのような役割を持っていて、どのような情報が格納されているかをあらかじめ把握しておけば、対応するクラスに用意されている機能を使って欲しい情報をどんどん取り出せる。FileMaker API for PHPで使用するfmresultsetは一度に取得する情報量がおおい分、FX.phpで使用するFMPXMLRESULTと比較するとパフォーマンスが落ちやすい。しかしすくないリクエスト数でさまざまな情報を取得・ループで自在に加工できるのは有利な点だ。これらをうまく活用し、自動化できるところは積極的に自動化していこう。
| FileMaker、米サンディエゴにて開発者向けカンファレンス開催 - 早期登録受付開始 [2009/11/20] |
| 【インタビュー】FileMaker 10最新動向、日本での取り組み - 米FileMaker社長 グピール氏 [2009/11/13] |
| 【レポート】ファイルメーカー、日本初の「FileMaker Conference 2009」開催 [2009/10/30] |
| ファイルメーカー、FileMaker Business Allianceメンバー向け割引購入プログラム [2009/6/4] |
| ファイルメーカー、参加無料イベント「FileMaker Road Show 2009」開催 [2009/6/4] |
| 【インタビュー】ファイルメーカー粟倉社長に聞く、DBアプリ「Bento for iPhone」の国内展開 [2009/6/3] |
| 『ファイルメーカー選手権』でMacBook ProやVAIOを手に入れよう [2009/6/3] |
| 【コラム】Mac Fan ソフトウェアレビュー 第58回 データベース作成ソフト「FileMaker Pro 10」 [2009/5/25] |
| FileMaker、iPhone/iPod touch版「Bento」が登場 - Bento 2.0と同期可能 [2009/5/5] |
| ファイルメーカー、FileMaker用テーマパックを期間限定で無料配布 [2009/4/17] |
| 【インタビュー】FileMaker Pro 10の魅力はいかに? - 米FileMaker社長 ドミニーク P.グピール氏に聞く [2009/2/24] |
| ファイルメーカーの新社長に粟倉豊氏が就任 [2009/2/2] |
| インタフェースを一新した「FileMaker Pro 10」が発売 [2009/1/6] |
| 花粉の運び屋“マルハナバチ”の国勢調査 [18:11 5/24] |
| 「Arid5a」は自己免疫疾患を引き起こすカギ分子の可能性大 - 阪大 [17:39 5/24] |
| 岡山大、中枢神経の「ランビエ絞輪」形成機構の解明に1歩前進 [17:35 5/24] |
| 細胞間接着を担うタンパク質「クローディン」に関する発見 - 阪大など [17:32 5/24] |
| パナソニック、LEDに匹敵する照明用高効率白色有機EL素子を開発 [17:29 5/24] |
|
中村静香「しなやかな筋肉美が見られた」とランジェリー姿の選手たちに興奮 [12:00 5/25] エンタメ |
|
私が隣にいるのに! どうして男の人は、ほかの女性を見るのか? [12:00 5/25] 恋愛・結婚 |
|
イラッとした女性の言動 - 「デートで残業を断る」「一人称が自分の名前」 [11:30 5/25] 恋愛・結婚 |
|
えりやそで口の部分洗い洗剤はどう使う?【住まいの毎日クイズ】 [11:00 5/25] 住まい・インテリア |
|
岐阜県で交通安全を祈っている狛犬が、すごいことになっている! [11:00 5/25] 旅行 |