Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FuelPHP - 既存DBからのScaffold
Search
Mamoru Otsuka
September 21, 2012
Programming
2.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FuelPHP - 既存DBからのScaffold
FuelPHP 勉強会 東京 vol.2用資料
Mamoru Otsuka
September 21, 2012
Other Decks in Programming
See All in Programming
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.5k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.5k
さぁV100、メモリをお食べ・・・
nilpe
0
130
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.7k
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
17
6.2k
Lessons from Spec-Driven Development
simas
PRO
0
150
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
630
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
260
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
CSC307 Lecture 17
javiergs
PRO
0
320
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
400
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
The Curious Case for Waylosing
cassininazir
1
380
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
160
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
Mobile First: as difficult as doing things right
swwweet
225
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Code Review Best Practice
trishagee
74
20k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
Test your architecture with Archunit
thirion
1
2.3k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Transcript
FuelPHP 勉強会 東京 vol.2 2012-09-23 http://atnd.org/events/31017 - 既存DBからのScaffold - Mamoru
Otsuka(@madmamor) http://madroom-project.blogspot.jp/
通常の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を別途用意する開発スタイルにフィットしない。
例えば... 1. ER図作成ツールでER図を作成。 2. "1"からDDLを自動作成。DDL実行、テーブル作成。 3. oilコマンドでScaffold作成。 この時、作成済のテーブル定義を、再度入力する必要有り。
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 を、それぞれコールしている。
既存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
使い方 1/2 前提条件 config/db.phpでDB設定が正しく行われている事。 機能1: 指定テーブルに対するScaffold作成 php oil r scafdb:scaf
<table_name> 機能2: 全テーブルに対するScaffold作成 php oil r scafdb:scaf_all いずれも、-aのオプションを付与する事で、admin扱いとなる。
使い方 2/2 機能3: 指定テーブルに対するORMモデル作成 php oil r scafdb:model <table_name> 機能4:
全テーブルに対するORMモデル作成 php oil r scafdb:model_all HELP php oil r scafdb php oil r scafdb:help
使い方 補足 確認済の利用可能オプション -f 既存ファイルのoverride警告発生時に付与。 --mysql-timestamp DATETIME型のcreated_at/updated_at使用時に付与。 --no-timestamp created_at/updated_at未使用時に付与。 注意事項
ドライバがPDOの場合、エラーが発生する場合有り。 APPPATH/migrations/に作成されるファイルは、不要。
日頃の活動など。 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
ご清聴ありがとうございました。