0

laravel 中的命名空间很简单,给类起别名也很好,但是我不得不给最基本的类起别名,这些类在输入、重定向等每条路由中几乎都很明显。没有命名空间我不必使用它们,它们是预加载和识别的。

我如何在使用命名空间的同时保留仅使用 Input & Redirect & Eloquent 的能力,而不必在我想使用的每个类中使用别名/导入?

谢谢

4

2 回答 2

1

这就是命名空间的工作方式。关于命名空间的PHP 文档很好地解释了从不同命名空间导入/别名类的需要。

就您对 Laravel 外观的问题而言,您可以通过在类名前加上 来在其他名称空间中使用它们\,因为它们已在全局名称空间中注册。因此,如果您不喜欢导入它们或使用完全限定的命名空间,这就足够了:

$param = \Input::get('param');
return \Redirect::route('route');

app/config/app.php您可以在下注册其他全局别名aliases

于 2014-10-23T23:48:45.433 回答
1

这是因为在 Laravel 5 中,大多数类(如模型、控制器、中间件、请求)都位于某个命名空间中。当您想从其他命名空间访问类时,您需要使用完全限定类(具有命名空间的类)或先导入类,然后使用较短的版本。否则,您可以从同一个命名空间访问类。

我想强调——这不是 Laravel 的问题,而是命名空间在 PHP 中的工作方式

如需进一步解释,您还可以阅读如何使用其他命名空间中的对象以及如何在 PHP 中导入命名空间

于 2014-10-24T06:10:59.120 回答