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入門
PHPでRailsライクな高速開発


                                                        PHP勉強会 第9回発表資料
                     ...
はじめに


 巷で話題の“Ruby On Rails”
     Rubyで実装されたMVCフレームワーク
     同じ事を繰り返さない - Don’t Repeat Yourself
     設定よりも規約 - Convention o...
そして

Ruby On RailsのPHP版とも言えるのが・・・




                                                         なのです


                    ...
CakePHPの特徴


   フロントコントローラー、MVCモデル
   設定不要、サブディレクトリのみで動作可能
   アクティブレコード、組込みのCRUD
   PHP4、PHP5両対応


「あらゆるレベルのプログラマーにとって快適な環...
おおまかな構造

                                             アプリケーションのルート
                                             設定ファイル
   ...
動作の手順




実際に動かしながら触ってみましょう!




Copyright © YusukeAndo. 2006. All rights reserved.   6
アーカイブの入手


   cakephp.orgからアーカイブを入手。




                                                     ここです。



Copyright © YusukeA...
セットアップ


    展開して出来たディレクトリを任意にリネーム
    Apacheから見える所にがっつりと設置
    あとはindex.phpにアクセスすれば動作完了




※htaccessによるoverride、rewriteが...
画面イメージ



                                                     データベース設定が無い警告




Copyright © YusukeAndo. 2006. All rights ...
データベース接続設定
  データベースへの接続設定を行う
  app/config/database.php に設定を記入
  ひな型をコピーすると簡単

var $default = array('driver'               ...
画面イメージ



                                                     データベース接続成功




Copyright © YusukeAndo. 2006. All rights res...
テーブル作成
 データベースにアプリで利用するテーブルを作成
 一定のネーミングルールで作成(必須!)
ネーミングルール
 テーブル名は複数形英語 (books toys musics …)
 プライマリキーは“id”とする
 外部キーは“ge...
画面イメージ




                                                     コントローラーが無い




                                           ...
コントローラー作成
/books にアクセスするとコントローラーが見つからないエラーが・・・
   エラー画面で指示されたとおりにクラスを作成
 app/controllers/%name%_controller.php



 <?php
 ...
モデル作成
今度はモデルが見つからないらしい・・・
    AppModelの派生クラスを作成
    app/models/%name%.php

<?php
class book extends AppModel {


}
?>




...
画面イメージ



                                                     メソッドが無い




Copyright © YusukeAndo. 2006. All rights reserv...
scaffoldの利用
メソッドが無いといわれたが・・・?
     現段階ではロジックを実装するindex() メソッド等が無い
     Railsにもあるアプリの「骨組み」を提供する機能
     コントローラーをscaffold指定すれ...
動作確認
  組込みのCRUDが利用可能です
  Create Read Update Delete の機能
  マスタのメンテナンス程度であれば十分
  カラム追加などにも自動で追随する




Copyright © YusukeAndo....
入力画面




                                                     カラムの型に応じた
                                                  ...
単票形式での表示




Copyright © YusukeAndo. 2006. All rights reserved.   20
カスタマイズ
  組込みのCRUDも便利は便利・・・
  でもユーザ向けの表示は細かい指定が必要
  コントローラーを修正し、テンプレートを作ればOK
  scaffoldとの共存もできる




Copyright © YusukeAndo....
コントローラーの修正
     app/controllers/%name%_controller.phpにindexメソッド
     を追加する

<?php
     class BooksController extends AppCo...
テンプレートの作成
    app/views/%name%/index.thtml を作成
    Controllerでsetした名前でハッシュがある
<table>
<tr><th>書名</th><th>登録日</th></tr>
<?p...
カスタマイズの確認
  カスタマイズした表示ができました
  scaffoldの機能もURLを叩けば動く(リンクすれば良い)
  リレーションも使えます




Copyright © YusukeAndo. 2006. All rights ...
画面イメージ




                                                     モデルに2行程度の修正
                                              ...
まとめ
  メリット
  簡単セットアップ、スクリプト的な記述
  validate、セッション管理も組み込まれている
  デメリット
  情報が少ない、マルチバイト関連のノウハウ
  習得コストは無いとは言えない




Copyright ...
Let‘s Bake!

     CakePHPなかなか面白そうなフレームワークです。
     小回りが利きそうな開発でなら十分に威力を発揮
     するのではないでしょうか?
     皆さんも今日からBakerです!




Copy...
謝辞




 参考サイト
     10分で作るCakePHPアプリ for Windows
                                                     http://p4life.jp/cake...
質疑応答 




                 ご静聴ありがとうございました。




Copyright © YusukeAndo. 2006. All rights reserved.   29
Upcoming SlideShare
Loading in …5
×

Cakephp

2,564 views

Published on

  • 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

×