1. Composer 简介
Composer 是 PHP 项目管理器,它可以在 PHP 应用程序中管理依赖库和自动加载类,使得代码更加模块化。你只需要在 composer.json 文件中定义依赖,Composer 就会自动处理下载和安装所有依赖。
1.1. 安装 Composer
要使用 Composer,你需要首先安装它。你可以使用 curl 或 wget 命令从 Composer 官网下载安装程序。
curl -sS https://getcomposer.org/installer | php
下载完成后,你会看到一个名为 composer.phar 的文件。可以将其移动到全局 PATH 中,便于直接在命令行中执行。
sudo mv composer.phar /usr/local/bin/composer
安装完成后,我们可以使用以下命令来验证是否成功安装:
composer --version
2. Composer 常用命令
定义好依赖之后,我们就可以使用 Composer 的命令来管理它们。下面是一些常用的 Composer 命令:
composer init:初始化一个新的 PHP 包,创建一个新的 composer.json 文件。
composer install:安装 composer.json 文件中定义的所有依赖。
composer update:更新所有依赖到最新版本。
composer require:添加一个新的依赖项。例如,composer require vendor/package
。
composer remove:从项目中移除一个依赖项。例如,composer remove vendor/package
。
composer show:列出所有项目依赖项的详细信息。
composer dump-autoload:重新生成自动加载文件。
2.1. 初始化一个项目
使用 Composer,您可以轻松地初始化新的 PHP 项目。在项目的根目录下,打开终端,并运行以下命令:
composer init
这个命令会创建一个新的 composer.json 文件,其中包含了您的项目的一些基本信息,例如作者、名称和依赖项。
2.2. 安装依赖
在初始化了一个项目之后,您可以添加您的项目需要的依赖项。在 composer.json 文件中,您可以定义您的依赖项,并运行以下命令:
composer install
这个命令会查找您在 composer.json 中定义的所有依赖项,并将它们下载和安装到 vendor 目录中。安装完成后,Composer 还会生成一个 autoload.php 文件,用于自动加载所有安装的依赖项。
3. Composer 的自动加载
使用 Composer 有一个巨大的好处就是自动加载功能。只要使用 Composer 安装了一个包,你就可以很方便地在你的代码中使用库名称和类名,就像这样:
use Vendor\Package\FooClass;
Composer 在安装时会把依赖关系保存在 autoload.php 文件中。这个文件需要在你的项目中使用,通常可以通过下面的方式来加载:
require 'vendor/autoload.php';
3.1. 自定义加载路径
Composer 可以根据 PSR-4 或 PSR-0 规范将任何命名空间映射到目录中。默认情况下,它会将 "Vendor\Package\" 映射到 "vendor/package/src/" 目录中。
您也可以将映射到的目录修改为您自己的目录。只需要在 composer.json 文件中定义一个 "autoload" 部分,如下所示:
"autoload": {
"psr-4": {
"MyNamespace\\": "src/",
"AnotherNamespace\\": "lib/"
}
}
上面的例子中,"MyNamespace\" 将映射到 "src/" 目录,"AnotherNamespace\" 将映射到 "lib/" 目录。
3.2. 自动加载非 composer 包
使用 Composer,你可以很容易地将 Composer 包的依赖项自动加载到您的项目中。但是,如果你想自动加载非 Composer 包的依赖项,你也可以使用 Composer 脚本完成该操作。
例如,您可以使用 Composer 脚本从 GitHub 加载库:
{
"scripts": {
"post-install-cmd": [
"bin/install_dep"
]
}
}
上面的脚本会在安装完成后自动运行 install_dep 脚本。在这个脚本中,您可以使用 git clone 命令通过 GitHub 下载库:
#!/usr/bin/env php
<?php
echo "Installing dependencies...\n";
exec('git clone git://github.com/username/repo.git lib/mylib');
上面的脚本会在 lib/mylib 目录中下载 repo 的库代码。
4. 小结
本文介绍了 Composer 工具的基本用法和一些常用命令,它可以使你在 PHP 项目中更加方便地管理依赖库和自动加载类。
使用 Composer,你可以很方便地初始化新项目、安装/更新依赖项、添加/移除依赖项等。Composer 还支持自定义加载路径、自动加载非 Composer 包等高级功能。