目次
- データベース
- コントローラ
- モデル
- ビュー
- その他
- 参考
データベース
- テーブル名は複数形とする。
- 以下のカラムを定義する。
- id:プライマリキーとなる。
- created:レコード作成時に自動でシステム日時が設定される。
- modified:レコード更新時に自動でシステム日時が設定される。
- 他テーブルのidをフィールドに持つ場合、テーブル名(単数形)_idとする。
コントローラ
- 画面単位でコントローラを作成。
- ビジネスロジックは書かない。
(コントローラを肥大化しない。モデルへ)
- リクエストパラメータはバリデーションしてもいいかも。
(モデルまで行く必要がないから)
- コントローラ内共通処理はbeforeFilter()で行う。
各メソッド実行前に呼ばれる。- 認証処理等、全共通処理はAppController->beforeFilter()で行う。
- 共通処理はComponentに作成。
app/Controllers/Components
ModelクラスをnewするとComponentからも呼べる。
- 画面遷移のrenderとredirectの違い
- renderはビューを表示する。
- redirectはコントローラを実行。
- モデルからの例外をcatchして、異常処理スッキリ。
モデル
- アクション単位でビジネスロジックを行うクラスを作成。
- テーブル単位でDBアクセスを行うクラスを作成。
- アソシエーションは複雑なので無理に使わない。
(queryで実現できる)
- 処理異常時は例外を投げてコントローラでエラー処理。
- 共通処理はapp/Model/Behaviorに作成。
呼び方:$actsAs = array('hoge');
ビュー
- ヘッダ、フッタはLayouts/default.cppに記述。
- 共通レイアウトはElementsに作成。
呼び方:$this->Elements();
- パスを含むタグはHTMLヘルパーで出力。
- フォーム関連タグはFormヘルパーで出力。
- ロジックを極力含めないよう留意すること。
その他
- コアコンポーネント(コントローラから利用できる標準機能)
- ACL:権限制御
- Auth:認証
- Cookie:クッキー制御
- RequestHandler:アクセス検出
- Pagination:ページャ
- Security:セキュリティ
- Session:セッション管理
- コアライブラリ(モデルから利用できる標準機能)
- App:クラスの読み込み
- Cache:キャッシュ管理
- CakeEmail:メール送信処理
- CakeNumber:数値の書式変換処理
- CakeTime:時間の書式変換処理
- Sanitize:危険文字列の変換処理
- Folder:フォルダ操作
- File:ファイル操作
- HttpSocket:HTTP通信
- Inflector:単数形、複数形、テーブル名などの変換
- CakeLog:ログ操作
- Router:ルーティング、URL生成
- Security:ハッシュ処理
- Hash:連想配列操作
- String:文字列操作
- Xml:XML操作
- コントローラ、モデルから呼べる共通処理
/app/Vendorに作成
呼び方;App::import('Vendor', 'hoge');
Made with Slides.com