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
CakePHP入門 (2006/2/25)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusuke Ando
February 25, 2006
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CakePHP入門 (2006/2/25)
アーカイブです。
第9回PHP勉強会。
Yusuke Ando
February 25, 2006
More Decks by Yusuke Ando
See All by Yusuke Ando
CakePHP3でアプリ開発
yandod
1
430
Shimokita.Unity パーティクルでエフェクト
yandod
0
880
CakePHP3の明るい未来
yandod
1
310
Testing your app with Selenium on Travis CI
yandod
8
3.3k
Testing your app with Selenium on Travis CI
yandod
0
200
Inputで入力を扱う
yandod
0
740
Detonatorで爆発させる勉強会をした報告
yandod
0
2.5k
Mecanimでアニメーション - Shimokita.Unity
yandod
0
810
パリの街をUnityで駆ける
yandod
1
3.5k
Other Decks in Programming
See All in Programming
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
不幸な GC
chencmd
0
890
Oxlintはいいぞ(続)
yug1224
1
550
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
320
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
530
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
570
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
130
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
ALB ログから Trace を気合で繋げる技術
fohte
7
880
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
The Curious Case for Waylosing
cassininazir
1
500
HDC tutorial
michielstock
2
850
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
How to Talk to Developers About Accessibility
jct
2
540
For a Future-Friendly Web
brad_frost
183
10k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Optimizing for Happiness
mojombo
378
71k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Transcript
Copyright © YusukeAndo. 2006. All rights reserved. 1 CakePHP入門 PHPでRailsライクな高速開発
PHP勉強会 第9回発表資料 2006年2月25日 安藤祐介
Copyright © YusukeAndo. 2006. All rights reserved. 2 はじめに 巷で話題の“Ruby
On Rails” ! Rubyで実装されたMVCフレームワーク ! 同じ事を繰り返さない - Don’t Repeat Yourself ! 設定よりも規約 - Convention over Configuration ! ActiveRecordによりコードを書かずにDB機能 ! 「高速」開発。(プロトタイプ、改修、運用) →注目度が上昇中 10分で作るRailsアプリ for Windows などの試みが注目されたり・・・
Copyright © YusukeAndo. 2006. All rights reserved. 3 そして Ruby
On RailsのPHP版とも言えるのが・・・ (正確にはRailsライクなフレームワークの中の1つ) なのです
Copyright © YusukeAndo. 2006. All rights reserved. 4 CakePHPの特徴 !
フロントコントローラー、MVCモデル ! 設定不要、サブディレクトリのみで動作可能 ! アクティブレコード、組込みのCRUD ! PHP4、PHP5両対応 「あらゆるレベルのプログラマーにとって快適な環境を」 CakePHP development team
Copyright © YusukeAndo. 2006. All rights reserved. 5 おおまかな構造 アプリケーションのルート
フレームワークのライブラリ 設定ファイル コントローラー モデル ビュー(テンプレート) →以上の構造で丸ごと設置する為、共用型サーバでも容易。
Copyright © YusukeAndo. 2006. All rights reserved. 6 動作の手順 実際に動かしながら触ってみましょ
う!
Copyright © YusukeAndo. 2006. All rights reserved. 7 アーカイブの入手 !
cakephp.orgからアーカイブを入手。 ここです。
Copyright © YusukeAndo. 2006. All rights reserved. 8 セットアップ !
展開して出来たディレクトリを任意にリネーム ! Apacheから見える所にがっつりと設置 ! あとはindex.phpにアクセスすれば動作完了 ※htaccessによるoverride、rewriteが出来るようにしておく Rewriteが使えない場合はcore.php内の設定を修正
Copyright © YusukeAndo. 2006. All rights reserved. 9 画面イメージ データベース設定が無い警告
Copyright © YusukeAndo. 2006. All rights reserved. 10 データベース接続設定 !
データベースへの接続設定を行う ! app/config/database.php に設定を記入 ! ひな型をコピーすると簡単 var $default = array('driver' => 'mysql', 'connect' => 'mysql_pconnect', ‘host’ => ‘localhost’, ホスト名 ‘login’ => ‘user’, ユーザ名 ‘password’ => ‘password’, パスワード ‘database’ => ‘project_name’, DB名 'prefix' => '');
Copyright © YusukeAndo. 2006. All rights reserved. 11 画面イメージ データベース接続成功
Copyright © YusukeAndo. 2006. All rights reserved. 12 テーブル作成 !
データベースにアプリで利用するテーブルを作成 ! 一定のネーミングルールで作成(必須!) ネーミングルール ! テーブル名は複数形英語 (books toys musics …) ! プライマリキーは“id”とする ! 外部キーは“genre_id” “book_id” のように単数_id とする ! “created” “modified”というDATETIMEを作るとベター
Copyright © YusukeAndo. 2006. All rights reserved. 13 画面イメージ コントローラーが無い
作るべきコード
Copyright © YusukeAndo. 2006. All rights reserved. 14 コントローラー作成 /books
にアクセスするとコントローラーが見つからないエラーが・・・ ! エラー画面で指示されたとおりにクラスを作成 app/controllers/%name%_controller.php <?php class BooksController extends AppController { } ?>
Copyright © YusukeAndo. 2006. All rights reserved. 15 モデル作成 今度はモデルが見つからないらしい・・・
! AppModelの派生クラスを作成 app/models/%name%.php <?php class book extends AppModel { } ?>
Copyright © YusukeAndo. 2006. All rights reserved. 16 画面イメージ メソッドが無い
Copyright © YusukeAndo. 2006. All rights reserved. 17 scaffoldの利用 メソッドが無いといわれたが・・・?
! 現段階ではロジックを実装するindex() メソッド等が無い ! Railsにもあるアプリの「骨組み」を提供する機能 ! コントローラーをscaffold指定すれば「骨組み」が利用可能 <?php class BooksController extends AppController { var $scaffold; } ?>
Copyright © YusukeAndo. 2006. All rights reserved. 18 動作確認 !
組込みのCRUDが利用可能です ! Create Read Update Delete の機能 ! マスタのメンテナンス程度であれば十分 ! カラム追加などにも自動で追随する
Copyright © YusukeAndo. 2006. All rights reserved. 19 入力画面 カラムの型に応じた
入力欄を生成
Copyright © YusukeAndo. 2006. All rights reserved. 20 単票形式での表示
Copyright © YusukeAndo. 2006. All rights reserved. 21 カスタマイズ !
組込みのCRUDも便利は便利・・・ ! でもユーザ向けの表示は細かい指定が必要 ! コントローラーを修正し、テンプレートを作ればOK ! scaffoldとの共存もできる
Copyright © YusukeAndo. 2006. All rights reserved. 22 コントローラーの修正 !
app/controllers/%name%_controller.phpにindexメソッド を追加する <?php class BooksController extends AppController { var $scaffold; function index(){ $this->set('data',$this->book->findAll()); } } ?>
Copyright © YusukeAndo. 2006. All rights reserved. 23 テンプレートの作成 !
app/views/%name%/index.thtml を作成 ! Controllerでsetした名前でハッシュがある <table> <tr><th>書名</th><th>登録日</th></tr> <?php foreach ($data as $row): ?> <tr> <td><?php echo $row['book']['title'];?></td> <td><?php echo $row['book']['created'];?></td> </tr> <?php endforeach; ?> </table>
Copyright © YusukeAndo. 2006. All rights reserved. 24 カスタマイズの確認 !
カスタマイズした表示ができました ! scaffoldの機能もURLを叩けば動く(リンクすれば良い) ! リレーションも使えます
Copyright © YusukeAndo. 2006. All rights reserved. 25 画面イメージ モデルに2行程度の修正
で従属データも取得
Copyright © YusukeAndo. 2006. All rights reserved. 26 まとめ !
メリット 簡単セットアップ、スクリプト的な記述 validate、セッション管理も組み込まれている ! デメリット 情報が少ない、マルチバイト関連のノウハウ 習得コストは無いとは言えない
Copyright © YusukeAndo. 2006. All rights reserved. 27 Let‘s Bake! CakePHPなかなか面白そうなフレームワークです。
小回りが利きそうな開発でなら十分に威力を発揮 するのではないでしょうか? 皆さんも今日からBakerです!
Copyright © YusukeAndo. 2006. All rights reserved. 28 謝辞 参考サイト
! 10分で作るCakePHPアプリ for Windows http://p4life.jp/cake/
Copyright © YusukeAndo. 2006. All rights reserved. 29 質疑応答 ご静聴ありがとうございました。