fmcakemix、cakephp 2.0対応への道
DESCRIPTION
2011/12/10 FileMaker Pro 東京ユーザーズミーティング発表資料TRANSCRIPT
![Page 1: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/1.jpg)
FMCakeMix CakePHP 2.0対応への道
2011/12/10FM-Tokyo発表資料
松尾 篤(株式会社エミック)
![Page 2: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/2.jpg)
• FMCakeMixとは
• CakePHP 2.0への対応過程
• フレームワークを利用した開発の利点
Agenda
![Page 3: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/3.jpg)
FMCakeMixとは
![Page 4: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/4.jpg)
• PHPで記述されたオープンソースのWebアプリケーションフレームワーク
• MITライセンス
• http://cakephp.org/
CakePHP
![Page 5: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/5.jpg)
• 2005年に公開された"Cake"がきっかけでプロジェクトが始まる
• 2006年5月にCakePHP 1.0が公開
• バージョン1.1、1.2、1.3と経て、CakePHP 2.0が2011年10月に公開
CakePHP
![Page 6: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/6.jpg)
• CakePHP用のFileMakerデータソースドライバー
• FileMaker ServerのカスタムWeb公開でCakePHPが利用可能に
FMCakeMix
![Page 7: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/7.jpg)
• Alex Gibbons氏とBeezwax Datatools,
Inc.が開発
• 2009年よりGitHubで公開
FMCakeMix
![Page 8: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/8.jpg)
• 現状ではCakePHP 1.3に対応
• そのままではCakePHP 2.0で使用不可
• せっかくオープンソースなのだから2.0に対応させよう!
FMCakeMix
![Page 9: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/9.jpg)
CakePHP 2.0への
対応過程
![Page 10: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/10.jpg)
• Gitのインストール
• OS X LionではMac App Store経由でXcode(無料)をインストール
• GitHubにアカウントを作成
まずはじめに
![Page 11: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/11.jpg)
• "Git is an extremely fast, efficient, distributed version control system ideal for the collaborative development of software." (github.com)
Git
![Page 12: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/12.jpg)
• "GitHub is the best way to collaborate with others. Fork, send pull requests and manage all your public and private git repositories." (github.com)
• "Social Coding"
GitHub
![Page 13: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/13.jpg)
• リポジトリを手元にコピー(git
clone)
• ソースファイルの編集や追加
• ローカルのリポジトリに変更を反映(git add、git commit)
Gitの使い方を覚える
![Page 14: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/14.jpg)
• GitX
• http://gitx.frim.nl/
• GitHub for Mac
• http://mac.github.com/
Mac用関連ソフトウェア
![Page 15: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/15.jpg)
Demo
![Page 16: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/16.jpg)
• CakePHP 2.0 移行ガイドを確認
• http://book2.cakephp.org/ja/
appendices/2-0-migration-guide.html
事前に変更点を確認
![Page 17: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/17.jpg)
• CakePHP 2.0.2を利用できる状態に
• 2.0.4ではなぜかテストに失敗……
• テストも実行できる状態にしておく
準備
![Page 18: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/18.jpg)
• app/Model/Datasource/Database/
dbo_fmcakemix.php
• app/Test/Case/Model/Datasource/
Database/dbo_filemaker_fx.test.php
• app/Test/Case/Model/Datasource/
Database/models.php
テストの準備
![Page 19: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/19.jpg)
• FileMaker ServerでDriverUnitTesting.fp7
をホスト
• app/Config/database.phpの$test変数を
調整し設定変更(上記DBに接続)
テストの準備
![Page 20: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/20.jpg)
• dbo_filemaker_fx.test.phpを認識しない
• CakePHP 2.0では命名規則が変更
• dbo_filemaker_fx.test.phpのファイル名
をFilemakerTest.phpに変更
いざテスト
![Page 21: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/21.jpg)
• 他のドライバーを参考にして書き換え
• lib/Cake/Model/Datasource/
Database/Mysql.php
• lib/Cake/Test/Model/Datasource/
Database/MysqlTest.php
まだテストが動かない
![Page 22: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/22.jpg)
• App::import()からApp::uses()の書式に
変更
• getMicrotime()はmicrotime(true)に変更
エラーを適宜修正
![Page 23: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/23.jpg)
• DataSourceクラスではなくDboSource
クラスを継承
• $this->_queriesLog[]に代入する変数の
配列に「'affected' => ''」を追加
エラーを適宜修正
![Page 24: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/24.jpg)
• PHPUnitへの変更に伴う更新
• save()の戻り値に関するテストケース
を確認・調整
• models.phpの内容を統合
テストケースを更新
![Page 25: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/25.jpg)
• PHP用のテスティングフレームワーク
• CakePHP 2.0でSimpleTestからPHPUnit
3.5を利用するように仕様変更
• CakePHP 2.0.3でPHPUnit 3.6に対応
PHPUnit
![Page 26: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/26.jpg)
• CakePHP 1.3用のFMCakeMixは主キー
とレコードID(-recid)が同じ値とい
う前提で記述されている箇所がある
• 上記仕様を調整(まだ不完全かも)
FMCakeMixの仕様調整
![Page 27: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/27.jpg)
• ソースコードを更新
• テストケースの更新と追加
• テストを実行して動作確認
動作確認
![Page 28: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/28.jpg)
• GitHub上でリポジトリをフォーク
• ローカルの変更内容をフォークしたリポジトリにプッシュ
• プルリクエストを送信
変更点を開発元に送信
![Page 29: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/29.jpg)
• 将来リリースされるバージョンのCakePHPをターゲットに開発進行中
• CakePHP 2.0対応版はメインブランチにまだマージされていない
FMCakeMixの現状
![Page 30: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/30.jpg)
フレームワークを
利用した開発の利点
![Page 31: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/31.jpg)
• 短いコードで多くの機能を実装可能
• テストされている高品質のライブラリが揃っている
• 情報が多い
フレームワークの利点
![Page 32: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/32.jpg)
まとめ
![Page 33: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/33.jpg)
• FMCakeMixを使えばCakePHPのデータソースにFileMakerも使える
• テストがあると動作確認時に便利
• GitHubにはFileMaker関連ソフトウェアやプロジェクトが数多く存在
まとめ
![Page 34: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/34.jpg)
Q&A
![Page 35: FMCakeMix、CakePHP 2.0対応への道](https://reader036.vdocuments.site/reader036/viewer/2022082309/555a8fefd8b42a3e268b45a0/html5/thumbnails/35.jpg)
• https://github.com/beezwax/FMCakeMix
• https://github.com/matsuo/FMCakeMix
• http://news.mynavi.jp/column/fmxphp/
関連URL