ファサードの名前空間をインポートする正しい方法は何ですか(Hash::make
など)?Laravelファサードを使用/インポートする正しい方法は何ですか?
use Illuminate\Support\Facades\Hash
のようなインポートを使用する必要がありますか?
\Hash::make
(デフォルトで作成されたコントローラなどの名前空間ファイルから)またはHash::make
(ルートなどの非名前空間ファイルからのもの)として使用している人がいました。
またide-helperルート名前空間でファサードを生成します。
namespace {
exit("This file should not be included, only analyzed by your IDE");
class Hash extends \Illuminate\Support\Facades\Hash{
/** ... */
public static function make($value, $options = array()){
return \Illuminate\Hashing\BcryptHasher::make($value, $options);
}
しかし、このクラスはIlluminate\Support\Facades\
名前空間ではなく、ルート名前空間である場合、それが動作する理由を私は理解していません。
hm。私はなぜ 'artisan make:...'によって生成されたすべてのファイルがエイリアスを使わず、 '\ Schema'や' use Schema'の代わりに 'Use Illuminate \ Support \ Facades \ Schema'のような完全な名前空間インポートを含むのだろうかと疑問に思う。 – AlexP11223
Don元の著者が何を考えていたかは分かりませんが、ここに私の2セントがあります:どちらも正しいですが、明らかにファサードはより速いです。どんどん速くなりますが、自動ロードキューの周りで動作するので、その理由が考えられます。一方、エイリアスの存在理由は使いやすさです。ファサードのFQDNを覚えておく必要はなく、ルート名前空間からファンシーエイリアスを使用するだけです。コードを生成するとき、それはもはやそうではありません。なぜエイリアスを無視しないのですか? – sepehr