我目前正在开发一个框架,但我无法弄清楚如何设置自动加载。首先,我创建了一个包含示例类和composer.json的包。我通过以下方式自动加载了该示例类:
"autoload": {
"classmap": [
"libs/"
]
}
我已经检查过/vendor/mypackage/vendor/composer/autoload_classmap.php并确认包的自动加载器工作正常。但问题是我无法从主应用程序到达该程序包的类,除非我直接包含该程序包的autoload.php。
更新
/vendor/foo/mypackage/composer.json
"autoload": {
"psr-4": {
"Http\\": "libs/"
}
}
/vendor/foo/mypackage/libs/Request.php
namespace Http;
class Request {}
答案 0 :(得分:1)
首先,使用psr-0
或psr-4
自动加载配置通常会更好。使用classmap,每次添加新类或重命名时都必须缩小自动加载器。
您始终需要使用require 'vendor/autoload.php';
包含Composer自动加载器。添加此类require语句的最佳位置在前端控制器文件中。
答案 1 :(得分:1)
我自己解决了。每当我更改pacakge的composer.json时,我就不得不重新安装包。