php7では、依存関係注入コンテナまたはサービスコンテナからインスタンスを取得するときに、ハードコードされた文字列ではなく::class
を使用する方が良いですか?もしそうなら、なぜですか?たとえば、次の行が好ましいハードコードされた文字列ではなく、クラスを使用する方が良いですか?
のとおりです。
$diContainer->get(Namespace\SubNamespace\Class::class);
$serviceContainer->get(Namespace\SubNamespace\Class::class);
ではなく、以下:
$diContainer->get('Namespace\SubNamespace\Class');
$serviceContainer->get('Namespace\SubNamespace\Class');
私はコードはPHPので、迅速にコンパイルすることを信念にハードコードされた文字列を使用してきました::class
キーワードを解釈する必要はありません。しかし、私はまた、::class
を使用する多くの新しいphp7コードを見てきました。
もっと広く言えば、完全修飾されたクラス名が必要な場合はいつも、ハードコードされた文字列ではなく::class
を使用する方が良いでしょうか?
ありがとうございます。私は特に「意味のない不透明な塊」推論を好む。 –