【備忘録】use文について調べてみた
最近めっきりrequireを書かなくなった @ShiroKappa でございます。
「ひとまねはやめにしますw :)」
namespaceとその使い方に誤解をしていたので、ちょっと調べてみました。
結論から言うと
「use宣言しただけでは、PHPはまだファイルを探しにいかない」
です。
なんとなくの感覚でしかありませんでしたが、愛するPHPのことなのでuse宣言しただけで実は何かしてるんじゃないかと疑っていて、過去に書いたコードはよほど長くなりすぎない限り
$hoge = new \fuga\hoge();
のようにフル修飾してインスタンスの生成などをおこなっていたのですが、当然コードは読みにくくなります。。
PHPではパフォーマンス向上の為にいろいろとルールとマナーを守り、悪戦苦闘する訳ですが、不要なファイルの走査、読み込みは極力しないのは必ず気にかけるところです。
※参考資料 <すごくいい資料です!
先ほども述べた通り、感覚的にファイルの先頭にuse文を列挙していると使いもしないのに読み込みにいかれるのでは?と、勝手に想像し、あまり多用してこなかった訳ですが、調べてみると実際に使われるまでファイルは読み込まれませんし、1度解決したものは2度と探しにいきませんでした。
調査のために使ったソースはこちらです。
@ShiroKappa/loaderTest @github
最近のPHPのフレームワークではやはりボトルネックになりがちなのがrouting周りとautoload周りなのでパフォーマンス向上の為にまず手をかけたくなる場所だとおもいますので、正しい挙動を理解してそれぞれのアプリケショーンにあった作りを心がけたいものです。