[英]“use” statements in php file
我是Laravel的初学者,在学习“名称空间”和“ use”语句时,我发现例如在Controllers中,当我们首次编写“ 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”语句而不在函数中重复就不够了? 而且,如果我要创建另一个具有相同名称空间的Controller,是否也应该在其中编写相同的“ use”语句?
PHP有两种不同的use
:
文件顶部的use
将命名空间名称别名为较短的本地名称。 从字面上看,它们的唯一用途是让您可以在此一个文件中编写DispatchesJobs
而不必始终使用完全限定的名称\\Illuminate\\Foundation\\Bus\\DispatchesJobs
。
在class
内部use
该特质将其应用于班级。
在这种情况下,您可以省略第一个use
来对特征进行别名,并使用其完全限定的名称来应用它:
namespace App\Http\Controllers;
class Controller extends \Illuminate\Routing\Controller {
use \Illuminate\Foundation\Bus\DispatchesJobs;
...
}
这确实做同样的事情,但是显然很冗长。 在文件顶部建立一些别名可以使您的以下代码更简洁。
在类之外使用关键字use
只是导入称为trait
特定部分。
在类内部使用关键字use
实际上是继承或实现使用该trait
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.