强制 PHP 编译器创建本地存储库的相对而非绝对符号链接

mic*_*per 6 php composer-php docker

我有一个 docker 容器,其中主机的目录映射如下 - /app(项目本身)和/packages(本地依赖项)。然后我有/app/composer.json文件,其中定义了位于/packages中的本地存储库,如下所示

"require": {
    "myvendor/mypackage": "^1.0",
},
"repositories": [
    {
        "type": "path",
        "url": "./../packages/mypackage"
    }
]
Run Code Online (Sandbox Code Playgroud)

问题是,运行composer install/update后,它使用绝对路径对我的包进行符号链接,因此/app/vendor/myvendor/mypackage目录被符号链接为/packages/mypackage。虽然从作曲家的角度来看这是可行的,但我更希望它是一个相对符号链接 - ../../../packages/mypackage - 因为否则我的 IDE 无法索引mypackage源代码(我的 IDE 上的不同绝对路径) Ubuntu 主机比它们位于 docker 容器内)除非我手动更改符号链接路径。我一直在寻找作曲家的配置选项来强制绝对/相对,但没有运气。有什么办法可以实现我想要的,我错过了什么吗?

Toi*_*lal 0

作为符号链接的替代方案,您可以将 Composer 配置为镜像本地路径,而不是使用COMPOSER_MIRROR_PATH_REPOS=1环境变量创建符号链接。

https://getcomposer.org/doc/03-cli.md#composer-mirror-path-repos

它可能不是您真正需要的,因为本地包中的更改不会自动传播,并且需要再次运行 Composer install 才能再次镜像本地路径。