Composer 包开发有这么简单?

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 包。