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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yusuke Ando
February 25, 2006
Programming
110
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
300
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
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
250
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
150
VibeCodingからAgenticWorkflowへ
starfish719
0
660
今さら聞けない .NET CLI
htkym
0
200
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.8k
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.8k
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.8k
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
230
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
280
Go 1.27 における memory allocation の高速化
andpad
0
260
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
120
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Prompt Engineering for Job Search
mfonobong
0
410
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
The Spectacular Lies of Maps
axbom
PRO
1
930
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
390
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 質疑応答 ご静聴ありがとうございました。