ZendFrameworkで使うためにFilemakerクラスをスクラッチから作ってみる 井上建事
カスタムWEB公開 CDML やった XSLT 苦労したけどなんとか FX.PHP うう。。文字化けが。。。 APIforPHP 9しか無いんだよね(8.5なんです) Zendframeworkで? → 今回のテーマ rfm(ruby) わからないけど同じ事やってそう
Zendframework PHPの元が作ったWEBフレームワーク Model/View/Controller フロントコントローラー 1.72が最新 Model/View/Controller フロントコントローラー index.phpで受けて処理 /index/action/param1/hoge/param2/hagu googleAPI yahooAPI DoJoとの連携 etc
制作目標=簡単 必要な機能のみ 他のDBと同じコードで書ける XML公開を利用 繰り返し項目とかは使ってないのでパス 値一覧もこの際パス Oracle …基幹DB PostgresSQL …地域連携DB XML公開を利用 5以降のバ一ジョンで使える
制作目標=簡単 CDMLより簡単 APIforPHPよりも簡単 何せサーバーサイドで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 index.php 今は何もなし。予定ではconfigをクラス設定 <?php Class IndexController extends Zend-Controller-Action { function init() require_once ‘FilemakerPro9.php’; Zend_Loader::loadClass(’Staff.php’);
実装 コントローラーとモデル 定義済み関数 Recid/Modidはデータの配列に含む 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? ご静聴ありがとうございました