Slide 1

Slide 1 text

FuelPHP 勉強会 東京 vol.2 2012-09-23 http://atnd.org/events/31017 - 既存DBからのScaffold - Mamoru Otsuka(@madmamor) http://madroom-project.blogspot.jp/

Slide 2

Slide 2 text

通常のScaffold作成 コマンド実行時にカラム名や型を指定する。 例 php oil g scaffold monkey name:string description:text http://docs.fuelphp.com/packages/oil/generate.html#scaffolding http://press.nekoget.com/fuelphp_doc/packages/oil/generate.html#scaffolding 利点 MVCによるシンプルなCRUD機能を瞬時に作成出来る。 欠点 DDLを別途用意する開発スタイルにフィットしない。

Slide 3

Slide 3 text

例えば... 1. ER図作成ツールでER図を作成。 2. "1"からDDLを自動作成。DDL実行、テーブル作成。 3. oilコマンドでScaffold作成。 この時、作成済のテーブル定義を、再度入力する必要有り。

Slide 4

Slide 4 text

Taskの作成により解決を図る 1. 既存データベースに接続、テーブル情報を取得。 2. "1"のテーブル情報を、php oil g scaffold ... でコールされる FuelPHPのメソッドに渡す。 参考 php oil g scaffold ... は Oil\Generate_Scaffold::forge php oil g admin ... は Oil\Generate_Admin::forge php oil g model ... は Oil\Generate::model を、それぞれコールしている。

Slide 5

Slide 5 text

既存DBからScaffoldを作成するTask 概要 名称: Scafdb (APPPATH/tasks/scafdb.php) ライセンス: WTFPL FuelPHP 1.3で動作確認済。 ソース(Github) https://github.com/mp-php/fuel-myapp/blob/master/tasks/scafdb.php Taskに関するドキュメント http://docs.fuelphp.com/general/tasks.html http://press.nekoget.com/fuelphp_doc/general/tasks.html

Slide 6

Slide 6 text

使い方 1/2 前提条件 config/db.phpでDB設定が正しく行われている事。 機能1: 指定テーブルに対するScaffold作成 php oil r scafdb:scaf 機能2: 全テーブルに対するScaffold作成 php oil r scafdb:scaf_all いずれも、-aのオプションを付与する事で、admin扱いとなる。

Slide 7

Slide 7 text

使い方 2/2 機能3: 指定テーブルに対するORMモデル作成 php oil r scafdb:model 機能4: 全テーブルに対するORMモデル作成 php oil r scafdb:model_all HELP php oil r scafdb php oil r scafdb:help

Slide 8

Slide 8 text

使い方 補足 確認済の利用可能オプション -f 既存ファイルのoverride警告発生時に付与。 --mysql-timestamp DATETIME型のcreated_at/updated_at使用時に付与。 --no-timestamp created_at/updated_at未使用時に付与。 注意事項 ドライバがPDOの場合、エラーが発生する場合有り。 APPPATH/migrations/に作成されるファイルは、不要。

Slide 9

Slide 9 text

日頃の活動など。 Twitter https://twitter.com/madmamor Blog http://madroom-project.blogspot.jp/ Android Apps https://play.google.com/store/apps/developer?id=madroom+project Band http://tamacens.rash.jp/ https://www.facebook.com/tamacens

Slide 10

Slide 10 text

ご清聴ありがとうございました。