登録者:akiyan

bind, unbindはもう古い!Containable Behaviorでrecursive => 3だって怖くない!

2009-11-10 09:24:41
アクセス数:3909
タグ: CakePHP PHP Behavior Model CakePHP1.2
0

■説明

CakeMasturiTokyo2009のLT枠での発表資料です。

リンク

このスライドの現在表示中のページへのリンク
ブログパーツ
google ガジェット

関連するスライド

CodeIgniterでhello world! 二番煎じ☆ 2080-0825

投稿者:NEKOGET
投稿日時:2010-08-25 21:51:13

PHPの最新動向 5.3の新機能を中心に

投稿者:koyhoge
投稿日時:2009-02-08 23:26:53

CakePHP アプリケーションの流れを追う.ppt

投稿者:shin1x1
投稿日時:2008-12-13 15:30:36

PHPプログラミングのIPv6対応の実際

投稿者:koyhoge
投稿日時:2008-11-27 22:55:39

Ethnaで問題が起こったときにする5段階の解決法

投稿者:sotarok
投稿日時:2008-08-16 02:07:55

第34回PHP勉強会発表資料 ちょっと極めるPHP5×XML

投稿者:sotarok
投稿日時:2008-07-24 12:18:09

CakePHP Email Component 調査報告書

投稿者:suzuki
投稿日時:2008-02-21 01:29:57

お気に入り登録したユーザ

GoodJobしたユーザ


タグクラウド

BehaviorModelCakePHP1.2CakePHPPHP

■スライド内のテキスト

スライド1: 2009-10-31 akiyan at CakeMatsuriTokyo2009

スライド2: ・ 秋田真宏 / Masahiro Akita・ akiyan.com owner・ Fast CakePHP author・ @akiyan3

スライド3: ・ Kauli株式会社 取締役CTO. (2009/09~)◦ Ad Network (like Google Adsense)4

スライド4: ・ bindModel , unbindModel を知っている人!・ Containable Behaviorを使っている人!5

スライド5: ・ Behavior・ Core CakePHP1.2 built-in.・ like “One-time Association Customizer”.6

スライド6: Containable Behaviorを使うと…・ パフォーマンスが向上する!・ findの見通しが良くなる!・ アソシエーションを完璧に書きたくなる!◦ 重くなるから・unbindが面倒だからといってアソシエーションを控えめにしたりしなくなる。7

スライド7: ・ class AppModel extends Model {var $actsAs = array(„Containable‟);}8

スライド8: ・ class User extends AppModel {var $hasOne = array(„Profile‟,„PasswordReset‟,„MailChange‟,),var $hasMany = array(„Post‟,„Photo‟„Video‟,);}9

スライド9: ・ Userから、Profile(hasOne),Post(hasMany) だけfindしたい.・ - User- Profile- Post・ recursive => 0 … can‟t find Post.・ recursive => 1 … need no Photo and Video.how to go about it...10

スライド10: ・ $this->User->unbindModel(array(„hasOne‟ => array(„PassowrdReset‟,„MailChange‟,),„hasMany‟ => array(„Photo‟,„Video‟,),));$this->User->find(„first‟, …)11

スライド11: ・ $this->User->find(„first‟, array(„contain‟ => array(„Profile‟,„Post‟,),…));・ short! nice!12

スライド12: ・ class Post extends AppModel {var $belongsTo = array(„User‟,);var $hasMany = array(„PostComment‟,„PostImage‟,„PostTrackBack‟,),}class PostComment AppModel {var $belongsTo = array(„CommentUser‟ => array(„class‟ => „User‟,…13

スライド13: ・ Case 1 + PostComment + CommentUser もfindしたい。- User- Profile- Post- PostComment- CommentUser14

スライド14: ・ $this->User->find(„first‟, array(„contain‟ => array(„Profile‟,„Post‟ => array(„PostComment‟ => array(„CommentUser‟,),),),…));・ Just structured!15

スライド15: ・ 直観的! Nonlogical!・ あとからアソシエーションが増えても大丈夫!◦ unbindModelだと、増えたアソシエーションを書き足さないといけない.16

スライド16: ・ Conditions!„contain‟ => array(„Post‟ => array(„conditions‟ => „Post.category_id = 1‟,),・ Fields!„contain‟ => array(„Post‟ => array(„fields‟ => „Post.id, Post.title‟,),17

スライド17: ・ book.cakephp.orgに日本語マニュアルがあるよ!18