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
920
UNIXという考え方
ikuwow
1
2.1k
みんなもMiddlemanで技術ブログ作って幸せになろう!
ikuwow
0
1k
PHPサイバーテロの技法 書籍紹介
ikuwow
0
1k
Other Decks in Programming
See All in Programming
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
6.1k
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
660
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
130
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
450
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
230
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
650
Heart of Swift Concurrency
koher
0
190
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
280
ALB ログから Trace を気合で繋げる技術
fohte
7
880
XHTMLが残したもの
yosuke_furukawa
PRO
2
680
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
820
Building Adaptive Systems
keathley
44
3.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
KATA
mclloyd
PRO
35
15k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to Talk to Developers About Accessibility
jct
2
540
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Documentation Writing (for coders)
carmenintech
77
5.5k
Odyssey Design
rkendrick25
PRO
2
800
How to Ace a Technical Interview
jacobian
281
24k
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Ͱ͖Δʯͱࣗ৴Λͬͯݴ͑Δ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠