PHP管理依赖(dependency)关系工具 Composer 安装与使用
什么是 Composer
Composer 是 PHP 依赖管理工具,它能够自动下载并安装 PHP 第三方库和类文件,同时也能管理这些依赖库之间的关系。使用 Composer,我们可以轻松的管理项目中的依赖关系,将精力更多地放到项目本身的实现上,提高开发效率。
Composer 安装
Composer 安装十分简单,只需在命令行终端中输入以下命令即可:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
上述命令中,第一条命令执行完成后,会在当前目录下生成一个 composer.phar 文件。如果没有安装 curl 工具,请使用以下命令安装:
sudo apt-get install curl
执行完毕后,将 composer.phar 文件移动到 /usr/local/bin/ 目录下,这样我们就可以在全局命令行中通过 composer 命令来执行 Composer 工具了。
Composer 使用
初始化项目
初始化项目非常简单:
composer init
执行上述命令后,会出现一系列的交互式提示,我们只需要根据实际情况依次填写即可。当然,也可以通过执行下面命令来快速生成默认配置:
composer init --name="myproject" --description="A new PHP project" --author="myname" --type="project"
安装依赖
在项目开发中,我们经常需要使用到别人写的工具库或者类库,这些第三方库文件就是我们所说的依赖。
在 Composer 中,安装依赖也非常简单,只需要在命令行中执行以下命令即可:
composer require vendor/package
其中,vendor 和 package 分别代表依赖库的供应商和名称,例如我们要安装 Symfony 的 Http Foundation 组件:
composer require symfony/http-foundation
Composer 会在当前项目目录自动创建 composer.json 文件,并将安装的依赖库和版本信息保存到该文件中。
同时,Composer 还会在自动创建一个 vendor 目录,用于存放所安装的依赖库文件。
版本约束
在依赖库的安装中,版本约束非常重要。如果我们不制定版本号或者指定的版本号和其他依赖库版本不兼容,可能会导致项目功能无法正常运行,而且不同的版本号可能会对同一个库的功能产生不同的影响。
Composer 支持多种版本约束方式,包括:
- 版本号
- 版本通配符
- 比较操作符
- 稳定性标识符
例如,我们需要安装 Symfony 的 Http Foundation 组件,如果我们希望安装的是 3.4 版本,可以使用如下命令:
composer require symfony/http-foundation:^3.4
在上述命令中,^ 符号代表通过 Composer 自动安装当前版本以及其他向后兼容的公开版本。
自动加载
Composer 还可以自动加载依赖库,让我们不必再手动管理库文件的引用关系。当我们在项目中使用依赖函数或者类文件时,Composer 会自动加载依赖库文件。需要注意的是,为了让依赖库能够被自动加载,需要管理文件用符合 PSR-4 或者 PSR-0 规范命名,例如:
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
以上代码中,在 src 目录下的所有文件和子目录中都应该遵循 App 命名空间规范。
示例一:安装 Guzzle Http 客户端库
下面我们使用一个具体的示例来介绍 Composer 的使用步骤。我们将安装 Guzzle Http 客户端库,用于发送 HTTP 请求。
- 安装 Guzzle Http 客户端库:
composer require guzzlehttp/guzzle
- 编写测试代码:
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'http://httpbin.org',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('GET', '/get');
echo $response->getBody();
以上代码中,我们使用了 Guzzle Http 客户端库中的一个名为 Client 的类,使用该类可以发送 HTTP 请求。
- 运行测试代码
在终端输入以下命令,将测试代码运行起来:
php test.php
如果代码能够正常运行,并从远程地址获取到了响应数据,即说明安装好了 Guzzle Http 客户端库,并且 Guzzle Http 客户端库文件已经被 Composer 自动加载了。
示例二:安装 phpunit 测试框架
还有一个示例,我们将安装 phpunit 测试框架,对我们的程序进行功能验证。步骤如下:
- 安装 phpunit:
composer require phpunit/phpunit
- 创建单元测试文件和测试代码:
在我们的项目根目录下创建一个名为 tests 的文件夹,然后在该目录下创建一个名为 Test.php 的文件,并写入如下代码:
<?php
use PHPUnit\Framework\TestCase;
class MathTest extends TestCase
{
public function testExpectTrueIsTrue()
{
$this->assertTrue(true);
}
}
以上代码定义了一个名为 MathTest 的测试类,其中有一个名为 testExpectTrueIsTrue 的测试方法。该方法通过 assertTrue 断言方法来判断变量 true 是否为 true。
- 执行测试代码
在终端输入如下命令,将测试代码运行起来:
./vendor/bin/phpunit
在命令行中将会显示我们的程序是否通过了测试。
结论
通过以上示例,我们可以看出 Composer 的依赖管理功能非常强大,使用起来也非常简单,大大提高了 PHP 项目的开发效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP管理依赖(dependency)关系工具 Composer 安装与使用 - Python技术站