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