Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
技術書紹介 パーフェクト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
930
UNIXという考え方
ikuwow
1
2.1k
みんなもMiddlemanで技術ブログ作って幸せになろう!
ikuwow
0
1k
PHPサイバーテロの技法 書籍紹介
ikuwow
0
1k
Other Decks in Programming
See All in Programming
Moscow Python Meetup №112. Как поселить ИИ агентов в event driven архитектуре
moscowdjango
PRO
0
110
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
160
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.8k
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
110
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
730
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
350
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
360
Distance field of Julia set
kinakomoti321
0
300
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
970
How STYLIGHT went responsive
nonsquared
100
6.4k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Prompt Engineering for Job Search
mfonobong
0
580
Skip the Path - Find Your Career Trail
mkilby
1
290
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
The SEO Collaboration Effect
kristinabergwall1
1
620
We Are The Robots
honzajavorek
0
440
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Reality Check: Gamification 10 Years Later
codingconduct
0
2.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Ͱ͖Δʯͱࣗ৴Λͬͯݴ͑Δ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠