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
CarbonとMutableオブジェクトの話
Search
Ryo Tomidokoro
December 26, 2018
Technology
0
760
CarbonとMutableオブジェクトの話
CarbonでMutableとかImmutableの概念を覚えようねの話。
Ryo Tomidokoro
December 26, 2018
Tweet
Share
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-not-bad
hanhan1978
8
13k
どうすると生き残れないのか/how-not-to-survive
hanhan1978
17
14k
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
190
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
8
3k
集中して作業する技術/how_to_work_deeply
hanhan1978
65
51k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
10k
ADRを一年運用してみた/adr_after_a_year
hanhan1978
8
4.4k
B+木入門:PHPで理解する データベースインデックスの仕組み/b-plus-tree-101
hanhan1978
5
5.5k
ADRを一年運用してみた/our_story_about_adr
hanhan1978
5
2.4k
Other Decks in Technology
See All in Technology
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
160
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
890
KotlinConf 2025_イベントレポート
sony
1
140
MagicPod導入から半年、オープンロジQAチームで実際にやったこと
tjoko
0
110
組織を巻き込む大規模プラットフォーム移行戦略 〜50+サービスのマルチリージョン・マルチプロダクト化で学んだステークホルダー協働の実践〜 / Platform migration strategy engaging all stakeholders
toshi0607
2
180
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
460
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
200
Bedrock で検索エージェントを再現しようとした話
ny7760
1
110
S3アクセス制御の設計ポイント
tommy0124
3
210
メルカリIBISの紹介
0gm
0
330
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
How to train your dragon (web standard)
notwaldorf
96
6.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Six Lessons from altMBA
skipperchong
28
4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Embracing the Ebb and Flow
colly
87
4.8k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Transcript
CarbonͱMutableΦϒδΣΫτͷ 1)1ษڧձ
໊લॴ྄ 3ZP5PNJEPLPSP ৬ۀ8FC"QQMJDBUJPO&OHJOFFS ॴଐ*OOPWBUPS+BQBO*OD ࡶ༻୲ झຯόεέοτϘʔϧ؍ઓ
Carbonͱʁ
$BSCPOͱʁ Carbon - A simple PHP API extension for DateTime.
DateTimeΫϥεͷAPI֦ு IUUQTDBSCPOOFTCPUDPN
$BSCPOͱʁ ศར ײతͰ͔Γ͍͢ ๛ͳAPIͱυΩϡϝϯτ
MutableΦϒδΣΫτͱʁ
.VUBCMFΦϒδΣΫτͱʁ MutableΦϒδΣΫτ ͦͷঢ়ଶΛม͑Δ͜ͱ͕ग़དྷΔΦϒδΣΫτ ImmutableΦϒδΣΫτ ͦͷঢ়ଶΛม͑Δ͜ͱ͕ग़དྷͳ͍ΦϒδΣΫτ ࢀর) Πϛϡʔλϒϧ - Wikipedia |
https://ja.wikipedia.org/wiki/Πϛϡʔλϒϧ
ຊͷେࣄͳςʔϚ
ຊͷॏཁࣄ߲ 1. CarbonΛ௨ͯ͡MutableɺImmutableΛ֮͑Α͏ ಛʹImmutableͷ֓೦ͱͯେ 2. CarbonͷίʔυϨϏϡʔྗUP Carbon࣌ʹةݥͳίʔυΛੜΈग़͢ ৯͍ࢭΊ·͠ΐ͏ʂ
ຊͷॏཁࣄ߲ ͔͠͠ɺී௨ʹίʔυྫΛಡΜͰ͖ΔͷͰ… ΫΠζܗࣜͰίʔυϨϏϡʔͯ͠Έ·͠ΐ͏ʂ
CarbonΫΠζ
$BSCPOΫΠζ A܅usersςʔϒϧʹొ͞ΕͨϢʔβσʔλͷத ͔Βɺ࠷ۙ̏ϲ݄Ҏʹొ͞ΕͨϢʔβσʔλΛ நग़͢ΔॲཧΛ࡞Δ͜ͱʹͳΓ·ͨ͠ɻ ͔͠͠ɺA܅͕࡞ͨ͠ϓϩάϥϜʹ͕͋ͬ ͯਖ਼͘͠ϢʔβσʔλΛநग़Ͱ͖·ͤΜͰͨ͠ɻ
$BSCPOΫΠζ ࣍ͷίʔυͷԿߦʹ͕͋ΔͰ͠ΐ͏͔ʁ ͦͯ͠ɺͦΕԿނͰ͠ΐ͏͔ʁ
$BSCPOΫΠζ ࣮ࡍͷϓϩάϥϜʢൈਮʣ 1. Կߦ͕ʁ 2. Կ͕ʁ
CarbonΫΠζ - ղฤ
$BSCPOΫΠζ 1. Կߦ͕ʁ -> 14ߦ 2. Կ͕ʁ -> subMonthϝιουͰ$todayࣗମมߋ͞Εͯ͠·͏
CarbonΫΠζ - ൣղ1
$BSCPOΫΠζ copy()ϝιουΛ͏ $todayͷෳΛ࡞Δ͜ͱͰɺ$todayࣗମͷมߋΛආ͚Δ
CarbonΫΠζ - ൣղ2
$BSCPOΫΠζ Carbon2 CarbonImmutableͳΒɺ$todayImmutableͳͷͰෆม
$BSCPOΫΠζ Carbon2 AliasΛ͑ɺϓϩάϥϜͷมߋແ͠ɻ
·ͱΊ
·ͱΊ ɾCarbonѱ͘ͳ͍ ɾAPI֦ுͷੑ࣭Λ͖ͪΜͱѲ͢Δ͜ͱ ɾMutable, ImmutableΦϒδΣΫτΛ֮͑Α͏
͓·͚
$BSCPOͱ$BSCPO MutableΦϒδΣΫτ ImmutableΦϒδΣΫτ ɾCarbon1ܥ ɾDateTimeΫϥεͷ֦ுAPI ɾCarbon2ܥ ɾDateTimeImmutableΫϥεͷ֦ுAPI
%BUF5JNF*NNVUBCMFΫϥε ࢀর) PHPϚχϡΞϧ | http://php.net/manual/ja/class.datetimeimmutable.php