ZendFrameworkで独自のFilemaker Classを作ってみる

Report
ZendFrameworkで使う
ためにFilemakerクラスを
スクラッチから作ってみる
井上建事
カスタムWEB公開




CDML
XSLT
FX.PHP
APIforPHP


やった
苦労したけどなんとか
うう。。文字化けが。。。
9しか無いんだよね(8.5なんです)
Zendframeworkで? → 今回のテーマ
rfm(ruby)
わからないけど同じ事やってそう
Zendframework

PHPの元が作ったWEBフレームワーク
昨年l.0になった
 1.72が最新



Model/View/Controller
フロントコントローラー

index.phpで受けて処理


/index/action/param1/hoge/param2/hagu
googleAPI yahooAPI DoJoとの連携 etc
制作目標=簡単

必要な機能のみ
繰り返し項目とかは使ってないのでパス
 値一覧もこの際パス


他のDBと同じコードで書ける
Oracle …基幹DB
 PostgresSQL …地域連携DB


XML公開を利用

5以降のバ一ジョンで使える
制作目標=簡単

CDMLより簡単


何せサーバーサイドでPHPが使える
表示のときの設定がちょっと。。。


テンプレートエンジンでも作らないと無理かも
APIforPHPよりも簡単




YYYY/MM/DD実装済
MVCでコードが書ける
カプセル化を一層進める
URLエンコード済み
使用方法

ZFの(ディレクトリー)構造
Application
 Controllers プログラムの中心・コントロール
 config.ini 制御ファイル
 Models
データベースを記述
 Views
WEB表示部分の記述
 Library
ここにFilemakerクラスを置く
 Index.php
入り口

宣言

Model

config.ini
あくまでも予定
<?php
Class Staff extends FilmakerPro9
{
protected _table='staff';
protected _layout='レイアウト1';
}
[FM6]
fmdb.hostname = hostname.domain
fmdb.port = 391
[FM9]
fmdb.hostname = hostrname.domain
fmdb.port = 80
定義

Application/Controllers
<?php
Class IndexController extends Zend-Controller-Action
{
function init()
{
require_once ‘FilemakerPro9.php’;
Zend_Loader::loadClass(’Staff.php’);

index.php

今は何もなし。予定ではconfigをクラス設定
実装


コントローラーとモデル
定義済み関数
fetchAll($where)
 update($recid, $record)
 insert($record)
 delete($recid)
 duplicate($recid)
 error()
 count()


Recid/Modidはデータの配列に含む
クラスの実装

とにかくコードを読んでみて
fmp5で187行
 fmp7で289行


ヒント
Zend_HTTP_Clientでク工リーを処理する
 XMLReaderクラスで簡易に処理
 日付処理は年が前になるようにするだけ
 レイアウトのフィールドは全て連想配列に入る
 ポータルは一段下の連想配列に格納

Any questions?
ご静聴ありがとうございました

similar documents