スクールで学習を始めました。復習を兼ねてアップします。

先生によると、現役のエンジニアでも一からコードを書く事はしていなくて、
コピペをしてその後に構造を理解しているらしい。。という話を聞いて
安心しました。こんなの全部一から作ろうとしたら途方に暮れてしまいます・・!

構造の理解

システムを構成する主な要素は次の5つです

・書籍 ・カテゴリ ・ユーザー ・お届け先 ・注文

要素は5つですが、使用する組み合わせが複雑であることに注目する必要があります。

wire-frame01
1人のユーザに対するアドレス登録(配送先登録)は1つとは限らないので 1:n とします
1つの注文に対する配送先は1つなので 1:1 の関係になります
販売する書籍は複数のカテゴリに属することがあると共に、
カテゴリに対しても複数あるので、 n:n の関係になります

wire-frame02
CakePHPで作る為に、データベースに定義します。
この際、英語で表記し、ビューとコントローラーは複数形、モデルは単数形にします

wire-freame04
(データベースを各モデルと連動させる様に配置します)

*名前の付け方(注意すべきポイント)
・idが主キー
・単語の間は_でつなぐ
・外部キーは参照先モデル_id

その他参考までに >> デベロッパーのためのネーミング辞書 codic

制作内容の確認

書籍を販売する為のショッピングサイト

実装していく機能

1. 書籍の一覧表示機能と詳細画面の表示機能(今回)
2. 新規書籍を追加できる機能
3. 書籍一覧に編集機能と削除機能を追加
4. ユーザー登録とログイン機能

制作開始

1. 初期設定 app/Configの設定

1. core.php

Security.salt とSecuritycipherSeed の数字をそれぞれ適当な(英)数字に書き換える
(詳細割愛)

2. database.php

モデルの作成

1. booksテーブルを作成 (上記の構成図を参照のこと)
2. テーブルに対応するPHPのクラスを定義する。
(注意点:決められたフォルダに規約に沿った名前で配置させること)

app/Model/Book.php

コントローラの作成

ビューの作成

 

ここまでの完成図
sap

詳細画面の作成

・BooksController.phpに詳細画面を照会する機能を追加する

・view.ctpを作る

完成図
samp

*point
ModelはほとんどいじらなくてもViewとControllerで、目に見えるものは作れる。
後はデータベースとの連動、連携