我认为您不应该禁用或删除名称空间。命名空间的主要原因是避免与同名的类发生冲突。一旦应用程序变得更大,您就会拥有同名的类。框架来源的示例:
Illuminate\Console\Application
and Illuminate\Foundation\Application
两者的称呼是一样的。仅由于命名空间,您才能导入正确的类。当然你也可以命名它们:
ConsoleApplication
and FoundationApplication
但是,虽然命名空间通常仅在在文件顶部导入类时使用:
use `Illuminate\Console\Application`
该名称本身在代码中随处使用。类名太长,这确实会让你的代码变得混乱。
除了命名之外,命名空间还鼓励更好的结构并帮助了解文件的位置。那是因为 Laravel 的默认结构是PSR-4
符合。这意味着如果你有一个控制器App\Http\Controllers\HomeController
你可以肯定你会找到一个HomeController.php
under app/Http/Controllers
.
我知道这一点,但在我正在从事的项目中不需要它。
也许这对当前项目没有意义,但习惯命名空间将帮助您处理未来更大的项目
作为 Sublime Text 用户,它没有自动导入功能,这真的很痛苦
我不太了解 Sublime Text,但是英特尔代码 https://github.com/SublimeCodeIntel/SublimeCodeIntel可能有自动导入。否则请考虑切换到另一个编辑器/IDE。我强烈推荐 JetBrains PhpStorm
最后,如果您仍然不想使用命名空间,请继续使用 Laravel 4 或搜索另一个遵循不太好的实践的框架......
从应用程序类中删除命名空间
虽然完全不建议这样做,但至少可以删除应用程序中的一些命名空间。
例如默认控制器命名空间App\Http\Controllers
可以更改为根本没有命名空间RouteServiceProvider
:
protected $namespace = '';
对于您的模型,您只需删除文件中的名称空间即可。但请记住,如果没有命名空间,PSR-4 自动加载将不再起作用。您必须使用自动加载文件classmap
in composer.json