PHPカンファレンス2019に行ってきた(スライドまとめ)

2019年12月1日(日)、今年も蒲田駅近くにある大田区産業プラザ PiOにて開催された、PHPカンファレンス2019に行ってきました。

f:id:YusukeOno:20191201204709j:plain
PHPカンファレンス2019

phpcon.php.gr.jp

オープニングを飾るのは今年も廣川さん「PHPの今とこれから2019」

https://youtu.be/11s7aAlDKAQ?t=2150

ちょうど、数日前にPHP7.4がGAになりました。そして、遡ること2000年にもこのPHPカンファレンスでは、PHP4の紹介がこの大田区産業プラザで行われていました。今やサーバサイドプログラミングの多くはPHP言語で構築されています。

PHP5.3/5.4で現代的なスクリプト言語になり、性能面でもPHP7ではより高速化されました。次のPHPは、7.5ではなく、8になる予定です。おそらく2012年の9月あたりがターゲットになっています。JITやunionが搭載される予定です。

PHP 5.xは2割くらい、PHP 7.xは7割くらいでしょうか。(去年に比べて、PHP5.xは減った印象)PHP 7.0, 7.1についてもEOLを迎えました。各ディストリビューターのバックデートもありますが、新しいバージョンに移行することを推奨します。

PHP 7.4は若干の性能改善しているようです。(ベンチマークでは15%という数値が出ていますが、体感するほどではなさそうですが)また、PHP 7.4はクラスプロパティの型指定のチェックを厳密にできるようになりました。(あらかじめstrict_types=1で宣言する必要があります)

また、PHP 7.4ではOpCacheでキャッシュをロードすることによって起動時における性能を改善しています。

さらに、FFI(Foreign Function Interface)により外部機能の利用が容易になったり、配列スプレッド構文が利用可能になったり、アロー関数(ショートクロージャー)が利用可能になりました。

構文関係では、「??=」である変数が設定されていない場合に代替文字列を代入可能となりました。他は、mb_str_split()関数や、数値リテラルセパレータ(数値のカンマ区切り)、「+」や「.」の優先順位が変更になりました。

PHP 8ではJITが採用予定です。現在はx86をサポートし、将来はARMもサポート予定です。PHP 8では実行速度が大幅改善(2倍ほど高速)するとのベンチマークですが、実用アプリではそれほどでも無いかもしれません。JITコンパイルに時間がかかる点も見過ごせません。もちろん、それは改善しようとしています。

Rusmas語録「PHPは歯ブラシのようなもの。」

 

あと、私が聴講したのは、成瀬さんの「思想と理想の果てに -- クリーンアーキテクチャのWEBフレームワークを作ろう 」と、PHPUnitの作者でもあるSebastian Bergmann氏の「PHPUnit: Past, Present and Future」と、徳丸先生の「オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法」。他にも、興味のあるセッションもありましたが、YouTubeでの配信記録をチェックしたいと思います。

現地会場では、Wifiが完備されており、暖房も適度に効いているので非常に快適ですよ。ただ、現地で投影されるスライドはやや小さめなので、近眼の方はPCやタブレットで事前に公開されたスライドをチェックすると良さげです。

以下、スライド集です。

2019/12/01 11:00〜 Track 3 (4F コンベンションホール 鶯) 25分枠

Chatworkのシステムから学ぶレガシーなPHPの限界とレガシーからの脱却(村上 俊介さん)

speakerdeck.com

2019/12/01 11:00〜 Track 4 (4F コンベンションホール 梅) 60分枠

MVCにおける「モデル」とはなにか PHP Conference Japan 2019(天重誠二さん)

speakerdeck.com

2019/12/01 11:00〜 Track 6 (3F 特別会議室 - サテライト: 6F D会議室) 60分枠

Hash, Cryptography, and PHP(Peterさん)

slides.com

2019/12/01 11:35〜 Track 3 (4F コンベンションホール 鶯) 25分枠

PHPからgoへの移行で分かったこと(樋口雅拓さん)

speakerdeck.com

2019/12/01 13:00〜 Track 1 (1F 大展示ホール) 60分枠

思想と理想の果てに -- クリーンアーキテクチャのWEBフレームワークを作ろう (成瀬 允宣さん)

nrslib.com

2019/12/01 13:00〜 Track 2 (2F 小展示ホール) 25分枠

PHP 開発環境で使う Kubernetes(新原 雅司さん)

speakerdeck.com

2019/12/01 13:00〜 Track 3 (4F コンベンションホール 鶯) 25分枠

「弁護士ドットコム」を作り続ける開発組織について(狩野 秀明さん)

speakerdeck.com

2019/12/01 13:00〜 Track 5 (1F AB会議室 - サテライト: 6F C/E会議室) 25分枠

PHPerのためのテストコード入門 (02 / 大津 和槻 さん)

speakerdeck.com

2019/12/01 13:35〜 Track 3 (4F コンベンションホール 鶯) 25分枠

改善失敗から学ぶ、レガシープロダクトに立ち向かうチーム作り。 (杉山 祐一さん)

speakerdeck.com

2019/12/01 13:35〜 Track 5 (1F AB会議室 - サテライト: 6F C/E会議室) 25分枠

Composerって何?どう動くの?読んでみました! (きんじょうひでき さん)

speakerdeck.com

2019/12/01 14:10〜 Track 2 (2F 小展示ホール) 60分枠

Webサービスのトラブルの現場 ~ Webサービスの今と昔 ~(soudaiさん)

speakerdeck.com

2019/12/01 14:10〜 Track 4 (4F コンベンションホール 梅) 25分枠

知見のない技術スタックをプロダクション導入するエンジニアの導入(東口和暉)

speakerdeck.com

2019/12/01 14:10〜 Track 6 (3F 特別会議室 - サテライト: 6F D会議室) 25分枠

5ヶ月でカバレッジを20%から90%にした話(吉田あひる)

speakerdeck.com

2019/12/01 14:45〜 Track 3 (4F コンベンションホール 鶯) 25分枠

脆弱性から学ぶWebセキュリティ(バーチーさん)

speakerdeck.com

2019/12/01 14:45〜 Track 5 (1F AB会議室 - サテライト: 6F C/E会議室) 25分枠

Zend VMにおける例外の実装(hnwさん)

www.slideshare.net

2019/12/01 14:45〜 Track 6 (3F 特別会議室 - サテライト: 6F D会議室) 25分枠

「CPUとは何か」をPHPで考える(長谷川智希さん)

speakerdeck.com

2019/12/01 15:20〜 Track 1 (1F 大展示ホール) 60分枠

オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)(徳丸浩さん)

www.slideshare.net

2019/12/01 15:20〜 Track 2 (2F 小展示ホール) 60分枠

REST 6+4の制約
(郡山昭仁さん)

speakerdeck.com

2019/12/01 15:20〜 Track 3 (4F コンベンションホール 鶯) 25分枠

このPHP QAツールがすごい!2019(sasezakiさん)

www.slideshare.net

2019/12/01 15:20〜 Track 5 (1F AB会議室 - サテライト: 6F C/E会議室) 25分枠

PHPを学ぶということ(岸田健一郎さん)

speakerdeck.com

2019/12/01 16:30〜 Track 1 (1F 大展示ホール) Lightning Talks

Laravel + Nuxt.js + FirebaseでDXと開発コストを意識したSPA開発(カンボ@沖縄さん)

speakerdeck.com

2019/12/01 16:40〜 Track 1 (1F 大展示ホール) Lightning Talks

PHPでgRPCってどこまでいけるの? (株式会社サイバーエージェント 白井 英さん)

speakerdeck.com

2019/12/01 16:45〜 Track 1 (1F 大展示ホール) Lightning Talks

PHP-CS-FixerをIDEに取り込ませてPSRを強制する開発スタイル(sogaohさん)

PHP-CS-FixerをIDEに取り込ませてPSRを強制する開発スタイル

2019/12/01 16:50〜 Track 1 (1F 大展示ホール) Lightning Talks

レガシーコードでビジュアルリグレッションテストをやってみた(阿波連 智恵さん)

speakerdeck.com

2019/12/01 17:05〜 Track 1 (1F 大展示ホール) Lightning Talks

設計文化のないチームに文化を広めたが冴えない一手で混沌を招いた話を聞いてほしい(しろぐちゆうま さん)

speakerdeck.com

2019/12/01 17:20〜 Track 1 (1F 大展示ホール) Lightning Talks

余裕を生み出すコードレビュー(高野福晃さん)

speakerdeck.com