Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CakePHP3レポート
Search
Junkins
May 26, 2016
Technology
0
810
CakePHP3レポート
PHPカンファレンス福岡2016での登壇資料
Junkins
May 26, 2016
Tweet
Share
More Decks by Junkins
See All by Junkins
FusicTechLive1.5 AWSを活かした基幹システムインフラ構成の紹介
junkins
0
53
マルチ〇〇(リージョン、アカウント)の サービスをまとめてみた!
junkins
0
190
[Fukuoka.php Vol.16]LT CakePHP3を使ってみた:Migration Phinxの話
junkins
0
720
Other Decks in Technology
See All in Technology
テストプロセスで大事にしていること #jasstnano
makky_tyuyan
0
130
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
シン・Kafka / shin-kafka
oracle4engineer
PRO
8
2.7k
Databricks における 『MLOps』
databricksjapan
2
140
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
750
AWS を使う上で知っておきたいオンプレミス知識/aws-on-premise-essentials
emiki
1
4.2k
インシデントレスポンスのライフサイクルを廻すポイントってなに / Pinpoints of Incidentresponse Lifecycle for Operation
sakaitakeshi
1
300
ChatGPT for IT Service Management (IT Pro)
dahatake
4
320
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
100
DevOpsDays History and my DevOps story
kawaguti
PRO
8
1.6k
VS CodeでAWSを操作しよう
smt7174
4
280
NgRx Signal Store
rainerhahnekamp
0
130
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
503
110k
KATA
mclloyd
14
12k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Become a Pro
speakerdeck
PRO
10
4.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
119
39k
BBQ
matthewcrist
80
8.7k
The Cost Of JavaScript in 2023
addyosmani
14
3.8k
A better future with KSS
kneath
231
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
Automating Front-end Workflow
addyosmani
1355
200k
How GitHub (no longer) Works
holman
304
140k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.4k
Transcript
CakePHP3Ϩϙʔτ 2016/05/21 PHPΧϯϑΝϨϯεԬ ҏ౻ ५थ
Introduction ҏ౻ ५थ Junkins_110 Junkins 1.3 2.ʙ 3.ʙ
Agenda CakePHP3 Ϩϙʔτ ࣮ࡍʹҊ݅Ͱ࠾༻ͨ͠ॴײ (ྑ͔ͬͨͱ͜Ζɺѱ͔ͬͨͱ͜Ζ) Model ( TableɺEntity ) 1.
EntityͬͯԿʁ 2. Entityศརͩͬͨʁ 3. EntityͰϋϚͬͨͱ͜Ζ͋ͬͨʁ ࠓ·Ͱ$BLF1)1Λ͍ͬͯͯɺ͜Ε͔Β$BLF1)1Λ͏ํ͚ CakePHP2ͱͷൺֱ͕ͪΐͪ͜ΐ͜ɻɻɻɻ
1. EntityͬͯԿʁ 1. What is Entity?
1. EntityͬͯԿʁ 1-1. MVC 1-2. TableͱEntity 1-3. Entityͷొγʔϯ 1. What
is Entity?
1. What is Entity? V C M MVC Model View
Controller View Controller Model
1. What is Entity? MVC Model View Controller V C
M View Controller Model
1. What is Entity? V C M CakePHP2 MVC of
CakePHP2
1. What is Entity? V C T CakePHP3 E Table
Entity MVC of CakePHP3
T 1. What is Entity? E ɾ$BLF1)1ͷʮ.PEFMʯʹׂ͍ۙ Table Entity ɾ%#ͷʮ5BCMFʯͷΞΫηε
ɾσʔλϨίʔυ TableͱEntity ɾϨίʔυ͝ͱʹΠϯελϯεԽ ɾྻͰͳ͍ͷͰ֦ு͕༰қ ɾ7BMJEBUJPO Associationͷઃఆ
1. What is Entity? E Entityͷొγʔϯ E E E E
E E E E E E E E E E E E E E E E E E E E E Ma Request Data DB ResultSet Marshaller beforeMarshal() Validation() SELECT SELECT
1. EntityͬͯԿʁ EntityCakePHP2Ͱ͍͏ModelͷҰ෦ CakePHP2ͷModelTableͱEntityʹ͔Εͨ find(SELECT)ͨ͠ͱ͖ + POST͞Εͨͱ͖ POST͞ΕͨσʔλΛEntityԽ͢Δͱ͖ʹόϦσʔγϣϯ͕ಈ͘ ( CakePHP2ͱಉ༷ʹอଘ࣌ʹόϦσʔγϣϯಈ͘
) 1. What is Entity?
2. Entityศརͩͬͨʁ 2. Is Entity useful ?
2. Is Entity useful ? 2. Entityศརͩͬͨʁ 2-1. ॲཧ͕؆ܿʹͳͬͨ ɾFat
Controller -> Fat Model -> ? 2-2. GetterͱSetter ɾ.7$ͷͲ͔͜ΒͰΞΫηεՄೳ
V C M Fat Controller ॳ৺ऀͷ͜Ζ 2. Is Entity useful
?
V C M Fat Model খ׳Ε͖ͯͨ͜Ζ 2. Is Entity useful
?
V C M T E Finder Validation Association Save 2.
Is Entity useful ? ͜ͷ͝Ζ μΠΤοτ
V C M T E μΠΤοτ Finder Validation Association Save
2. Is Entity useful ? ͜ͷ͝Ζ
2. Is Entity useful ? V C M E CakePHP3
E E E function hoge() V C M CakePHP2 V C M array( ) array( ) array( ) function hoge() Ͳ͔͜ΒͰΞΫηε
2. Is Entity useful ? V C M E Ͳ͔͜ΒͰΞΫηε
CakePHP3 E E E function hoge() V C M CakePHP2 V C M array( ) array( ) array( ) function hoge() hoge() hoge() hoge()
2. Is Entity useful ? V C M E CakePHP3
E E E function hoge() V C M CakePHP2 V C M array( ) array( ) array( ) function hoge() hoge() hoge() Ͳ͔͜ΒͰΞΫηε
2. Is Entity useful ? Getter ྫ) ͱ໊Λͭͳ͛ͯग़ྗ ̎ͭͷϑΟʔϧυΛͭͳ͛ͯग़ྗ ϑΟʔϧυʹॲཧΛՃ͑ͯग़ྗ
ྫ) ֹۚΛ੫ࠐʹ ※ CakePHP2ͷafterFind()͕ෆཁʹͳΔ
2. Is Entity useful ? Setter ྫ) อଘ࣌ͷύεϫʔυΛϋογϡԽ ྫ) ੜ݄ͷอଘͱಉ࣌ʹྸอଘ
อଘ͢Δલͷͷมߋ ผϑΟʔϧυͷͷՃ ※ CakePHP2ͷbeforeSave()ͷهड़͕ݮΔ
2. Is Entity useful ? 2. Entityศརͩͬͨʁ 1Ϋϥε͋ͨΓͷهड़ྔ͕ݮͬͨ ViewͰͷԋࢉࢠͷྔ͕ݮͬͨ ModelͷίʔϧόοΫͷهड़ྔ͕ݮͬͨ
Fat EntityʹͳΒͳ͍ͨΊͷTips ڞ௨ॲཧ5SBJUԽʂ
3. EntityͰϋϚͬͨͱ͜Ζ͋ͬͨʁ
3. EntityͰϋϚͬͨͱ͜Ζ͋ͬͨʁ 1. อଘ࣌ʹ(FUUFS͕Δ 2. ෳճ4FUUFS͕Δ
3-1.อଘ࣌ʹ(FUUFS͕Δ ঢ়گ) ֹۚΛද͍ࣔͨ͠ʂJOQVUͷΧϯϚ۠Γʹ͍ͨ͠ʂ 1000 int text 1,000 text 1,000 1000
int 1000 int text 1,000 1000 int text1,000 text 1,000 1000 int Getter Setter Getter Setter Getter ཧ ݱ࣮ SQL Error ※ ΧϥϜ໊Ͱ(FUUFSΛ࡞͢Δ࣌ҙ
3-2.ෳճ4FUUFS͕Δ ঢ়گ) ϚϧνεςοϓͷϑΥʔϜΛ࡞Γ͍ͨ Request Data Ma Form1 Form2 _setPassword() E
adminadmin dsfknadfgnadflgkng Request Data Ma _setPassword() E dsfknadfgnadflgkng 32ekwnesihwenfansrueaf ͋Εʁ ※EntityͷઃఆΛมߋ͢Ε͍͍͕ɺ ɹɹ Marsherӽ͠ͰઃఆΛมߋͰ͖ͳ͍
3. EntityͰϋϚͬͨͱ͜Ζ͋ͬͨʁ ҙਤ͍ͯ͠ͳ͍λΠϛϯάͰॲཧ͕Δ Entityͷઃఆ৮Γʹ͍͘ EntityҎ֎ͷ෦ͷམͱ݀͋͠·Γͳ͍
·ͱΊ EntityΛ͍͜ͳͤΕɺޮతͳ։ൃ͕Մೳ TableɺEntity͕͔Εͯɺඇৗʹॻ͖͍͢ EntityඇৗʹศརͰCakePHP3Λ͏ͳΒੋඇཧղͯ͠΄͍͠ Entityศརͳɺཧղͯ͠Θͳ͍ͱམͱ͕݀͋͠Γ·͢ PluginΛ࡞Δͱ͖Entityͷಈ͖ʹؾΛ͚ͭͳ͍ͱ͍͚ͳ͍
͍͞͝ʹ FusicςΫϊϩδʔ͕ ͖ͳΤϯδχΞΛืू͍ͯ͠·͢ https://fusic.github.io
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ