Your SlideShare is downloading. ×
Cakephp
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cakephp

2,247
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,247
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CakePHP入門 PHPでRailsライクな高速開発 PHP勉強会 第9回発表資料 2006年2月25日 安藤祐介 Copyright © YusukeAndo. 2006. All rights reserved. 1
  • 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. 2
  • 3. そして Ruby On RailsのPHP版とも言えるのが・・・ なのです (正確にはRailsライクなフレームワークの中の1つ) Copyright © YusukeAndo. 2006. All rights reserved. 3
  • 4. CakePHPの特徴 フロントコントローラー、MVCモデル 設定不要、サブディレクトリのみで動作可能 アクティブレコード、組込みのCRUD PHP4、PHP5両対応 「あらゆるレベルのプログラマーにとって快適な環境を」 CakePHP development team Copyright © YusukeAndo. 2006. All rights reserved. 4
  • 5. おおまかな構造 アプリケーションのルート 設定ファイル コントローラー モデル ビュー(テンプレート) フレームワークのライブラリ →以上の構造で丸ごと設置する為、共用型サーバでも容易。 Copyright © YusukeAndo. 2006. All rights reserved. 5
  • 6. 動作の手順 実際に動かしながら触ってみましょう! Copyright © YusukeAndo. 2006. All rights reserved. 6
  • 7. アーカイブの入手 cakephp.orgからアーカイブを入手。 ここです。 Copyright © YusukeAndo. 2006. All rights reserved. 7
  • 8. セットアップ 展開して出来たディレクトリを任意にリネーム Apacheから見える所にがっつりと設置 あとはindex.phpにアクセスすれば動作完了 ※htaccessによるoverride、rewriteが出来るようにしておく  Rewriteが使えない場合はcore.php内の設定を修正 Copyright © YusukeAndo. 2006. All rights reserved. 8
  • 9. 画面イメージ データベース設定が無い警告 Copyright © YusukeAndo. 2006. All rights reserved. 9
  • 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. 10
  • 11. 画面イメージ データベース接続成功 Copyright © YusukeAndo. 2006. All rights reserved. 11
  • 12. テーブル作成 データベースにアプリで利用するテーブルを作成 一定のネーミングルールで作成(必須!) ネーミングルール テーブル名は複数形英語 (books toys musics …) プライマリキーは“id”とする 外部キーは“genre_id” “book_id” のように単数_id とする “created” “modified”というDATETIMEを作るとベター Copyright © YusukeAndo. 2006. All rights reserved. 12
  • 13. 画面イメージ コントローラーが無い 作るべきコード Copyright © YusukeAndo. 2006. All rights reserved. 13
  • 14. コントローラー作成 /books にアクセスするとコントローラーが見つからないエラーが・・・ エラー画面で指示されたとおりにクラスを作成  app/controllers/%name%_controller.php <?php class BooksController extends AppController { } ?> Copyright © YusukeAndo. 2006. All rights reserved. 14
  • 15. モデル作成 今度はモデルが見つからないらしい・・・ AppModelの派生クラスを作成 app/models/%name%.php <?php class book extends AppModel { } ?> Copyright © YusukeAndo. 2006. All rights reserved. 15
  • 16. 画面イメージ メソッドが無い Copyright © YusukeAndo. 2006. All rights reserved. 16
  • 17. scaffoldの利用 メソッドが無いといわれたが・・・? 現段階ではロジックを実装するindex() メソッド等が無い Railsにもあるアプリの「骨組み」を提供する機能 コントローラーをscaffold指定すれば「骨組み」が利用可能 <?php class BooksController extends AppController { var $scaffold; } ?> Copyright © YusukeAndo. 2006. All rights reserved. 17
  • 18. 動作確認 組込みのCRUDが利用可能です Create Read Update Delete の機能 マスタのメンテナンス程度であれば十分 カラム追加などにも自動で追随する Copyright © YusukeAndo. 2006. All rights reserved. 18
  • 19. 入力画面 カラムの型に応じた 入力欄を生成 Copyright © YusukeAndo. 2006. All rights reserved. 19
  • 20. 単票形式での表示 Copyright © YusukeAndo. 2006. All rights reserved. 20
  • 21. カスタマイズ 組込みのCRUDも便利は便利・・・ でもユーザ向けの表示は細かい指定が必要 コントローラーを修正し、テンプレートを作ればOK scaffoldとの共存もできる Copyright © YusukeAndo. 2006. All rights reserved. 21
  • 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. 22
  • 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. 23
  • 24. カスタマイズの確認 カスタマイズした表示ができました scaffoldの機能もURLを叩けば動く(リンクすれば良い) リレーションも使えます Copyright © YusukeAndo. 2006. All rights reserved. 24
  • 25. 画面イメージ モデルに2行程度の修正 で従属データも取得 Copyright © YusukeAndo. 2006. All rights reserved. 25
  • 26. まとめ メリット   簡単セットアップ、スクリプト的な記述   validate、セッション管理も組み込まれている デメリット   情報が少ない、マルチバイト関連のノウハウ   習得コストは無いとは言えない Copyright © YusukeAndo. 2006. All rights reserved. 26
  • 27. Let‘s Bake! CakePHPなかなか面白そうなフレームワークです。 小回りが利きそうな開発でなら十分に威力を発揮 するのではないでしょうか? 皆さんも今日からBakerです! Copyright © YusukeAndo. 2006. All rights reserved. 27
  • 28. 謝辞 参考サイト 10分で作るCakePHPアプリ for Windows http://p4life.jp/cake/ Copyright © YusukeAndo. 2006. All rights reserved. 28
  • 29. 質疑応答  ご静聴ありがとうございました。 Copyright © YusukeAndo. 2006. All rights reserved. 29