php 文件中的 "use" 个语句
"use" statements in php file
我是 Laravel 的初学者,在学习 "namespace" 和 "use" 语句时,我发现,例如,在控制器中,当我们第一次编写 "use" 语句应该在函数内部重复。
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
为什么会这样?为什么只写一次 "use" 语句而不在函数中重复是不够的?而且,如果我将创建另一个具有相同命名空间的控制器,我是否也应该在那里编写相同的 "use" 语句?
在 class 之外使用关键字 use
只是导入名为 trait
的特定部分。
并且在 class 中使用关键字 use
实际上是继承或实现使用 trait
PHP中有两个不同的use
:
文件顶部的 use
将命名空间名称别名为较短的本地名称。从字面上看,它们的唯一用途是让您可以在这个文件中写入 DispatchesJobs
而不必始终使用完全限定名称 \Illuminate\Foundation\Bus\DispatchesJobs
.
use
inside a class
将 trait 应用于 class.
在这种情况下,您可以省略第一个 use
来为特征添加别名,并使用其完全限定名称应用它:
namespace App\Http\Controllers;
class Controller extends \Illuminate\Routing\Controller {
use \Illuminate\Foundation\Bus\DispatchesJobs;
...
}
这完全相同,但显然相当冗长。在文件顶部建立一些别名可以让您的后续代码更简洁。
我是 Laravel 的初学者,在学习 "namespace" 和 "use" 语句时,我发现,例如,在控制器中,当我们第一次编写 "use" 语句应该在函数内部重复。
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
为什么会这样?为什么只写一次 "use" 语句而不在函数中重复是不够的?而且,如果我将创建另一个具有相同命名空间的控制器,我是否也应该在那里编写相同的 "use" 语句?
在 class 之外使用关键字 use
只是导入名为 trait
的特定部分。
并且在 class 中使用关键字 use
实际上是继承或实现使用 trait
PHP中有两个不同的use
:
文件顶部的 use
将命名空间名称别名为较短的本地名称。从字面上看,它们的唯一用途是让您可以在这个文件中写入 DispatchesJobs
而不必始终使用完全限定名称 \Illuminate\Foundation\Bus\DispatchesJobs
.
use
inside a class
将 trait 应用于 class.
在这种情况下,您可以省略第一个 use
来为特征添加别名,并使用其完全限定名称应用它:
namespace App\Http\Controllers;
class Controller extends \Illuminate\Routing\Controller {
use \Illuminate\Foundation\Bus\DispatchesJobs;
...
}
这完全相同,但显然相当冗长。在文件顶部建立一些别名可以让您的后续代码更简洁。