Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
外部委託の立場から半ば強引にLaravelを導入した話
Yudai Shinnoki
September 13, 2017
Programming
0
480
外部委託の立場から半ば強引にLaravelを導入した話
Laralab vol.1 (
https://laralab.connpass.com/event/65160/
) で発表させていただいた資料です。
Yudai Shinnoki
September 13, 2017
Tweet
Share
More Decks by Yudai Shinnoki
See All by Yudai Shinnoki
AWS “““触って””” みた
shinnoki
0
34
体に馴染む開発環境 ~ghqはいいぞ~
shinnoki
0
590
組織戦略と GraphQL、Hasura
shinnoki
2
3.2k
Hasura とは何者か メリット・デメリット
shinnoki
9
1.6k
TypeScript と React Hooks と GraphQL のステキな関係性
shinnoki
2
320
リリース前に知りたいネイティブのあれこれ
shinnoki
0
910
Other Decks in Programming
See All in Programming
WindowsコンテナDojo : 第1回 Visual StudioでWindowsコンテナアプリ作成
oniak3ibm
PRO
0
320
Micro Frontend Routing – Solutions for mature applications - iJS 04/2022
michaelzikes
0
150
ebpfとWASMに思いを馳せる2022 / techfeed-conference-2022-ebpf-wasm-amsy810
masayaaoyama
0
430
How useEvent would change our applications
koba04
1
1.3k
あなたの会社の古いシステム、なんとかしませんか?~システム刷新から考えるDX化への道筋とバリエーション~/webinar20220420-grapecity
grapecity_dev
0
130
よりUXに近いSLI・SLOの運用による可用性の再設計
kazumanagano
3
460
확장 가능한 테라폼 코드 관리 (Scalable Terraform Code Management)
posquit0
1
300
Develop your CI tools
xgouchet
2
180
Jakarta EE 10 is Coming Your Way
ivargrimstad
0
1.9k
Modern Web Apps with Spring Boot, Angular & TypeScript
toedter
12
14k
2022 Android Training
mixi_engineers
1
630
roadmap to rust 2024
matsu7874
1
570
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
14
34k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
38
12k
Optimizing for Happiness
mojombo
365
63k
Pencils Down: Stop Designing & Start Developing
hursman
112
9.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
37
3.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Teambox: Starting and Learning
jrom
121
7.6k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
No one is an island. Learnings from fostering a developers community.
thoeni
9
1.1k
Atom: Resistance is Futile
akmur
255
20k
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Ҡߦʹ͍ͭͯͷใ͕
͋ͬͨΒڭ͍͑ͯͩ͘͞