PHPerKaigi2023参加レポ〜iwillblog〜

タイムテーブルはこちら。

https://fortee.jp/phperkaigi-2023/timetable

PHPerKaigi2023の私的状況

  • Day0、Day1 オンライン参加
  • Day2 オフライン参加 (子供を預けることに成功、こだまグリーン車早割の往復、懇親会もあるので一泊)
  • ペンライト羨ましくて、次はLTしたいと思いました。
  • ちょうぜつ本が当たった😍(既に購入済み)
  • 今年もノベルティ最高!
    • GMOさんの湯呑み良き(写真に入れ忘れた)
    • 顔パック、遠征先で化粧水がわりになったのでありがたいです!

Day0

#### PHPUnit 10 概論

https://github.com/sebastianbergmann/phpunit/blob/10.0.0/ChangeLog-10.0.md

ChangeLogをみてもRemovedが多いので、安易にupdateしにくいなとい印象でした。

差別的用語をなくした件を知って、最近whiteListという変数を作ってしまった自分を反省しました!参考にさせてもらいます!

  • blackList -> ExcludeList
  • whiteList -> filter

また、デフォルトでDeprecation, Notices, Warnings, Skippedの件数を表示しなくなるっていうのは地味に嫌なので、phpunit.xmlの設定する必要があるなということを忘れないようにしたいなと思いました。

DataProviderはよく使ってるので、仕様変更に対応しなければ 🤯

以下の条件に当てはまるDataProviderが非推奨になりました。
● staticではない
● publicではない
● 引数を必要とする
逆にいえば、以下のような形式のDataProviderを推奨しているということですね。
public static XXX() {} 

Day1

#### Composerを「なんとなく使う」から「理解して使う」になる

はい!なんとなく使ってました。思ってた通りで安心してましたが、パッケージ更新したい時にupdate?require?となることがあるのでこの表はめちゃ重宝させてもらいます🙇🙇🙇

  • composer require {package-name}composer.json/composer.lock共に更新される
  • composer update {package-name}→あくまでもcomposer.jsonのバージョン指定範囲内で更新する => composer.lockのみ更新
  • =>パッケージ更新したい時、現在のcomposer.jsonのバージョン指定じゃ希望のバージョンにならない時は、requireする必要ある。現在のcomposer.jsonのバージョン指定内の更新で良いならupdate
  • 個人的コマンドメモ
// 何が更新されるかを事前にチェックすることができる
$ composer update --dry-run

// composer.jsonのrequireにないのに依存してcomposer.lockにあるパッケージはどこ依存だ?ってときに使える 
$ composer depends {package-name}

 

Day2

現地参加の特権、アンカンファレンス 🙌

郡山さんのおもしろかった〜

https://alps-asd.github.io/ つかって設計してみたい!

 

### PHPの最高機能、配列を捨てよう!!

現地では裏のそーだいさんの見て、うずらさんのはYouTubeで視聴しました!

たしかにreturn type arrayの時、どんな配列なのか気になって深くコードを読むみたいなのありがちで時間取られちゃうのでもったいないです。

DTOを作ってその配列にするは結構やってたので、安心しました!

懇親会

何年振りかのお酒飲みながらの懇親会たのしかったです^^

 

PHPerKaigi2021に参加しました!

メモな感じですが投稿します!(iwillblogって書いちゃったので…)
はじめてのニコニコ動画使用でした(会員登録はいつのまにかしてた)

景品が豪華すぎて当たった方うらやましいです😭

\スタッフ、スピーカーのみなさま、ありがとうございました🙇‍♂️/

勉強させてもらったセッション一覧

他にも見たかったものやもう一回見たいセッションがいっぱいあるので、アーカイブ待ってます!

 

各セッションのメモ

テスト放送

[初心者向け] 一からフレームワークを作るところを見せる

  • リアルタイムでコードを書いているところが見れて良かった。
  • ディレクトリトラバーサル攻撃に気をつけよう。
  • フレームワーク作りたくなった、作ろう。(iwillframework)

Symfonyラウンドテーブル(よろず相談会)

  • symfony/pantherすごそう。GithubActionで動いたことが謎らしいが、なんで謎なのかさえも私はわかっていない。。。

PHPで学ぶ、セッションの基本と応用

  • Cookieの仕様(RCF6265)ちゃんと読もう

PHP8になった今の時代に、PHPの「エラー」「例外」そして「Error」をおさらいしておこう

  • 例外は独自に定義しよう。(無駄なサードパーティの露呈を防ぐためにも)

@call_user_func(関数ではない)の使いこなしテクと(ルーレッ…

  • このbotを使った遊び方を理解した
  • twitterの検索例「from:call_user_func url:gitee」
  • リポジトリのnamespace抑える為だけにリポジトリ作る人もいるらしい、ドメインみたいな感じ(?)私もしようかな。

そのコード、フレームワークの外でも動きますか?

  • LaravelSymfonyへの移行を見れたのが良かった
  • やっぱり例外は独自に定義しよう。(2回目)
  • LaravelのModelはSymfonyのEntity
  • Symfonyのお作法で404エラーはBadRequestHttpException
  • Vanilla PHPを書こう!
  • Symfony、Laravel、CakePHPどんなPHPフレームワークからも使えるPHPが最高🍺

なるせ先生のPHP学~PHP8新機能スペシャル~ (ちょっとだけ)

  • 移動中スマホからちょっと見れたが動画クオリティが凄かった。
  • しばらくコード書いておらず、初耳学ばかりで勉強になった。
  • ちゃんと全部見たい!!!

今こそ理解するDI(Dependency Injection)

  • そういえばDIってデザインパターンだったことを再認識した。
  • DIは保守性の高いコードを書く事を目的とした方法論
  • DIとDIコンテナは別物、 DIコンテナはDIパターンをサポートするライブラリ
  • DIとerviceLocatorの違いは私自身イマイチ理解できてない。

DNSを制するものはインターネットを制す! DNSの世界

  • DNS苦手意識があるけど、ドメインハイジャックでCoinCheckの事件とか色々あるので逃げずにNSchecker使ってみたいと思いました。
  • 子供Youtubeを8時以降禁止にするための方法はわたしも親になったのでいつか使えそうと感じた。

 

おまけ

ノベルティめっちゃ良かったです、ホットアイマスク最高でした😏

エコバック今日の買い出しにも使いました。

カレーは緊急用にとっておっきます〜