我正在尝试学习作曲,但我似乎无法让自动加载器与我创建的包一起工作。它只是声明找不到类。
我做错了什么?
index . php:
require 'vendor/composer/autoload_psr4.php';
use packageNamecoreBootstrap;
$boot = new Bootstrap();
Bootstrap.class.php (inside/vendor/vendorName/packageName/core/):
namespace packageNamecore;
class Bootstrap {
...
作曲家。
"autoload": {
"psr-4": { "packageName\core\": "/vendor/vendorName/packageName/core" }
}
第一:不要包含随机的自动加载组件。Composer有如何使用自动加载器的文档。
第二:不要处理在你自己的自动加载中已经安装了Composer的包。vendor
文件夹中的所有内容都不能从您自己的composer.json
中自动加载-它应该提供自己的自动加载定义。最简单的情况是你只有这个:
{
"require": {
"vendorName/packageName" : "^1.0"
}
}
如果你想让你自己的代码也自动加载(我建议),你只需要添加自动加载。
Mark Baker的回答(在上面的评论中)解决了这个问题。
"/供应商/…真的在文件系统的根级别吗?如果是相对路径而不是绝对路径,则使用"vendor/vendorName/packageName/core"