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
プラットフォーム転換期におけるGitHub Copilot活用〜Coding agentがそれを加速するか〜 / Leveraging GitHub Copilot During Platform Transition Periods
aeonpeople
1
240
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
メルカリIBISの紹介
0gm
0
400
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
120
Android Audio: Beyond Winning On It
atsushieno
0
3.4k
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
3
360
roppongirb_20250911
igaiga
1
250
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
210
Snowflake×dbtを用いたテレシーのデータ基盤のこれまでとこれから
sagara
0
120
S3アクセス制御の設計ポイント
tommy0124
3
210
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
320
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Typedesign – Prime Four
hannesfritz
42
2.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Thoughts on Productivity
jonyablonski
70
4.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
Speed Design
sergeychernyshev
32
1.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How GitHub (no longer) Works
holman
315
140k
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