
Laravelを勉強していると、namespace名前空間もよく見かけるけど、use宣言もよく見かけるなあ。でも、ぶっちゃけフワッとしか意味が分かってない。use宣言って何なの?という疑問にお答えします。
ボクがLaravelを学習していて、よく見かけるけど、よく分からないなあと思ったのがuse宣言。Laravel、PHPの初心者の方ならボク同様に、useは疑問に思いやすいと思います。
この記事を読んでいただくと、use宣言についてザックリと分かると思います。
それでは、use宣言についてみていきましょう。
use宣言とは使いたいクラスや関数や定数などをインポートできる機能

use宣言とは、これからファイルの内部で使うクラスや関数や定数、名前空間の一部などをインポートするために使います。
文字通りすぎることが、逆に分かりにくい感じですね。
例えば、Laravelで外部のファイルで定義されているクラスを使いたいということがあります。そんなとき、外部のクラスを使うには、クラスが定義されているファイルの保管場所・パスを指定します。
どこどこに保管されている◯◯のクラスを使います。と明示することで、違うファイルに定義されているクラスをインポートして使えます。
ちょっと抽象的なので、もうちょっと具体的にみてみましょう。
ファイルBの中で定義されているクラスCがある。
このクラスCを、ファイルAの中で使いたい。
そのために、ファイルBが保管されているパスと、クラス名であるクラスCをファイルAの中で明示すると、ファイルAの中にクラスCがインポートされるということですね。
クリックしたら使える記事の中のリンクみたいな感じのイメージ。
さらに具体的にみてみましょう。
例えば、「 view 」というクラスが定義されているファイルが保管されている場所・
パスが「 Illuminate/Support/Facades/view 」 だとしましょう。
この場合、「 view 」クラスを使うために、
「 use Illuminate\Support\Facades\view ; 」のように書くと、viewクラスがインポートされます。
useは柔軟性が高いので、 「 use Illuminate\Support; 」のように、途中のパスまでインポートしたり、カンマで分けて続けて書くことで、何個も違うパスをインポートしたりできます。
use宣言すると見ためにもやさしい

use宣言をすることで、プログラムがこのクラスを使うよ!と認識できるし、人間にとってもこのクラスを使うのかー。と見た目的にも分かりやすくなります。
そして、use宣言で「 use + パス名 」を書いておくことで、実際に使うときには、クラス名だけでクラス・インスタンスが使えるようになります。
さっきの例でいうと、ファイルの先頭で
「 use Illuminate\Support\Facades\view ; 」とuse宣言しておくことで、
「 view 」という名前だけでクラスが使えるようになります。
この機能をエイリアスと呼びます。
クラス名をエイリアスの機能で別名に変えて使ったりもできる

エイリアスとは、英語で、別名という意味です。
例えば、use Illuminate/Support/Facades/view as hoge ;
こうすると、viewをhogeという別名に変えて使えます。
まとめ
use宣言ひとつとっても奥が深く、幅広く使えるので、実際に使って慣れていくのが良さそうですね。ボクもLaravelで積極的に使って、習得していきたいと思います。
それでは、プログラミング学習、頑張っていきましょう!
コメント