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
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
290
Testing your app with Selenium on Travis CI
yandod
8
3.3k
Testing your app with Selenium on Travis CI
yandod
0
190
Inputで入力を扱う
yandod
0
730
Detonatorで爆発させる勉強会をした報告
yandod
0
2.5k
Mecanimでアニメーション - Shimokita.Unity
yandod
0
800
パリの街をUnityで駆ける
yandod
1
3.5k
Other Decks in Programming
See All in Programming
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
500
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
950
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.1k
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
420
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
390
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
2.6k
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
220
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
4.4k
関数型プログラミングのメリットって何だろう?
wanko_it
0
180
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
190
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
130
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.1k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Site-Speed That Sticks
csswizardry
13
1.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
The Pragmatic Product Professional
lauravandoore
37
7.4k
A better future with KSS
kneath
240
18k
Odyssey Design
rkendrick25
PRO
2
730
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Deep Space Network (abreviated)
tonyrice
0
230
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.4k
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 質疑応答 ご静聴ありがとうございました。