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
外部委託の立場から半ば強引にLaravelを導入した話
Search
Yudai Shinnoki
September 13, 2017
Programming
730
0
Share
外部委託の立場から半ば強引にLaravelを導入した話
Laralab vol.1 (
https://laralab.connpass.com/event/65160/
) で発表させていただいた資料です。
Yudai Shinnoki
September 13, 2017
More Decks by Yudai Shinnoki
See All by Yudai Shinnoki
AWS “““触って””” みた
shinnoki
0
140
体に馴染む開発環境 ~ghqはいいぞ~
shinnoki
0
1.9k
組織戦略と GraphQL、Hasura
shinnoki
2
4.8k
Hasura とは何者か メリット・デメリット
shinnoki
10
2.9k
TypeScript と React Hooks と GraphQL のステキな関係性
shinnoki
2
520
リリース前に知りたいネイティブのあれこれ
shinnoki
0
1.5k
Other Decks in Programming
See All in Programming
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
580
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.5k
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
New "Type" system on PicoRuby
pocke
1
450
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
140
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
2
300
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
TSKaigi 2026 TypeScriptバックエンドのオブザーバビリティ戦略 — Datadog × NestJSの実践
taiseiyamamotoan
2
280
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
150
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
100
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
260
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.4k
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
GitHub's CSS Performance
jonrohan
1033
470k
The Language of Interfaces
destraynor
162
27k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Visualization
eitanlees
152
17k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Typedesign – Prime Four
hannesfritz
42
3.1k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
400
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Curious Case for Waylosing
cassininazir
1
370
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
190
Transcript
֎෦ҕୗͷཱ͔Β ڧҾʹLaravelΛಋೖͨ͠ LaraLab vol.1 2017/09/13 @shibuya 21cafe
Yudai Shinnoki @konoki_nannoki Freelance Engineer ͓ͳҊ࣮݅ PHPɺΠϯϑϥɺAndroid(Java) ษڧத SwiftɺReact Native
࠷ۙͷڵຯ Architecting on AWS 21ສԁ+੫ϋʔυϧ͕ߴ͍…
Brush-UPֶͼ • LaravelΛͬͨγεςϜΛ9/4ʹެ։͠·ͨ͠ https://www.brush-up.jp
ൿͷλϨ • PHP 5.3 • MySQL 5.1 • Smarty
ൿͷλϨ • PHP 5.3 • MySQL 5.1 • Smarty •
Shift-JISͱ૬ੑ͕ѱ͘ɺ{literal}Ͱ ғΘͳ͍ͱΤϥʔʹͳͬͨΓ͢Δ จࣈίʔυShift-JIS
ൿͷλϨ • PHP 5.3 • MySQL 5.1 • Smarty •
Shift-JISͱ૬ੑ͕ѱ͘ɺ{literal}Ͱ ғΘͳ͍ͱΤϥʔʹͳͬͨΓ͢Δ • όʔδϣϯཧ͞Ε͍ͯͳ͍ • ͱ͜ΖͲ͜Ζʹྺ࢙Λײ͡ΒΕΔ • CentOSͳͷʹ/user/local/apache2ͷ ઈରύε͕ϋʔυίʔυ͞ΕͯͨΓ͢Δ จࣈίʔυShift-JIS
None
γεςϜߏ • આಘͷ͠қ͔͞ΒɺLaravel 5.1 LTS Λબ • PHP 7.0 (7.1͡Όͳ͍ཧ༝ಛʹແ͍)
• Laravel 5.5 LTS ͕ 8/30 ʹϦϦʔε • طଘγεςϜ͔Βஈ֊తʹҠߦ • nginxͰURL͝ͱʹϦόʔεϓϩΩγ • DBεΩʔϚ͕มΘΔͱطଘγεςϜͷमਖ਼ ඞཁʹͳΔͷͰɺطଘγεςϜ͕ඞཁͳ͘ ͳ͔ͬͯΒDBΛݟ͢
্࣮ͷ՝ ① طଘDBͱͷ࿈ܞ
EloquentϞσϧͷ࣮ • protected $table • ໋໊نଇʹԊ͍ͬͯͳ͍߹ඞਢ • protected $primaryKey •
Model::whereΛ͏͚ͩͩͬͨΒ࣮ෆཁ • relationを考えると設定しておいたほうが無難 • const CREATED_AT, const UPDATED_AT • ͲͪΒෆཁͳΒ public $timestamps = false; • updateͷΈෆཁͳΒ public function setUpdatedAt($value) { }
ෳछྨͷEloquentϞσϧͰϧʔϓ͍ͨ͠ • Illuminate\Database\Eloquent\Collectionʹ ෳclassΛಥͬࠐΜͰͳ͍ • EloquentϞσϧʹڞ௨ͷΞΫηαʔΛ࣮͢Δ • has-Oneͳ͕ؔଟஈʹͳ͍ͬͯΔ߹ ҰஈʹͳΔΑ͏ʹΞΫηαʔͰΤΠϦΞε ͓ͯ͘͠ͱUndefined
ErrorΛҙࣝ͠ͳ͍ͰࡁΉ
্࣮ͷ՝ ② Shift-JISରԠ
/config/database.php ͷจࣈίʔυઃఆ • DBͷจࣈίʔυΛແࢹͯ͠ ’charset’ => ’utf8’ • ͨͿΜ SET
NAMES utf8 ͱಉ͡ޮՌ • varcharͰ͏·͍͕͘͘blobͰจࣈԽ͚͢Δ • ૉʹ’charset’ => ’sjis’ • ιʔεUTF8ʹ͍ͨ͠ͷͰɺ EloquentϞσϧ͔ΒAttributeऔಘ࣌ʹม • Illuminate\Database\Eloquent\ModelΛ ܧঝͨ͠ abstract class SjisBaseModel Λ࣮ͯ͠ڞ௨ॲཧΛॻ͘ํ
None
public function getAttribute($key) ͷ override • ͯ͢ͷΞΫηαʔʹڞ௨ͳॲཧΛॻ͚Δ • ݸผʹΞΫηαʔ͕͋Δ߹ͦͷޙʹݺΕΔ •
getAttribute ʹSJIS->UTF8มΛॻ͘߹ getFooAttribute SJISͰฦ͢ඞཁ͕͋Δ(ʂ)
public function getAttribute($key) ͷ override • ͯ͢ͷΞΫηαʔʹڞ௨ͳॲཧΛॻ͚Δ • ݸผʹΞΫηαʔ͕͋Δ߹ͦͷޙʹݺΕΔ •
getAttribute ʹSJIS->UTF8มΛॻ͘߹ getFooAttribute SJISͰฦ͢ඞཁ͕͋Δ(ʂ) • protected function getAttributeFromArray Λ override ͢Δ͜ͱͰDB͔Βऔಘͨ͠σʔλ ͷΈΛมͰ͖ͨ
None
ݸਓతʹ ͍͍ͱײͨ͡ͱ͜Ζ
BladeʹૉͷPHPίʔυ͕ॻ͚Δ • ࠔͬͨΒͱΓ͋͑ͣ<?php ?> Ͱॻ͚͍͍ • ίϯϙʔωϯτͬΆ͘@include Ͱ͖Δ
BladeʹૉͷPHPίʔυ͕ॻ͚Δ • ࠔͬͨΒͱΓ͋͑ͣ<?php ?> Ͱॻ͚͍͍ • ίϯϙʔωϯτͬΆ͘@include Ͱ͖Δ ͪΐͬͱෳࡶͳॲཧ ͉
ςϯϓϨʔτ
ιʔείʔυ͕͍͍͢ʢؾ͕͢Δʣ • PHPStorm Ͱߋʹշద • ʮLaravelɹPHPStormʯͱ͔Ͱݕࡧ͢Δͱ ηοτΞοϓͷใ͕Ͱͯ͘Δ • ܕએݴΛ͏ͱΰϦΰϦͱิͯ͘͠ΕΔ •
ઌड़ͷgetAttributeFromArray ͜ͷ͓ӄͰؾ͚ͮͨ
·ͱΊ • ্࣮ͷ੍͕ଟ͍߹Ͱɺ LaravelͳΒॊೈʹରԠͰ͖Δͱײͨ͡ • DBͷݟ͍ͩ͠ͿָʹͳΓͦ͏ • Laravel 5.5 LTSҠߦʹ͍ͭͯͷใ͕
͋ͬͨΒڭ͍͑ͯͩ͘͞