ページ番号  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 |  10

[CakePHP]モデル化

URL:http://bit.ly/hGvyIj
CakePHPでサイトを作る場合、まずページの要素をモデルに落としこむ必要があります。

モデル名を決めて、その複数形をテーブル名とします。
・投稿1回分を1レコードとして扱います。モデル化!⇒「posts」
・コメントについてもモデル化。⇒「comments」
・投稿に設定するタグもモデル化。⇒「tags」
・サイドバーにリンクを一覧表示するので、これもモデル化。⇒「links」

モデル間の関係付けをテーブル化します。モデル名を「_」で繋げます。
・「posts」+「comments」⇒「post_comment」
・「posts」+「tags」⇒「post_tag」



CakePHP
[CakePHP]料理の前のメモ
Cacoo


[CakePHP]Securityコンポーネントに脆弱性があるらしい。(バージョン 1.2.8 または 1.3.5 以前)

POSTされた入力が、デストラクタ実行時にシリアル化されてキャッシュファイルへ格納されるので、Securityコンポーネントでシリアル化解除の時にPHPコードが実行されてしまうらしいです。早速修正が上がっているので最新版に更新しておきましょう。
⇒バージョン 1.2.9 及び 1.3.6 が公開されました。
⇒Securityコンポーネントの変更差分のみを既存のシステム上書きする対応もあるようです。

CakePHPのSecurityComponentに深刻なセキュリティホールが見つかりました
CakePHP の PHP コード実行の脆弱性を使って CakePHP を焦がす
Secunia Advisory SA42211
CakePHP <= 1.3.5 / 1.2.8 unserialize() Vulnerability felix[txt]
CakePHP


[CakePHP]エラーの対処

Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 684]
「Security.salt」は、ハッシュの生成に用いられ、AuthComponentでの暗号化キーとして使用されます。
適当な値を設定したら後は変更してはいけません。
変更してしまうと登録したユーザーのパスワードが使えなくなります。
また再インストール時に再設定できるように内容を覚えておく必要があります。
[7a467752776e4d4f6f73664a486b4143316f39597777]
Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE\cake\libs\debugger.php, line 688]
「Security.cipherSeed」は、符号化されたクッキーをよりセキュアにするそうです。入力できるのは数字のみです。
[3931333734333236343132363036323535333430333836333832343734]
Your database configuration file is NOT present.
Rename config/database.php.default to config/database.php
⇒データベースへの接続が設定されていません。「database.php.default」をコピーして「database.php」を作成する。
[636173706572][656470624679765541464e6432525744]

CakePHP
The Cookbook へようこそCakePHPの料理本(マニュアル)
CakePHPフォーラム
CakePHP - Wikipedia
CakePHPで高速Webアプリ開発


[CakePHP]料理の前のメモ

CakePHPの基本要素
・コンポーネント(Components)
・ビヘイビア(Behaviors)
・ヘルパー(Helpers)

よくあるCakeリクエスト
リンクをクリック。
⇒ Webサーバへのリクエスト。
⇒ Routerがパラメータを取り出す。
⇒ コントローラのアクションにマップされる。
⇒ コントローラがモデルを使用。
⇒ 該当するモデルのコールバック、ビヘイビア、データソースが動作。
⇒ データがモデルからコントローラへ渡される。
⇒ コントローラがコンポーネントを使用。
⇒ データがコントローラからビューに渡される。
⇒ ビューがレイアウトに表示される。

CakePHPのフォルダ構造
・app フォルダ - 自分の書いたアプリを入れる。
・cake フォルダ - CakePHPのコードが入っている。
・vendors フォルダ - 外部作成の PHP ライブラリを置く。

ファイルとクラス名の規約
・ファイル名はアンダースコア記法(underscored)
・クラス名にはキャメル記法(CamelCased)

モデルとデータベースの規約
・モデルに対応するテーブル名は、複数形でアンダースコア記法
・フィールド名はアンダースコア記法
・外部キーの名前は、関連するモデルの(単数形の)名前に _id を付ける。
・モデル間の関係で使用される join テーブルは、モデル名をアルファベット順。
・モデルの相互に作用する全てのテーブルには、単一フィールドのプライマリーキーが必要。

コントローラの規約
・コントローラのクラス名は最後に Controller が付く。
・必ず index() というメソッドが必要。
・先頭にアンダースコア(_)の付いたコントローラメソッドは、Web上からは非表示。

ビューの規約
・ビューのテンプレートファイルの名前は、それを表示するコントローラの関数に合わせる。
・基本パターン ⇒ /app/views/コントローラ名/関数名.ctp

■ファイルの配置
・テーブル ⇒ 「people」
・モデル「Person」 ⇒ /app/models/person.php
・コントローラ「PeopleController」 ⇒ /app/controllers/people_controller.php
・ビューのテンプレート「index」 ⇒ /app/views/people/index.ctp

■出てきた用語
・コントローラ
・ビュー
・モデル
・アクション
・レイアウト(layout)
・エレメント(element)
・データソース(DataSource)
・プラグイン(plugin)

CakePHP
The Cookbook へようこそCakePHPの料理本(マニュアル)
CakePHPフォーラム
CakePHP - Wikipedia
CakePHPで高速Webアプリ開発


ページ番号  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 |  10