CakePHP を学習・研究した記録です。
インストール方法
- http://cakephp.jp/ から cakephp-2.4.9.zip をダウンロード。
- zip ファイルを解凍して XAMPP フォルダにコピー。
(ex c:\xampp\htdocs/cake/0504) - ブラウザから http://localhost/cake/0504/ にアクセス。
- この時点で上から、赤色2、緑色3、黄色2、そして最後の赤色2の状態になっている。
- エディタで C:\xampp\htdocs\cake\0504\app\Config\core.php を開く。
- 225 行目 : Security.salt の値を変更
DG93b0qyJxfs2guUubWwvniR2gaC9mi → DG93b0qyJxfs2guUubWwvniR2gaC9mi9999 - 230 行目 : Security.cipherSeed の値を変更
76930974535424967683645 → 769309745354249676836459999 - ブラウザから http://localhost/cake/0504/ にアクセス。
- この時点で上から、緑色3、黄色2、そして最後の赤色2の状態になっている。
- phpMyAdmin で、データベース cake1 を作成する。
- C:\xampp\htdocs\cake\0504\app\Config の database.php.default を database.php にコピー。
- database.php の login (root)、password (password)、database (cake1) に書き換える。
- ブラウザから http://localhost/cake/0504/ にアクセス。
- この時点で上から、緑色5、黄色1の状態になっている。黄色1は DebugKit のインストールなのでこの時点ではOKとする。
作成
- オブジェクト単位で、Model クラスとテーブルを作成する。
- コントローラとモデルは対になるようにする。
- CRUD それぞれにアクションを作成する。
- テーブルの作成
cd C:\xampp\htdocs\cake\0504
app\Console\cake schema create
決まり事
- 機能名とコントローラ名が対になる。
- 処理名とアクション名が対になる。
- モデルとコントローラを対にする。(推奨)
- オブジェクトとモデル(テーブル)が対になる。
- URI
localhost/cake/0504/test/view/1 → 1 は id=1 のこと。 - {ARD}/app/Config/core.php
- Configure::write('Cache.check', true); コメントアウトを取る。グラフ作成で使用されるため。
- Configure::write('debug', 0); 本番稼働用 (2: デバッグ用) - CakePHP では、主キーに複合キーはサポートされない。通常全テーブルに id 列を設ける。
しくみ
- アプリケーション・ルート・ディレクトリ:app, lib, plugins, vendors フォルダが含まれているディレクトリのこと。CLI を実行するときにはここにカレントディレクトリを移動する。以下、{ARD} と略す。
- データベース定義ファイルは、{ARD}\app\Config\database.php に記述する。ひな形は、同ディレクトリの database.php.default に書かれている。$default が通常使用される定義、$test は自動テストに使用される定義。
- スキーマファイル名は、{ARD}\app\Config\Schema\schema.php に記述する。
処理ステップ
- ユーザーがコントロールの URI を入力。
- コントローラが受け取った HTTP リクエスト情報は $this->request に入る。
- $this->request->params : パラメータが格納される
- $this->request->data : FORM データが格納される
フォルダ構成
- app : 自 Web アプリケーション本体
+plugins : 自 Web アプリケーションでのみ使用可能なプラグインを配置する。
+venders : 自 Web アプリケーションでのみ使用可能なライブラリを配置する。 - lib : CakePHP 本体
- plugins : すべてのアプリケーションで使用可能なプラグインを配置する。
- vendors : すべてのアプリケーションで使用可能なライブラリを配置する。