gpt4 book ai didi

php - Laravel 命名空间,它是如何工作的?

转载 作者:行者123 更新时间:2023-12-04 16:52:13 25 4
gpt4 key购买 nike

我是 Laravel 5 的新手,我希望有人向我解释 Laravel 的命名空间究竟是如何工作的。

所以我有一个名为 Variant 的类在 app/models/Variant.php我的代码看起来像这样

namespace App;
use Illuminate\Database\Eloquent\Model;
class Variant extends Model{
/*Some code*/
}

在我的 route.php我有:
use App\Variant;
/*calls Variant::all() some where in code*/

然后我收到一条错误消息 Variant没有定义。但是,如果我在 Variant.php 中更改我的命名空间来自 namespace Appnamespace App\Models并在 route.php来自 use App\Variantuse App\Models\Variant一切都神奇地工作。

这是为什么?它与 php 命名空间或 classmap 有关吗? composer.json 中的属性?我很迷茫。

最佳答案

您的类可能是由 Composer 加载的。内容是什么- autoloading特别是部分?

我猜它是由 PSR-4 加载的标准,它尊重导演名\文件名模式。

意义:

  • App\Variant求于 app/Variant.php
  • App\Models\Variant求于 app/models/Variant.php

  • 因此,当您将 namespace 更改为与您的目录路径对应的 namespace 时,它会起作用。

    关于php - Laravel 命名空间,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31015495/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com