Slide 1

Slide 1 text

補完したい話 6/27 PHP勉強会@東京 前田 和人

Slide 2

Slide 2 text

PHP Conference スポンサー募集中

Slide 3

Slide 3 text

自己紹介 ■ 前田 和人 ■ @chiroruxxxx ■ 弁護士ドットコム株式会社 ■ 補完機能依存

Slide 4

Slide 4 text

補完機能依存 ■ もはや補完がないと生きていけない – すべてPhpStormのせい ■ シェルも補完がないとつらい – fish最高! ■ 今日はPhpStormの話をするよ(fishはまた今度)

Slide 5

Slide 5 text

補完が効かないやつら ■ factory ■ サービスコンテナ ■ 「引数によって返す型が違う」メソッドから生成されたインスタンスが補完で きない $user = factory(User::class)->create(); $api = resolve(API::class);

Slide 6

Slide 6 text

つらい

Slide 7

Slide 7 text

頑張れば補完できるけど・・・ ■ PHPDocで型を明示してあげれば補完できるけど・・・ ■ 毎回これ書くのはちょっとしんどい ■ 補完のためにコード長くするのも・・・ /** @var ¥App¥User $user */ $user = factory(User::class)->create();

Slide 8

Slide 8 text

.phpstorm.meta.php ■ .phpstorm.meta.phpというファイルを作成することで対応できる! ■ WI-6027により実装された機能 ■ factory design patternを補完する

Slide 9

Slide 9 text

.phpstorm.meta.php ¥Exception::class, ¥ExampleFactory::EXAMPLE_B => ExampleB::class, ¥EXAMPLE_B => ¥ExampleB::class, ])); }

Slide 10

Slide 10 text

.phpstorm.meta.php '@Iterator|¥Iterator', ])); }

Slide 11

Slide 11 text

まとめ ■ 「.phpstorm.meta.php」というファイルを書けば補完ができる! ■ 引数の型も補完してくれる! ■ 書くの大変だから自動化できるといいね