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,497 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,497
On SlideShare
0
From Embeds
0
Number of Embeds
225
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×