laravel中的命名空间是直截了当的,并且对类进行别名很好,但是我必须为每个路径中几乎显而易见的最基本的类别命名,如输入,重定向等。没有命名空间我不必使用它们它们是预先加载的并确定。
如何同时使用命名空间保留仅使用输入和放大器的功能重定向&雄辩,不必在我想要使用的每个类别中使用别名/导入?
由于
答案 0 :(得分:1)
这就是命名空间的工作原理。 PHP Docs on namespaces为从不同名称空间导入/别名类的需要提供了很好的解释。
就Laravel外观的问题而言,您可以在其他名称空间中使用它们,方法是在类名称前添加\
,因为它们在全局名称空间中注册。因此,如果您不想导入它们或使用完全限定的命名空间,这就足够了:
$param = \Input::get('param');
return \Redirect::route('route');
您可以在app/config/app.php
下的aliases
注册其他全局别名。
答案 1 :(得分:1)
这是因为在Laravel 5中,大多数类,如模型,控制器,中间件,请求都在某些命名空间中。如果要从其他命名空间访问类,则需要使用完全限定的类(带命名空间的类)或首先导入类,然后使用更短的版本。否则,您可以从同一名称空间访问类。
我想强调 - 它不是Laravel问题,它是如何在PHP中使用命名空间
有关进一步说明,您还可以阅读How to use objects from other namespaces and how to import namespaces in PHP