Mae*_*aeh 10 laravel laravel-5
我刚刚下载了Laravel 5并开始迁移到它.但是,我发现命名空间的必要使用真的很烦人.
除了混乱我的代码之外,我不觉得我从中获得了太多东西.
如何禁用命名空间要求?
luk*_*ter 20
我认为你不应该禁用或删除命名空间.命名空间的主要原因是避免与具有相同名称的类冲突.一旦应用程序变大,您将拥有具有相同名称的类.Framework源代码示例:
Illuminate\Console\Application 和 Illuminate\Foundation\Application
两者都被称为相同.只有因为命名空间,您才能导入正确的类.当然你也可以命名它们:
ConsoleApplication 和 FoundationApplication
但是,虽然命名空间通常仅在导入文件顶部的类时使用:
use `Illuminate\Console\Application`
Run Code Online (Sandbox Code Playgroud)
名称本身在代码中的任何位置都使用.这真是使你的代码混乱,类名太长的东西.
除了命名之外,命名空间还鼓励更好的结构并帮助知道文件的位置.那是因为Laravel的默认结构是PSR-4合规的.这意味着,如果你有一个控制器App\Http\Controllers\HomeController,你可以肯定,你会发现一个HomeController.php下app/Http/Controllers.
我知道这一点,但在我正在进行的项目中并不需要它.
也许它对当前项目没有意义,但是习惯命名空间将有助于您将来处理更大的项目
作为一个没有自动导入的Sublime Text用户,它真的很痛苦
我不太了解Sublime Text,但CodeIntel可能会自动导入.否则请考虑切换到另一个编辑器/ IDE.我强烈推荐JetBrains PhpStorm
最后,如果您仍然不想使用命名空间,请继续使用Laravel 4或搜索遵循不太好的做法的另一个框架...
虽然完全不建议这样做,但至少可以删除应用程序中的某些命名空间.
例如,默认控制器命名空间App\Http\Controllers可以完全改为RouteServiceProvider:
protected $namespace = '';
Run Code Online (Sandbox Code Playgroud)
对于您的模型,您只需删除文件中的命名空间即可.但请记住,没有命名空间,PSR-4自动加载将不再起作用.您必须使用classmapin 自动加载文件composer.json
| 归档时间: |
|
| 查看次数: |
7452 次 |
| 最近记录: |