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
ryo takaya
December 08, 2022
0
700
PHP8.0へのバージョンアップ始めました
ryo takaya
December 08, 2022
Tweet
Share
More Decks by ryo takaya
See All by ryo takaya
軽量なスレッドとは?
ryotakaya
0
120
並行処理(超入門)
ryotakaya
0
12
Featured
See All Featured
Music & Morning Musume
bryan
46
6.9k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Docker and Python
trallard
46
3.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Rails Girls Zürich Keynote
gr2m
95
14k
The Pragmatic Product Professional
lauravandoore
36
7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Code Reviewing Like a Champion
maltzj
526
40k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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を修正
ありがとうございました!