全局安装将PHP工具部署至系统目录,供全局调用,适用于开发工具;项目安装则在本地vendor中隔离依赖,确保版本独立,通过composer.json和lock文件实现精确版本控制与环境一致性。
如果您在使用 Composer 管理 PHP 依赖时对安装方式感到困惑,特别是不清楚全局安装与项目安装之间的区别,本文将帮助您理清两者的核心差异,并提供具体操作方式。
本文运行环境:MacBook Pro,macOS Sonoma
一、全局安装的作用范围
全局安装是将 Composer 包安装到系统的全局 vendor 目录中,使其可以在任意目录下通过命令行调用。这种方式适合安装开发工具类包,如代码格式化工具或命令行应用。
1、执行 composer global require 包名 命令进行安装。
2、Composer 会将包安装到用户主目录下的 ~/.composer/vendor/bin 目录中。
3、确保系统 PATH 环境变量包含 ~/.composer/vendor/bin,以便可以直接运行命令。
4、安装完成后,可在终端任意位置输入该工具的命令来使用,例如 phpcs 或 laravel new。
二、项目安装的依赖隔离性
项目安装是将依赖包下载到当前项目的 vendor 目录下,仅限该项目内部使用。这种模式保证了不同项目之间依赖版本的独立性和可重复部署能力。
1、进入项目根目录后运行 composer require 包名。
2、Composer 会读取 composer.json 文件并更新 require 列表,同时下载对应版本至 ./vendor 目录。
3、生成或更新 composer.lock 文件,锁定依赖树的具体版本。
4、通过 require_once 或自动加载机制在代码中引入第三方库功能。
三、依赖版本管理差异
全局安装容易导致版本冲突,因为同一时间只能启用一个版本;而项目安装允许每个项目指定自己的依赖版本,实现版本隔离。
1、多个项目可能依赖不同版本的同一个工具,全局安装无法满足此需求。
2、项目级依赖可通过 composer.json 明确定义版本约束,如 ^2.0 或 ~1.5.0。
3、使用 composer install 可还原 lock 文件中的精确版本,保障环境一致性。
4、全局依赖升级会影响所有使用该工具的项目,需谨慎操作。
四、卸载与维护方式
不同的安装路径决定了卸载方法的不同,维护时需要明确包的安装范围。
1、卸载全局包应使用 composer global remove 包名 命令。
2、卸载项目包则在项目目录中执行 composer remove 包名。
3、检查全局已安装包可运行 composer global show。
4、查看项目当前依赖列表使用 composer show。
以上就是php laravel js json composer macbook 工具 mac macos 环境变量 区别 php laravel composer json require macos