gpt4 book ai didi

Laravel 5 命名空间

转载 作者:行者123 更新时间:2023-12-03 15:23:42 24 4
gpt4 key购买 nike

我刚刚下载了 Laravel 5 并开始迁移到它。但是,我发现必须使用命名空间真的很烦人。

除了弄乱我的代码之外,我不觉得我从中得到了很多。

如何禁用命名空间要求?

最佳答案

我认为您不应该禁用或删除命名空间。命名空间的主要原因是为了避免与具有相同名称的类发生冲突。一旦应用程序变大,您就会拥有同名的类。来自框架源的示例:Illuminate\Console\ApplicationIlluminate\Foundation\Application两者称为相同。只有因为命名空间,您才能导入正确的类。当然,您也可以命名它们:ConsoleApplicationFoundationApplication但是,虽然命名空间通常仅在导入文件顶部的类时使用:

use `Illuminate\Console\Application`
名称本身在代码中随处可见。这确实会使您的代码变得困惑,类名太长。
除了命名之外,命名空间还鼓励更好的结构并帮助了解您的文件在哪里。那是因为 Laravel 的默认结构是 PSR-4合规。这意味着如果你有一个 Controller App\Http\Controllers\HomeController您可以确定您会找到一个 HomeController.phpapp/Http/Controllers .

I am aware of that, but it's not needed in the project I am working on.


也许它对当前项目没有意义,但习惯命名空间将有助于您在 future 处理更大的项目

And being a Sublime Text user, which doesn't have autoimport, it really gets to be a pain


我不太了解 Sublime Text,但是 CodeIntel可能有自动导入。否则考虑切换到另一个编辑器/IDE。我强烈推荐 JetBrains PhpStorm

最后,如果您仍然不想使用命名空间,请继续使用 Laravel 4 或搜索另一个遵循较少良好实践的框架...

从您的应用程序类中删除命名空间
虽然完全不推荐这样做,但至少可以删除应用程序中的一些命名空间。
例如默认 Controller 命名空间 App\Http\Controllers可以在 RouteServiceProvider 中更改为根本没有命名空间:
protected $namespace = '';
对于您的模型,您只需删除文件中的命名空间即可。但请记住,如果没有命名空间,PSR-4 自动加载将不再起作用。您必须使用 classmap 自动加载您的文件在 composer.json

关于Laravel 5 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com