composer如何为CLI工具设置自动补全?(bash/zsh completion脚本生成)
因为 composer 默认不自动生成或安装 shell 补全脚本——它只提供生成能力,且仅限于当前项目根目录下的 composer 命令(即 php composer.phar 或全局安装的二进制),不自动写入系统级补全路径。
技术博客
因为 composer 默认不自动生成或安装 shell 补全脚本——它只提供生成能力,且仅限于当前项目根目录下的 composer 命令(即 php composer.phar 或全局安装的二进制),不自动写入系统级补全路径。
因为 composer 本身是 PHP 工具,它依赖宿主机的 PHP 运行时、扩展、CA 证书、网络代理设置,甚至 ~/.composer/ 缓存路径。Docker 容器里如果只简单 apt install composer,大概率遇到:无法加载 openssl 扩展、curl 报 SSL certificate problem、composer install 卡在 Updating dependencies、或者安装的包权限错误导致 Laravel 项目启动失败。
Sublime Text 本身不带“JSON 键转数组”按钮,但靠自带的正则查找替换就能一步到位。关键不是写新插件,而是找准键名在 JSON 中的文本模式。
低带宽下 composer install 卡住,本质是默认的并发数(2)和重试次数(3)不适合弱网——它会反复超时、阻塞、重连,反而拖慢整体进度。不是网络不行,是策略太“刚”。
Sublime Text 本身不叫“函数列表”,而是叫“符号列表”——它会提取当前文件里所有 function、def、class、method 等声明级符号,不是只抓函数。快捷键是 Ctrl+R(Windows/Linux)或 Cmd+R(macOS),弹出的面板里直接输名字就能跳转。
因为默认行为会访问 packagist.org(或你配置的仓库)拉取包元数据、下载 ZIP 或通过 Git 克隆,同时还会校验 composer.lock 中记录的 dist URLs 和 commit hash。只要 DNS、HTTPS 连接或证书验证任一环节断开,就会报 Could not fetch、failed to open stream 或 SSL certificate problem。
目标机器没网络,U 盘拷了 vendor 目录过去,直接运行 composer install 会失败——因为 Composer 默认忽略已存在的 vendor,转而查 packagist.org,而目标机根本连不上。
Composer 的 autoload.files 看似简单,但实际常因路径、时机或加载顺序问题完全静默失败——它不会报错,只是函数压根没被定义。
不会自动清空,但行为取决于锁文件和依赖声明。只要 composer.lock 存在且没被删,composer update 默认只更新满足 composer.json 版本约束的包,并复用 lock 文件里记录的精确版本(除非你指定要升级某包)。真正“重装 vendor”的其实是 composer install 在没有 lock 文件时的行为——它会按 composer.json 解析最新兼容版本,结果反而更不可控。
Sublime Text 本身不是 IDE,没有内置 Erlang 运行时或编译器集成。所谓“运行”,实际是调用系统命令 erlc 编译 + erl 启动,靠的是 Build System 配置。如果点 Ctrl+B 没反应、报错或只输出乱码,大概率是路径、工作目录或 shell 环境没对上。