什么是 Composer,为什么需要它?
Composer 是用于 PHP 编程语言的依赖管理器。如果您使用过 JavaScript 的 npm 或 Python 的 pip,那么 Composer 的工作原理对您来说将很熟悉。它允许您声明项目所依赖的库,并自动管理它们的安装、更新和删除。
为什么需要 Composer?在现代 PHP 开发中,很少从头开始编写所有内容。通常使用现成的库:用于数据库操作(Doctrine、Eloquent)、HTTP 请求(Guzzle)、模板引擎(Twig)、日志记录(Monolog)等。以前,开发者下载 ZIP 压缩包,手动复制文件并通过 require 引入它们。这很不方便,难以维护版本和更新依赖。Composer 解决了所有这些问题:
- 自动加载: Composer 会生成一个自动加载文件,自动引入所有需要的类。您无需编写数十个
require_once。 - 版本管理: 您可以指定库的确切版本(或范围),Composer 会确保它们之间没有冲突。
- 集中式仓库: 所有库都存储在 Packagist.org — Composer 的官方仓库。
- 可重现性:
composer.lock文件记录了所有已安装包的确切版本,确保在开发机、测试机和生产环境中的环境完全一致。
安装 Composer
在 Linux / macOS 上安装
最简单的方法是使用官方安装脚本。打开终端并运行:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"php composer-setup.phpphp -r "unlink('composer-setup.php');"之后您将得到 composer.phar 文件。要使其作为全局的 composer 命令可用,请移动它:
sudo mv composer.phar /usr/local/bin/composer在 Windows 上安装
从 官方网站 下载并运行安装程序。它会自动将 Composer 添加到系统 PATH 环境变量中。
验证安装
安装后,在终端中运行:
composer --version您应该会看到类似这样的内容:Composer version 2.7.1 2024-03-11 16:15:07。
快速入门与代码示例
让我们创建一个新项目并安装用于处理日期的库 nesbot/carbon。
- 创建项目目录:
mkdir my_projectcd my_project - 初始化 Composer:
composer init系统会提示您输入项目名称、描述、作者等信息。您可以一直按 Enter 键接受默认值。最终会创建一个
composer.json文件。 - 安装 Carbon 库:
composer require nesbot/carbonComposer 会将该库及其所有依赖项下载到
vendor/文件夹中,同时创建composer.lock文件并更新composer.json。 - 创建
index.php文件:<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Carbon\\Carbon;
echo