换镜像仅加速下载,无法解决“resolving dependencies”卡顿;生效需同时满足三条件:键名必须为repo.packagist(单数)、中间composer为必需type值、url须以/结尾且为https,缺一即静默回退官方源。

换镜像只能加速下载环节,composer require monolog/monolog 卡在 Resolving dependencies 时换镜像完全无效——那不是网络问题,是本地约束或环境导致的求解器爆炸。
镜像配置必须写对这三处,否则静默失效
执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 才生效,但漏掉任意一个都会 fallback 到官方源:
-
repo.packagist不能写成repos.packagist(多一个s就彻底忽略) - 中间的
composer是type值,不是可选参数,省略后 Composer 2.0+ 直接走https://repo.packagist.org - URL 必须是 HTTPS 且末尾带斜杠:
https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(少斜杠会拼出 404 路径)
验证是否生效:运行 composer config -g repo.packagist,输出应为类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 的 JSON;空、null 或仍是 https://repo.packagist.org,说明没写进去。
安装 Monolog 时卡在 Resolving dependencies?和镜像无关
如果 composer require monolog/monolog 卡在 “Resolving dependencies” 超过 10 秒,基本可以确定是以下原因:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
"php": "^7.4 || ^8.0"这类宽泛版本约束会让求解器尝试大量组合 -
require-dev里塞了太多工具(比如phpunit/phpunit+friendsofphp/php-cs-fixer+infection/infection) - 写了模糊版本号,如
"monolog/monolog": "*"或"dev-main" - 启用了 xdebug(它会让依赖解析慢 3–5 倍)
解决方法:收紧 PHP 版本约束(如 "php": "^8.1")、删掉非必要 require-dev 包、禁用 xdebug(php -d zend_extension= -d xdebug.mode=off composer require monolog/monolog)、清缓存(composer clear-cache)。
Monolog 安装后不输出日志?90% 是没配 Handler
Monolog\Logger 默认不写任何内容,只负责格式化和分发。没加 Handler,调 $logger->info('hello') 就等于没调:
- 必须传非空
name参数:new \Monolog\Logger('app'),不能是空字符串或null - 最简可用写法(写入文件):
$logger->pushHandler(new \Monolog\Handler\StreamHandler(__DIR__.'/app.log', \Monolog\Logger::INFO)) - 路径必须有写权限,建议加
is_writable(__DIR__.'/app.log')检查,否则静默失败 - 若要同时输出到控制台,需额外
composer require symfony/console(Monolog 2.x 不再自带ConsoleHandler)
真正容易被忽略的点是:镜像只管下载快不快,而依赖解析慢、日志不输出、Handler 权限失败——这些都发生在本地,跟网络一毛钱关系都没有。










