PHP には名前空間という機能があります。これはクラス名、関数名などの様々なものの衝突を避けるための機能です。
名前空間は機能上、自由に決められますが概ね PSR-4 に従ってディレクトリ構造に対応した名前空間を定めます。この名前空間を用いてあるクラスを呼び出す際は次のように書けます。
// \App\Http\Controllers が名前空間です $controller = new \App\Http\Controllers\Controller();
この名前空間を使ったインポートですが、use 演算子を使うこともできます。これを使うと同ファイル中に何度も長大な名前空間付きのクラス名などを書かなくて済みます。
use App\Http\Controllers\Controller; $controller = new Controller(); // 短縮して書けるので二回以上使うなら短く済みます $controller = new Controller();
この use 演算子を用いたインポートですが、実は途中でも区切れます。これを使うと短いクラス名でもどういったクラスなのかわかり、読む時の助けになってくれます。これは例えば次です。
use App\Models\Eloquents\Account; // アカウントそのもの $account= new Account\Account::class; // アカウントにかかわる権限 Account\MenuPermission::class; // 管理者としてのアカウント Account\AsAdmin::class;
インポートした名前についてエイリアスをつけるのも一つの方法ですが、こちらならば特に考える必要もなく呼び出し元の開発者の命名の意図を保ったままインポートができます。もし似たようなことをクラス名のみでやろうとするとファイル名が非常に長くなり、なにがしかでファイル構造を目で探索する時の視認性が非常に悪くなります。