Eloquent Modelと親和性の高い オブジェクトを作る
by
hiroshi sanbou
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Eloquent Modelと親和性の高い オブジェクトを作る
Slide 2
Slide 2 text
©2016 株式会社Loco Partners 自己紹介 名前 sanbou hiroshi 所属 Loco Partners 仕事 宿泊予約サイト「Relux」のサーバーサイドエンジニア CakePHP・Laravel
Slide 3
Slide 3 text
©2016 株式会社Loco Partners やりたいこと Reluxの部屋と料金の扱い 部屋 部屋料金 在庫 料金内訳 DBから取得 アプリケーション で算出
Slide 4
Slide 4 text
©2016 株式会社Loco Partners やりたいこと DBに依存するモデルのリレーションは簡単 部屋 部屋料金 在庫 料金内訳 DBから取得 アプリケーション で算出
Slide 5
Slide 5 text
©2016 株式会社Loco Partners やりたいこと これだけ
Slide 6
Slide 6 text
©2016 株式会社Loco Partners やりたいこと 検索条件とDBから取得した料金からアプリケーションで算出 部屋モデルの属性として扱いたい 部屋 部屋料金 在庫 料金内訳 DBから取得 アプリケーション で算出
Slide 7
Slide 7 text
©2016 株式会社Loco Partners やりたいこと 料金内訳オブジェクト
Slide 8
Slide 8 text
©2016 株式会社Loco Partners やりたいこと DB依存のオブジェクト と DBに依存しないオブジェクト を まとめて扱いたい
Slide 9
Slide 9 text
©2016 株式会社Loco Partners やりたいこと $room->estimate $rooms->toArray()
Slide 10
Slide 10 text
©2016 株式会社Loco Partners やりたいこと Eloquent Modelクラスから 結合に必要な部分を抽出した基底クラスを作る
Slide 11
Slide 11 text
©2016 株式会社Loco Partners Eloquent Modelのデータ構造
Slide 12
Slide 12 text
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Attributes と Relations
Slide 13
Slide 13 text
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Attributes:モデルのデータを集約したプロパティ
Slide 14
Slide 14 text
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Attributesを管理するTrait ・Attributesを扱える ・Attributesの型の保証ができる ・Mutatorを使える
Slide 15
Slide 15 text
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Relations:モデル間の結合関係
Slide 16
Slide 16 text
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Relationsを管理するTrait ・モデル間の結合関係を配列で保持 ・結合先のモデルを参照、操作できる
Slide 17
Slide 17 text
©2016 株式会社Loco Partners Eloquent Modelの実装
Slide 18
Slide 18 text
©2016 株式会社Loco Partners Eloquent Modelの実装 Attributesを扱えるようにする
Slide 19
Slide 19 text
©2016 株式会社Loco Partners Eloquent Modelの実装 Relationsを扱えるようにする
Slide 20
Slide 20 text
©2016 株式会社Loco Partners Eloquent Modelの実装 シリアライズ対象のAttributesをカスタマイズできる
Slide 21
Slide 21 text
©2016 株式会社Loco Partners Eloquent Modelの実装 toArray() を保証する
Slide 22
Slide 22 text
©2016 株式会社Loco Partners 完成 基底クラス
Slide 23
Slide 23 text
©2016 株式会社Loco Partners 完成 基底クラス
Slide 24
Slide 24 text
©2016 株式会社Loco Partners 完成 基底クラス
Slide 25
Slide 25 text
©2016 株式会社Loco Partners 完成 モデルとの結合
Slide 26
Slide 26 text
©2016 株式会社Loco Partners 完成 $room->estimate $rooms->toArray()
Slide 27
Slide 27 text
©2016 株式会社Loco Partners 完成 Reluxの部屋と料金をまとめて扱えるように 部屋 部屋料金 在庫 料金内訳
Slide 28
Slide 28 text
No content