Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cakephp

  • Be the first to comment

  • Be the first to like this

Cakephp

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

×