分享 composer 小技巧

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 包等高级功能。