laravel - 在继承的情况下如何使用命名空间?

标签 laravel oop namespaces

我是 OOPS 新手,因此想澄清一些事情。我有下面的代码,它工作得很好。

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;

class AdminController extends Controller
{
    public function index()
    {
        echo "admin controller";
    }

}

现在我不打算使用 use 关键字,因为它会被使用一次,也想进行实验,因此,我使用了下面的代码。

namespace App\Http\Controllers\Admin;

class AdminController extends App\Http\Controllers\Controller
{
    public function index()
    {
        echo "admin controller";
    }

}

现在,上面提到的没有 use 关键字的代码会抛出一个 fatal error 异常。为什么会发生这种情况?理论上,我认为我正在做应该做的事情,那么为什么会出现异常呢?

最佳答案

您必须从全局命名空间导入它,下面的代码可以正常工作

namespace App\Http\Controllers\Admin;

class AdminController extends \App\Http\Controllers\Controller
{
    public function index()
    {
        echo "admin controller";
    }

}

使用来自全局命名空间的关键字导入类,但是

class AdminController extends App\Http\Controllers\Controller

它将导入相对于您当前命名空间(命名空间 App\Http\Controllers\Admin)的父类,因此翻译路径将为:App\Http\Controllers\Admin\App\Http\Controllers\Controller 无效。

关于laravel - 在继承的情况下如何使用命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49643991/

相关文章:

具有单例用法的 JavaScript 命名空间?我难住了!

php - Laravel 4 - 运行时出错 `composer install`

javascript - Laravel、jQuery - 在 Laravel 中验证后返回括号表示法(jQuery 中的点到括号表示法)

c# - 为什么这个方法重载异常?

oop - 设计用户访问/权限类

PHP Soap xml 与 SoapUI xml

php - 在 7.0 ubuntu 16.04 旁边安装 php 5.6 后,本地虚拟主机停止工作

php - getRealPath() 返回 false(Laravel 5.2 和图像干预)

oop - 何时以及如何为 DDD 中的实体分配唯一 ID?

c++ - 从外部更改命名空间变量值 (C++)