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
技術書紹介 パーフェクトPHP
Search
ikuwow
July 08, 2015
Programming
2.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
技術書紹介 パーフェクトPHP
ikuwow
July 08, 2015
More Decks by ikuwow
See All by ikuwow
Elasticsearch on EC2からAmazon Elasticsearch Serviceに 移行してだいぶ楽になった話
ikuwow
0
3.6k
意外と使える! Alibaba Cloud
ikuwow
0
250
teratailの解析基盤をEFKで作っていろいろ楽しい話
ikuwow
0
920
UNIXという考え方
ikuwow
1
2.1k
みんなもMiddlemanで技術ブログ作って幸せになろう!
ikuwow
0
1k
PHPサイバーテロの技法 書籍紹介
ikuwow
0
1k
Other Decks in Programming
See All in Programming
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
120
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
210
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.4k
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
680
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
150
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.5k
React本体のコードリーディング
high_g_engineer
1
140
Go 1.27 における memory allocation の高速化
andpad
0
120
その節約、円になってますか?
isamumumu
1
720
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
250
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
170
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
150
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
340
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
900
YesSQL, Process and Tooling at Scale
rocio
174
15k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
Scaling GitHub
holman
464
140k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
260
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Chasing Engaging Ingredients in Design
codingconduct
0
260
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Transcript
ٕज़ॻհɿ ύʔϑΣΫτPHP 2015/07/08 @ikuwow
ࣗݾհ • ग़ز • ϚΠϒʔϜɿReact.js • ͖ͳࡊ ωΪ @ikuwow
ຊͷ֓ཁ • 2010ॳ൛ୈ1ൃߦ • ݁ߏްͯ͘ॏ͍ • PHPͷਓʹฉ͘ͱ͍͍ͩͨ࣋ͬ ͯΔ or ಡΜͩ͜ͱ͋Δ
• ରಡऀதڃऀҎ্ʢPHPͰ ৗతʹ։ൃΛ͖ͯͨ͠ਓ or ଞͷݴޠΛ͍͜ͳ͍ͯ͠Δ͕ PHPͷ͜ͱΛΑ͘Βͳ͍ਓʣ
ʮPHPCݴޠͰهड़͞Ε͍ͯ ΔͨΊɺCݴޠ͕Θ͔Βͳ͍ͱ ཧղ͢Δ͜ͱ͍͠Ͱ͠ΐ͏ʯ ʘ·͡Ͱʗ ʢୈҰষ ίϥϜʣ
࣍ • ୈ1෦ PHPͷ֓ཁ • ୈ2෦ PHPͷݴޠ༷ • ୈ3෦ ࣮ફWebΞϓϦέʔγϣϯ
• ୈ4෦ PHPηΩϡϦςΟ • ୈ5෦ ςΫχΧϧͳPHPͷ׆༻ ͕͜͜ ໘ന͍
ʮୈ3෦ ࣮ફWebΞϓϦέʔ γϣϯʯ͕͍͢͝ • ୈ6ষ ࣮ફWebΞϓϦέʔγϣϯ • ୈ7ষ ϑϨʔϜϫʔΫʹΑΔޮతͳ։ൃ •
ୈ8ষ ϛχϒϩάΞϓϦέʔγϣϯ։ൃ DBͬͨ؆୯ͳΞϓϦέʔγϣϯ࡞ MVCϑϨʔϜϫʔΫͷ࡞ ʂʁ ϑϨʔϜϫʔΫΛͬͨϛχϒϩά։ൃ ʂʁ
MVCϑϨʔϜϫʔΫΛ࡞Δ • ClassLoader, Controller, RouterΫϥεͳ ͲΛόονϦ࡞Γ͜Ή • ࣍ͷষͰϑϨʔϜϫʔΫΛར༻ͯ͠ϛχ ϒϩάΞϓϦέʔγϣϯΛ࡞Δ <?php
class ClassLoader { protected $dirs; public function register() { spl_autoload_register(array($this, 'loadClass')); } public function registerDir($dir) { $this->dirs[] = $dir; } public function loadClass($class) { foreach ($this->dirs as $dir) { $file = $dir . '/' . $class . '.php'; if (is_readable($file)) { require $file; return; } } } }
ͨΊʹͳΔ͜ͱ • ੜPHPͱϑϨʔϜϫʔΫͷ͕ؒΘ͔Δʂ => ϧʔςΟϯά͔Β֤छΦϒδΣΫτΛखΛಈ͔ ͠ͳ͕Β࡞Δ͜ͱͰMVCϑϨʔϜϫʔΫͷཧղ͕ ਂ·Δ • ॳ৺ऀΛͨ͠Ϩϕϧͷਓ͕ؒҧ͕͑ͪͳ༷Λ த৺ʹઆ໌͞Ε͍ͯΔʢ
‘0’ == ‘0.0’ ͕trueʹͳ ΔɺͳͲʣ
ͦͷଞΑ͍ͱ͜Ζ • ηΩϡϦςΟʹଟ͘ϖʔδΛׂ͍͍ͯΔ • php.iniͷσΟϨΫςΟϒҰཡ • PHPͷϏϧυΦϓγϣϯҰཡ —with-xml, —enable-soap •
Ҏ֎ͳݴޠ༷ʹͨ͠આ໌ ʢ ‘0’ == ‘0.0’ ͕trueʹͳΔɺͳͲʣ
ಡΉͱ͍͍ਓ Ͳ͔͜Ͱݟֶͨशۂઢ 1)1ͷ࣮ྗ ֶश࣌ؒ ͍֮ࣗͯ͠Δ࣮ྗ ࣮ࡍͷ࣮ྗ աڈʹʮPHP͙Β͍Ͱ͖·͢Αʯͱ ΄͍͍ͯͨࣗ͟ΛռΊɺਅͷPHPerΛࢦͨ͢ΊͷҰ
·ͱΊ • MVCϑϨʔϜϫʔΫΛ࡞Δষʹ • ࣗͷֶशϑΣʔζor࣮ྗʹݟ߹͍ͬͯΔͱ ຊʹ໘ന͍ຊ • ͜ΕΛखΛಈ͔͠ͳ͕ΒશͯಡΈ͖ͬͯཧղ ͨ͠ΒʮPHPͰ͖Δʯͱࣗ৴Λͬͯݴ͑Δ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠