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
Larastan に自作 OSS ライブラリのテストをぶっ壊された話
Search
mpyw
March 24, 2023
Programming
0
490
Larastan に自作 OSS ライブラリのテストをぶっ壊された話
PHPerKaigi 2023 Day1 アンカンファレンス
mpyw
March 24, 2023
Tweet
Share
More Decks by mpyw
See All by mpyw
推測するな、計測せよ New Relic × Laravel 実践
mpyw
4
1.9k
排他制御のためだけに渋々 Redis 使ってませんか?
mpyw
8
2.5k
MySQL/Postgres におけるトランザクション分離レベル
mpyw
24
6.8k
PhpStorm と Docker の壊し方 〜モジュラモノリスへの幻想と失敗〜
mpyw
4
2.5k
Other Decks in Programming
See All in Programming
Cap'n Webについて
yusukebe
0
170
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
3
1.7k
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
250
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
660
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
5.5k
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
170
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
180
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
470
Basic Architectures
denyspoltorak
0
260
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
360
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
130
Featured
See All Featured
Marketing to machines
jonoalderson
1
4.5k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
43
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
69
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
700
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
130
Statistics for Hackers
jakevdp
799
230k
Side Projects
sachag
455
43k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
The Limits of Empathy - UXLibs8
cassininazir
1
200
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
410
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
180
Transcript
Larastan に自作 OSS ライブラリ のテストをぶっ壊された話 PHPerKaigi 2023 Day1 アンカンファレンス @mpyw
ある日,突然自作ライブラリのテストが壊れました
発端 PDO のエミュレーションを切り替えるテスト
発端 PDO のエミュレーションを切り替えるテスト RefreshDatabase はコネクションを解決してしまうが 使っていない
CI だけ何故か落ちるようになってしまった…
ローカルと CI の微妙な違い • ローカルでは…? ◦ vendor/bin/phpunit • CI では…?
◦ vendor/bin/phpstan ◦ vendor/bin/phpunit
ローカルと CI の微妙な違い • ローカルでは…? ◦ vendor/bin/phpunit • CI では…?
◦ vendor/bin/phpstan ◦ vendor/bin/phpunit PHPStan を走らせると その後のテストは何回実行しても落ちる
PHPStan の実行で何が起こったのか?
PHPStan の実行で何が起こったのか? orchestra/testbench はライブラリの テスト用に laravel/laravel をいい感じに 用意してくれるテストフレームワーク
Larastan くん勝手に vendor 配下触るの!?
差分を探す
差分を探す 新規作成された vendor 自体は怪しくなかった ↓ 既存ファイルが書き換えられているのでは…?
差分を探す
差分を探す パッケージディスカバリが走ってそう
Larastan がどこかのバージョンから パッケージディスカバリを orchestra/testbench 内 の laravel/laravel に対して行うようになった…
差分を探す orchestra/testbench が spatie/laravel-ray に依存している
サービスプロバイダから呼ばれる処理で… 立ち上げ時に DB::connection() を解決している
None
None
というか Larastan がお節介すぎるやろ…
nunomaduro/larastan/issues/1588 に立てました
nunomaduro/larastan/issues/1588 に立てました
laravel-ray 側で直すんかい!w
遅延評価されるように修正された(1日前)
まとめ • Larastan は勝手に orchestra/testbench 上の依存関係で パッケージディスカバリを実行してくる • DB::connection() が解決される副作用に限っては
spatie/laravel-ray 側で 修正されたが,本質的な問題に対する違和感は拭えない