最終更新:2013-12-18 (水) 00:39:09 (3462d)
CakePHP
Top / CakePHP
CakePHP は、PHP のための、オープンソースによる rapid development フレームワークです。Web アプリケーションをプログラマが作成するための、ライブラリ、クラス、実行時の構造基盤などで構成されていて、Ruby on Rails フレームワークに触発されています。私たちの主要な目標は、構造化し、すばやい仕方で作業しつつも、柔軟性を失わないようにできることです。
http://cakephp.seesaa.net/article/87269708.html
CakePHP/バージョン
- CakePHP 2.1? (2012/03)
- CakePHP 2.0 (2011/10) - PHP 5.2.8?以上。
- CakePHP 1.3? (2010/04)
- 1.2は開発版
- 1.2からフォームの処理にCakePHP/FormHelperを使うように変更されている。
- 1.1は安定板
特徴
- PHP4/PHP5の両方に対応(PHPのバージョンによってコードを読み分けて対応)
- PEARライブラリを必要としない
- O/Rマッピング(テーブルアソシエーション)
- CRUD(データの作成、読み込み、更新、削除)画面の自動生成
- ビューのキャッシュ機能で表示の高速化
- バリデーション(入力値検証)機能
- 生成されたSQL文のデバッグ機能
- 活発なコミュニティの存在
- Ajax、htmlなどの各種ヘルパー
- セキュリティ、セッション、リクエストなどのコンポーネント
- ACLによる認証システム
- データのサニタイズ
- 「vendor」ディレクトリで各種のPHPクラスを取り込める
対応データベース
- MySQL (4以降)
- PostgreSQL
- Firebird DB2
- Microsoft SQL Server
- Oracle
- SQLite
- ODBC
- ADODB?
ライブラリ
ドキュメント
メモ
- URL
“/controller/action/var1/var2”
は、デフォルトの動作では、
Controller::action($var1, $var2)
にマップされる
- 存在しないactionにアクセスするとコードのテンプレを表示してくれる
規約
ファイル
- ファイル名はアンダースコア記法
クラス
- クラス名はキャメル記法 HogeContoroller?
- アンダースコアが付けられたコントローラ関数は web 上では見えない
- ApplesController?(ファイル名は'apples_controller.php')には、
http://example.com/applesとしてアクセスできる
ビュー
- ビューのテンプレートファイルは、それを表示するコントローラの関数に合わせた、アンダースコア記法で名前が付く。
- PeopleController?クラスのgetReady()関数は、ビューテンプレートとして、/app/views/people/get_ready.ctpを探す
データベース
- テーブル名は複数形
- id
- created
- modified
ファイル構造
app/ app/config/ #CakePHP が使用する(数個の)設定ファイルが入る場所。データベース接続の詳細、ブートストラップ、コアの設定ファイルなど app/controllers/ #アプリケーションのコントローラとコンポーネント app/locale #国際化のための文字ファイル app/models/ #アプリケーションのモデル、ビヘイビア、データソース app/plugins/ #プラグインパッケージ app/tmp/ #このフォルダは通常、モデルの内容デ ータや、ログの保管に使用。時にはセッション情報も。 app/vendors/ #外部(サードパーティ)で作成されたクラスやライブラリは、ここに置く app/views/ #表示用のファイル app/webroot/ #運用時(production)用のセットアップでは、このフォルダがアプリケーションのドキュメントルートになります cake/ docs/ index.php vendors/
CakePHP/ヘルパー
CakePHP/コンポーネント
設定ファイル
app/config/database.php app/config/core.php
グローバル関数
- h - htmlspecialchars
- a - array
- aa - キーと値を渡してハッシュ作成
- e - echo
- low - strtolower
- up - strtoupper
- r - str_replace
- am - array_merge
- env - 環境変数
- pr - print_r
- debug - デバッグ出力
主要な関数
- beforeFilter()、すべてのコントローラのアクションロジックの実行前に呼ばれます。
- beforeRender()、コントローラロジックの実行後、しかしビューの表示(render)前に実行されます。
- afterFilter()、すべてのコントローラロジックを実行し、ビューの表示(render)が終わった後に実行されます。手動でrender()をコントローラから呼び、その後にロジックを実行しているのでない限り、afterRenderとafterFilterには違いがありません。
変数とか
//リクエスト $this->params['url'];//GET $this->params['form'];//POST //ユーザがフォームを使ってデータをPOSTした場合、その情報は、$this->dataの中に入ってくる $_POST['data'];//以下は同じ意味 $this->params['form']['data']; $this->params['data']; $this->data;
インストール
- アーカイブを展開
- cake/app/config/core.phpで暗号化のsaltを指定
- cake/app/config/database.php.defaultをテンプレにして使うDB指定
- httpd.confでmod_rewriteを有効にする
チュートリアル
内容
- postsテーブルを作成
- app/models/post.php を作成(class Post extends AppModel?)
- Postというモデルを作るとPostsController?、postsテーブルと自動的に結びつく
- app/controllers/posts_controller.php を作成 (class PostsController? extends AppController?)
- app/views/posts/index.thtml にテンプレを書く
- add,delete,editとかのアクションを作成する
- app/config/routes.php で / へのアクセス時のアクションを差し替える