如何确定哪些路径用于作曲家缓存?

Chr*_*ski 8 php composer-php

https://getcomposer.org/doc/06-config.md#cache-dir

有没有办法可以验证它实际使用的路径?

其次,文档似乎无效 - 我没有任何~/cache目录或$XDG_CACHE_HOME/composer......

β.ε*_*.βε 9

如果您正在寻找全局作曲家配置,您可以使用以下config命令:

composer config --global --list
Run Code Online (Sandbox Code Playgroud)

我的 docker 容器的示例输出:

$ composer config --global --list | grep cache
[cache-dir] /tmp/cache
[cache-files-dir] {$cache-dir}/files (/tmp/cache/files)
[cache-repo-dir] {$cache-dir}/repo (/tmp/cache/repo)
[cache-vcs-dir] {$cache-dir}/vcs (/tmp/cache/vcs)
[cache-ttl] 15552000
[cache-files-ttl] 15552000
[cache-files-maxsize] 300MiB (314572800)
Run Code Online (Sandbox Code Playgroud)

不过,您可能错过了文档的最后部分:

缓存目录

C:\Users\<user>\AppData\Local\Composer在 Windows、$XDG_CACHE_HOME/composer遵循 XDG 基本目录规范的 UNIX 系统以及$home/cache其他 Unix 系统上默认为。存储 Composer 使用的所有缓存。另请参见COMPOSER_HOME

来源: https: //getcomposer.org/doc/06-config.md#cache-dir,重点是我的。

所以我想,你错过$home/cache~/cache真正的时候$COMPOSER_HOME/cache

仍然从我的 docker 容器中确认/tmp/cacheconfig 命令引发的文件夹:

$ echo $XDG_CACHE_HOME

$ echo $home

$ echo $COMPOSER_HOME
/tmp
Run Code Online (Sandbox Code Playgroud)

因此,简而言之,如果设置,则$COMPOSER_HOME优先:

$ echo $COMPOSER_HOME
/tmp
$ unset COMPOSER_HOME
$ echo $COMOPSER_HOME

$ composer config -gl | grep 'cache-dir'
[cache-dir] /root/.composer/cache
[cache-files-dir] {$cache-dir}/files (/root/.composer/cache/files)
[cache-repo-dir] {$cache-dir}/repo (/root/.composer/cache/repo)
[cache-vcs-dir] {$cache-dir}/vcs (/root/.composer/cache/vcs)

$ echo $HOME
/root
$ whoami
root
Run Code Online (Sandbox Code Playgroud)

正如你在这里看到的,取消设置后$COMPOSER_HOME,我最终得到了我的用户的主页(这里是 root,这对于作曲家来说是一个不好的做法,但我在 docker 上进行演示)。

那么你应该读什么

默认情况下它指向 (...) /home/<user>/.composer

来源: https: //getcomposer.org/doc/03-cli.md#composer-home

默认情况下,当变量未设置时,它指向 (...) /home/<user>/.composer