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
PHP8.0へのバージョンアップ始めました
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ryo takaya
December 08, 2022
0
730
PHP8.0へのバージョンアップ始めました
ryo takaya
December 08, 2022
Tweet
Share
More Decks by ryo takaya
See All by ryo takaya
軽量なスレッドとは?
ryotakaya
0
140
並行処理(超入門)
ryotakaya
0
13
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
950
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
4 Signs Your Business is Dying
shpigford
187
22k
The Curse of the Amulet
leimatthew05
1
8.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Believing is Seeing
oripsolob
1
58
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
It's Worth the Effort
3n
188
29k
Abbi's Birthday
coloredviolet
1
4.8k
30 Presentation Tips
portentint
PRO
1
220
Transcript
PHP8.0へのバージョンアップ始めました
自己紹介 ・高谷 遼 (たかや りょう) ・2020年11月にコネヒト株式会社に入社 ・バックエンドエンジニア(PHP) ・PHP歴1年半くらい
今日話すこと • PHP8.0のバージョンアップに向けて全体的な流れ • スムーズに作業を進められた要因 話さないこと • PHP8.0の下位互換や新機能の詳細な話し
PHPの各バージョンのサポート期間
REDチーム🍎 GREENチーム🍏 BLUEチーム🫐 PHP8.1アップデートチーム PHP8.0バージョンアップの開発体制 ・コネヒトはスクラム開発を採用していて、普段は3チームに別れてサービスを開発 ・それぞれのチームから1, 2人を代表者として選出してバージョンアップチームを結成 ・まずは各チームがメインで扱っているリポジトリを 8.0にバージョンアップする
🫐 🍏 🍎
バージョンアップに向けて走り出す • DockerのBaseImageをAlpineから変更した上でPHP8.0にできるかTRY ⚪ 候補 : Ubuntu, php-apache • 一旦断念🥺
⚪apacheなどの設定ファイルの修正など重そうで時間がかかりそう ⚪ PHPのサポート期間が切れてしまう • ひとまずPHPのアップデートを優先する事に
影響範囲の調査 • PHP7.4からPHP8.0の変更差分の調査 ⚪ https://www.php.net/manual/ja/migration80.php • 自分が担当するプロジェクトの影響範囲の調査 ⚪ PhpStormを使用して非互換性のコードがあるか調べる
担当プロジェクトのPHP7.4 -> PHP8.0へのバージョン ・バージョンアップによる非互換性のコードがほぼ無かった ⚪ 自分の担当したコードベースのPHPのコード量は約4万行(規模が大きくないプロジェク ト) ⚪ アプリケーションコードの変更・修正がほぼ無かった(600個以上の単体テストも10個以 下のエラー)
⚪ 非互換性が多く含まれるプロジェクトは修正、動作確認が大変そう... ⚪ 非互換性のコードさえなければアップデートは割と容易
実際に行った主な作業 • PHPライブラリのアップデート ⚪それに伴い使用している箇所のコードや単体テストの修正 • デッドコードの削除、リファクタリング • リグレッションテスト(一通りの正常系の動作確認)
スムーズに進められた要因 ・プロジェクト間の共通のモジュールの知見共有 ⚪ロギングやエラー通知のモジュールは各プロジェクトで共通のものを使用して いるので、修正箇所を共有して効率的にバージョンアップの作業が進められた。
今やっている事、困った事をこまめに投稿する
None
今後の展開 ・PHP8.1にあげきる ・PHP8.2にあげたい ・DockerのBaseImageを修正
ありがとうございました!