ZendFrameworkで独自のFilemaker Classを作ってみる
Download
Report
Transcript ZendFrameworkで独自のFilemaker Classを作ってみる
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?
ご静聴ありがとうございました