1. 什么是 Composer 包?
在了解 Composer 包开发之前,我们先要知道什么是 Composer 包。Composer 包是用 PHP 编写的可重用代码的集合,它们包含了所有必需的类、函数、接口、配置文件等等。借助 Composer 包,我们可以轻松地将依赖项添加到我们的项目中,并且使这些依赖项保持最新。
1.1. 如何创建 Composer 包?
要创建 Composer 包,我们需要了解以下几个步骤:
创建项目并添加代码
编写 composer.json
文件
将包发布到 Packagist 或者自己的私有仓库
下面我们来详细说明这些步骤。
1.2. 创建项目并添加代码
首先我们需要创建一个新的 PHP 项目,并添加我们的代码。我们可以将代码放在一个名为 src
的目录中,然后添加一些测试用例到 tests
目录中。
mkdir my-project
cd my-project
mkdir src
mkdir tests
1.3. 编写 composer.json 文件
在我们的项目根目录中,我们需要创建一个 composer.json
文件,它是描述我们包信息的文件,需要包含一些基本信息如包名、作者、依赖等。以下是一个基本的 composer.json
文件示例:
{
"name": "vendor/package",
"description": "My Package",
"type": "library",
"authors": [
{
"name": "Your Name",
"email": "you@example.com"
}
],
"require": {
"php": "^7.1.3"
},
"autoload": {
"psr-4": {
"Vendor\\Package\\": "src/"
}
},
"require-dev": {
"phpunit/phpunit": "^7.0"
},
"license": "MIT"
}
在上面的代码中,我们定义了以下信息:
name:包的名称,它的格式通常是 vendor/package
description:包的描述信息
type:包的类型
authors:包的作者信息
require:包的依赖信息
autoload:Class 自动加载器的配置信息
require-dev:包的开发依赖信息
license:包的许可证
1.4. 将包发布到 Packagist
在我们的包完成之后,我们可以将它发布到 Packagist 或者自己的私有仓库中。如果我们将其发布到 Packagist,那么其他人就可以使用 Composer 加载我们的包。
2. 如何使用 Composer 包?
下面我们来讲解一下如何使用 Composer 包。
2.1. 安装 Composer
要使用 Composer,我们首先需要安装它。我们可以从 https://getcomposer.org/ 下载最新版本的 Composer。
curl -sS https://getcomposer.org/installer | php
2.2. 安装依赖
要使用我们的包,我们需要先在项目中添加 composer.json
文件,并添加以下代码:
{
"require": {
"vendor/package": "1.0.*"
}
}
这将向 Composer 指示安装名称为 vendor/package
的包,版本限制为 1.0
。我们可以运行以下命令来安装依赖:
php composer.phar install
运行上面的命令后,Composer 会自动下载并安装我们需要的所有依赖项。
3. 如何测试 Composer 包?
在开发我们的 Composer 包时,我们需要编写一些测试用例来确保正确性。这里我们使用 PHPUnit 来为我们的包编写测试用例。
3.1. 安装 PHPUnit
我们可以使用 Composer 来安装 PHPUnit。在我们的 composer.json
文件中,我们需要添加以下内容:
{
"require-dev": {
"phpunit/phpunit": "^7.0"
}
}
然后运行以下命令来安装 PHPUnit:
php composer.phar install --dev
3.2. 编写测试用例
我们可以将测试用例放在 tests
目录中。以下是一个简单的测试用例示例:
use PHPUnit\Framework\TestCase;
class MyTest extends TestCase
{
public function testSomething()
{
$this->assertEquals(42, MyCode::doSomething());
}
}
在上面的代码中,我们创建了一个名为 MyTest
的测试用例,并编写了一个名为 testSomething
的测试方法。
3.3. 运行测试用例
要运行我们的测试用例,我们可以运行以下命令:
php vendor/bin/phpunit
如果所有测试用例都通过,那么 PHPUnit 将会输出类似于以下内容的消息:
OK (1 test, 1 assertion)
4. 总结
Composer 包开发并不是一件很难的事情,只需要遵循一些简单的规则就可以轻松地创建和使用自己的 Composer 包。