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
0
710
外部委託の立場から半ば強引に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
130
体に馴染む開発環境 ~ghqはいいぞ~
shinnoki
0
1.8k
組織戦略と GraphQL、Hasura
shinnoki
2
4.8k
Hasura とは何者か メリット・デメリット
shinnoki
10
2.9k
TypeScript と React Hooks と GraphQL のステキな関係性
shinnoki
2
510
リリース前に知りたいネイティブのあれこれ
shinnoki
0
1.5k
Other Decks in Programming
See All in Programming
チームをチームにするEM
hitode909
0
450
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
410
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
4
730
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
1k
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
210
CSC307 Lecture 01
javiergs
PRO
0
670
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
520
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
160
Vibe codingでおすすめの言語と開発手法
uyuki234
0
170
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
1k
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
5.2k
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
47
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
A Soul's Torment
seathinner
4
2.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
230
sira's awesome portfolio website redesign presentation
elsirapls
0
110
Building Adaptive Systems
keathley
44
2.9k
Leo the Paperboy
mayatellez
3
1.3k
Deep Space Network (abreviated)
tonyrice
0
33
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
77
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
50
Code Review Best Practice
trishagee
74
19k
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Ҡߦʹ͍ͭͯͷใ͕
͋ͬͨΒڭ͍͑ͯͩ͘͞