如何在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”,什么是完整的方式?
答案 0 :(得分:0)
最佳解决方案是在composer.json
文件中设置PSR-4自动加载,如以下示例所示:
// Part of composer.json
"autoload" : {
"psr-4" : {
"App\\" : "app/"
}
}
现在您不需要额外的自动加载,Composer自动加载将为您完成。
当请求的类位于App
命名空间下时,Composer会在app
文件夹中查找它,因为它在上面的composer.json
文件中设置。