也许我只是错过了一些基本的东西(希望),但我无法理解这一点。
我有一对PHP项目,每个项目都初始化为git repo / Composer包; foobar/package-a
取决于foobar/package-b
。
PackageA
的结构如下:
PackageB
+- src
| +- PackageB
| +- Namespace1
| | +- <files>
| +- Namespace2
| | +- <files>
| +- Namespace3
| +- <files>
+- docs
+- other
+- things
PackageA
的结构类似:
PackageA
+- src
| +- PackageA
| +- <files>
+- vendor
+- <files>
无论如何,我只是使用本地git存储库,将package-b
定位为来自package-a
的依赖项。
# PackageA's composer.json
"require": {
"foobar/package-b": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "path/to/foobar/PackageB"
}
]
但是,从package-b
方面来看,我只希望公开/src/PackageB
下的所有内容,不包括/docs
和/other
,{{1} }。
我很惊讶地发现,Composer架构中没有/things
密钥,表明我希望依赖项目只能从某个目录中提取:
package-root
有没有办法使用Composer向消费者表明文件位于包的根目录以外的某个位置?
目前,我最终使用# hypothetical in PackageB's composer.json
"package-root": "/src/PackageB"
根PackageB
根(/src
,/docs
等)中的所有结尾} vendor
目录。
exclude
密钥了,虽然我希望实际重新启动软件包而不是忽略其他目录。此外,我不确定这是否适用于此。