Slide 1

Slide 1 text

毎年殺されるPHPとは何か FY24 Tech Talk 2024/6/18 10min うすゆき たくさんコメントください!!!

Slide 2

Slide 2 text

お前誰よ うすゆきです。PHPだけ、素人ではありません。 PHPerKaigi 2023 当日スタッフ PHPerKaigi 2024 ルーキーズLT登壇 ピクシブ株式会社 PHP製内製FWのリファクタ 株式会社luco PHP製新規APIの開発 カンファレンス お仕事

Slide 3

Slide 3 text

PHP 1995年登場のWeb向けインタプリタ言語です。

Slide 4

Slide 4 text

PHP 1995年登場のWeb向けインタプリタ言語です。 昔から「PHP is dead」と言われています。

Slide 5

Slide 5 text

PHP 昔から「PHP is dead」と言われています。 知の結晶である𝕏(旧Twitter)調べた結果... 1995年登場のWeb向けインタプリタ言語です。

Slide 6

Slide 6 text

PHP 昔から「PHP is dead」と言われています。 1995年登場のWeb向けインタプリタ言語です。

Slide 7

Slide 7 text

7 このスライドで伝えたいこと【結論】 1. なんとなくで判断しないで! PHPはレガシー。その情報の根拠は? 2. 成熟で多様なコミュニティは良い! 歴史あるけどオープンなコミュニティ

Slide 8

Slide 8 text

8 このスライドで伝えたいこと【結論】 この2つを伝えるための茶番です。 歴史ある色々な言語に言えそう。楽しんで聞いてください! 1. なんとなくで判断しないで! PHPはレガシー。その情報の根拠は? 2. 成熟で多様なコミュニティは良い! 歴史あるけどオープンなコミュニティ

Slide 9

Slide 9 text

なぜPHPか PHPに育てられたから 本資料はPHPへの愛を持って作られています。 「化石(PHP)がなんか喋ってるなぁ〜」のノリで聞いてね

Slide 10

Slide 10 text

もくじ 人間は育ててもらった言語を親だと思うんだよ(起) 想像を超えるPHP(承) モダンPHP(転) 超PHPerになろう(結) 0 1 2 3 まとめ 4 10

Slide 11

Slide 11 text

11 想像を超えるPHP 早速ですが、クイズです。

Slide 12

Slide 12 text

12 ①PHPが使われていないものはどれ 1. Facebook 2. メルカリ 3. pixiv 4. Slack 5. ウマ娘

Slide 13

Slide 13 text

13 ①PHPが使われていないものはどれ 1. Facebook(採用ページより) 2. メルカリ(採用ページより) 3. pixiv(採用ページより) 4. Slack(採用ページより) 5. ウマ娘(PHP Conference Japan 2022 の Proposalより) ごめんなさい。 全部PHP使われてます。

Slide 14

Slide 14 text

14 PHPって人気の言語だな〜〜!!

Slide 15

Slide 15 text

15 PHPの言語仕様、わたし、気になります!

Slide 16

Slide 16 text

16 ②PHP8.1の組み込み関数の数 発案:PHPer Tea Night★第三夜 「お前はPHPの標準関数の数を知っているか」 tadsan 1. 26 2. 71 3. 774 4. 3759 組み込み関数:初期環境でそのまま使えるやつ 例:count(), var_dump(),

Slide 17

Slide 17 text

17 ②PHP8.1の組み込み関数の数 発案:PHPer Tea Night★第三夜 「お前はPHPの標準関数の数を知っているか」 tadsan 1. 26 2. 71(Python 3.12の組み込み関数数) 3. 774 4. 3759(コア拡張以外も含めた組み込み関数)

Slide 18

Slide 18 text

18 多くね?????

Slide 19

Slide 19 text

19 どんな関数があるのか。

Slide 20

Slide 20 text

20 PHPにある関数の例 日の出や日の入りを計算する関数 date_sun_info(strtotime("2022-12-21"), 70.21, -148.51);

Slide 21

Slide 21 text

21 日の出の計算をどこでも呼べて すごいなぁ〜〜()

Slide 22

Slide 22 text

22 関数以外の仕様も見てみる

Slide 23

Slide 23 text

23 これってどうなると思います(~PHP7.4)?

Slide 24

Slide 24 text

24 暗黙的型変換(~PHP7.4) https://3v4l.org/dY3Go#v7.4.33

Slide 25

Slide 25 text

25 〜〜〜〜〜(気遣いすごいな)

Slide 26

Slide 26 text

26 暗黙的型変換(~PHP7.4)

Slide 27

Slide 27 text

27 暗黙的型変換(~PHP7.4) もちろんtrueです

Slide 28

Slide 28 text

28 他にもやばいやつ(~PHP7.4) 存在しない変数、 呼び出しても実行できます!

Slide 29

Slide 29 text

29 先ほどは4年前のPHP7.4の話...

Slide 30

Slide 30 text

もくじ 人間は育ててもらった言語を親だと思うんだよ(起) 想像を超えるPHP(承) モダンPHP(転) 超PHPerになろう(結) 0 1 2 3 まとめ 4 30

Slide 31

Slide 31 text

31 ③PHP8.3に無い型表現はどれ 1. Union型 2. 列挙型 3. True型 4. ジェネリクス

Slide 32

Slide 32 text

32 ③PHP8.3に無い型表現はどれ 1. Union型(PHP8.0~) 2. 列挙型(PHP8.1~) 3. True型(PHP8.2~) 4. ジェネリクス 1~3は言語組み込みの型なので、型の不一致で実行時にエラーが出ます。

Slide 33

Slide 33 text

33 PHP8.3のコード例

Slide 34

Slide 34 text

34 エンタープライズにありがちな構成例 1. PHPStanで型表現・静的解析 2. PHP-DIでDIコンテナ 3. PHPUnitでテスト 4. PHP-CS-Fixerでコード修正 5. (Swooleで非同期処理)

Slide 35

Slide 35 text

35 PHPStan(静的解析ライブラリ)でもっと表現豊かに ジェネリクス 条件付き戻り値型 範囲制約型

Slide 36

Slide 36 text

36 PHP製フレームワーク Bear.Sundayチュートリアルコード 範囲制約型

Slide 37

Slide 37 text

37 PHP製フレームワーク Bear.Sundayチュートリアルコード 範囲制約型 DIできるような型定義 抽象に依存 引数の型定義 綺麗な名前空間

Slide 38

Slide 38 text

38 モダンな言語の構文も多数!

Slide 39

Slide 39 text

39 その他 mapや無名関数、もちろんあります。

Slide 40

Slide 40 text

40 その他 matchもできます。

Slide 41

Slide 41 text

41 その他 エルビス演算子?:、宇宙船演算子<=>とかも soupsをname順にソート、同じ名前ならyear順にソート

Slide 42

Slide 42 text

42 モダンな言語や型もアツい! (PHP9も楽しみ...)

Slide 43

Slide 43 text

もくじ 人間は育ててもらった言語を親だと思うんだよ(起) 想像を超えるPHP(承) モダンPHP(転) 超PHPerになろう(結) 0 1 2 3 まとめ 4 43

Slide 44

Slide 44 text

44 超PHPerになろう(結)

Slide 45

Slide 45 text

45 ④今年開催のPHPカンファレンスの数は? 1. 1 2. 3 3. 5 4. 8 勉強会や企業開催のイベントは除きます。カンファレンスと名前の付くもの OR PHPerKaigiを対象。

Slide 46

Slide 46 text

46 ④今年開催のPHPカンファレンスの数は? 1. 1 2. 3 3. 5 4. 8 勉強会や企業開催のイベントは除きます。カンファレンスと名前の付くもの OR PHPerKaigiを対象。

Slide 47

Slide 47 text

47 今、PHPがアツい

Slide 48

Slide 48 text

48 今、PHPがアツい!! 1月 PHPカンファレンス北海道 2024 2月 PHPカンファレンス関西 2024  ←6年ぶりの開催 3月 PHPerKaigi 2024 (東京)     ←iOSDC Japanと同じ主催者 4月 PHPカンファレンス小田原 2024 ←初開催 5月 PHPカンファレンス香川 2024  ←初開催 6月 PHPカンファレンス福岡 2024  ←今週末開催! 主催は24新卒! 9月 PHPカンファレンス沖縄 2024 12月 PHPカンファレンス Japan 2024(東京)  ←25回目(2000年から毎年開催 )

Slide 49

Slide 49 text

49 PHP界隈、あったけぇ〜〜

Slide 50

Slide 50 text

もくじ 人間は育ててもらった言語を親だと思うんだよ(起) 想像を超えるPHP(承) モダンPHP(転) 超PHPerになろう(結) 0 1 2 3 まとめ 4 50

Slide 51

Slide 51 text

51 まとめ 1. なんとなくで判断しないで! 2. 成熟で多様なコミュニティは良い! 【陳腐】PHPは型がない、PHPは遅い 【混同】PHPはレガシー、PHPは書きにくい 【成熟】言語に歴史あらばサービスに歴史あり 【多様】学生から年長者までいっぱい

Slide 52

Slide 52 text

52 ありがとうございました!