×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
OSS Gate に参加したら Larastan に コントリビュートできた あかつか 2024/04/11 Kobe Laravel
Slide 2
Slide 2 text
自己紹介
Slide 3
Slide 3 text
自己紹介 あかつか 神戸の会社でバックエンドエンジニアをしています PHP とLaravel が好きです 最近はGo も好き new Larastan コントリビューター https:/ /github.com/larastan/larastan/releases/tag/v2.9.1 (とはいえ、一個しかPR やってない)
Slide 4
Slide 4 text
Larastan とは
Slide 5
Slide 5 text
Larastan とは PHPStan のLaravel 向けラッパー PHPStan PHP の静的解析ツール 定義されていない変数を使おうとした時に警告し てくれる 関数の戻り値の方が間違っている時に警告してく れる Larastan はLaravel の特有の機能にも対応している
Slide 6
Slide 6 text
OSS Gate とは
Slide 7
Slide 7 text
OSS Gate とは 「OSS Gate 」は、OSS 開発に参加する「入り口」を提供 する取り組みです。 OSS 開発に未参加の人を参加する 人へ、少し参加したことがある人を継続的に参加する 人へ。そうやってOSS 開発に参加する人を継続的に増や していく。それが「OSS Gate 」の目的です。 https:/ /oss-gate.github.io/
Slide 8
Slide 8 text
今回追加したもの
Slide 9
Slide 9 text
追加したもの サポートされているEloquent Builder メソッドに withWhereHas を追加 https:/ /github.com/larastan/larastan/issues/1523 https:/ /github.com/larastan/larastan/pull/1853
Slide 10
Slide 10 text
withWhereHas use App\Models\User; $users = User::withWhereHas('posts', function ($query) { $query->where('featured', true); })->get();
Slide 11
Slide 11 text
実際に動きを見てみよう 私の変更が入ったのは2.9.1 から 2.9.0 と2.9.2 で違いを見てみよう $ composer show -i | grep larastan $ ./vendor/bin/phpstan analyse
Slide 12
Slide 12 text
実際に動きを見てみよう before(2.9.0) after(2.9.2)
Slide 13
Slide 13 text
参加した時の私 OSS の経験はほぼなし ドキュメント修正のプルリクを送った程度 それでもコントリビュートできた🎉
Slide 14
Slide 14 text
どうやって追加した 1. Laravel とLarastan をインストールして 再現用のコードを書く 2. 手元のLarastan でissue の再現を確認 3. Larastan のリポジトリをフォーク 4. 修正を追加 5. テストを追加 + 通ることを確認 6. ドキュメントの修正 7. PR を送る
Slide 15
Slide 15 text
大変だったところ テストの書き方が最初わからなかった PHPUnit のTestCase を継承しているPHPStan の テストクラスを使っていた コミュニケーションが英語 CI がうまく通らないことがあって不安になった
Slide 16
Slide 16 text
OSS コントリビュートの始め方 OSS Gate に参加してみる 次回はオンラインで4/27 に開催される いろんなOSS を使ってみる PHP やLaravel もOSS 使うことも貢献の一つの形 使っていてバグを見つけたり、うまく動かなかった りしたら報告しよう https:/ /github.com/laravel/framework/issues/50862
Slide 17
Slide 17 text
宣伝 PHP カンファレンス福岡で登壇します よかったらきてください!
Slide 18
Slide 18 text
Thank you!