如何在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”,在供应商名称中,完整的方式是什么?
最好的解决方案是在编写器中设置PSR-4自动加载。json
文件,如下例所示:
// Part of composer.json
"autoload" : {
"psr-4" : {
"App\\" : "app/"
}
}
现在您不需要额外的自动加载,作曲家自动加载将为您完成。当请求的类在App
命名空间下时,Composer在上面的composer.json
文件中设置的app
文件夹中查找它。