我是作曲家的新手。我已经安装了一个包含多个依赖项的软件包。我在供应商文件夹中得到一个奇怪的目录结构:
/vendor
/symphony
/event-dispatcher
/Symphony
/Component
/EventDispatcher
/http-foundation
/Symphony
/Component
/HttpFoundation
/...
/Symphony
/Component
我希望将所有交响乐组件放在一个文件夹中/Symphony/Component
,但取而代之的是,我拥有与交响乐组件一样多的/Symphony/Component
。
我有一个非常基本的 composer.json 文件:
{
"autoload": {
"psr-0": {
"Mb\": "inc/"
}
},
"require": {
"cboden/Ratchet": "0.3.*",
"react/zmq": "0.2.*"
}
}
这是正常行为,还是我做错了什么?
此目录结构正常。cboden/ratchet
包需要symfony/http-foundation
和symfony/routing
包。这些反过来又有额外的开发依赖关系,包括更多的Symfony软件包。作曲家将每个作曲家包独立安装到vendor
中自己的目录中。包源代码位于其中的每一个中。因为所有的Symfony软件包都使用相同的根命名空间,所以你最终会得到很多具有相似目录结构的软件包。这就是作曲家的设计方式。