我是OOPS和MVC的新手,因此对我想澄清的某些概念感到困惑。正如下面在代码中所提到的,我认为,提到的namespace App\Http\Controllers\Admin;
对应于目录结构,因此意味着类AdminController
包含在Admin
文件夹中,就像那里指出的那样。但是我们有use
关键字,以便使用以下命名空间。现在的问题是为什么我们使用use App\Http\Controllers\Controller;
,特定的行。它有什么用途?
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
class AdminController extends Controller
{
public function index()
{
echo "admin controller";
}
}
答案 0 :(得分:2)
使用通常允许开发人员缩短命名空间。
它从相同或不同的命名空间复制另一个类,因此您可以在代码中使用该类及其类名。如果你不使用另一个类,你需要编写完整的命名空间。
这可能会帮助您更好地理解它。 https://daylerees.com/php-namespaces-explained/
答案 1 :(得分:1)
namespace App\Http\Controllers\Admin;
用于让laravel知道从哪里访问AdminController
。
扩展基础AdminController
的{{1}}使用默认的基类Controller
,因此我们需要使用Controller
规范。 use
用于声明您将使用use App\Http\Controllers\Controller;
中的基本Controller
类。
欲了解更多信息,请阅读官方laravel docs。
答案 2 :(得分:1)
名称空间 基本上将您的函数,类和常量分组到一个特定的“名称”下,我们称之为名称空间。
现在 使用 关键字可以让开发人员缩短命名空间。 使用 在我们要去的时候非常有用在同一个代码文件中反复调用同一个函数,或调用特定命名空间下的不同函数,常量或类。