提问者:小点点

如何区分供应商类和本地类在PHP自动加载?


如何在PHP自动加载中区分向量类和本机项目类?请参阅文件和命名空间结构的一部分:

app/
app/Models/
app/Models/User.php
app/Contoller/
app/Contoller/Login.php
vendor/
vendor/company/package/Helper.php

现在PSR-4说,如果需要包含一个类,autoload必须包含供应商提供的类,那么我如何包含我的原生项目类,比如在控制器中包含一个模型?例如,以下代码:

$user = new App\Models\User();

autoload在供应商文件夹中查找“App”公司(文件夹),一种方法是在autoload中使用某些条件,如果名称空间在本机项目中以“App”查找类开头,这是标准方法吗?

第二个,关于这一点,在供应商中有一个包,它的公司名称是“App”,在供应商名称中,完整的方式是什么?


共1个答案

匿名用户

最好的解决方案是在编写器中设置PSR-4自动加载。json文件,如下例所示:

// Part of composer.json
"autoload" : {
    "psr-4" : {
        "App\\" : "app/"
    }
}

现在您不需要额外的自动加载,作曲家自动加载将为您完成。当请求的类在App命名空间下时,Composer在上面的composer.json文件中设置的app文件夹中查找它。