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

时间:2015-04-09 14:43:00

标签: php model-view-controller

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

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

现在PSR-4说如果需要包含一个类,自动加载必须包含来自供应商的类,那么我如何包含我的本机项目类,比如在控制器中包含一个模型? 例如以下代码:

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

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

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

1 个答案:

答案 0 :(得分:0)

最佳解决方案是在composer.json文件中设置PSR-4自动加载,如以下示例所示:

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

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