如何创建一个composer包

创建项目

创建一个空的项目,并在项目目录中创建src文件夹(根据一般规范,我们应该将源代码放在src文件夹下)。

使用composer初始化

在项目目录下执行:

composer init

创建完 composer.json 后大概如下:

{
    "name": "bedalter/demo",
    "description": "",
    "authors": [
        {
            "name": "bedlater",
            "email": "bedlater2013@gmail.com"
        }
    ],
    "require": {}
}

配置自动加载

composer.json 中加入配置 autoload 参数

"autoload": {
    "psr-4": {
        "bedlater\\Demo\\": "src/"
    }
}

发布到仓库

1.首先需要将项目发布到git上(如github),你会得到项目的git仓库地址;

2.访问 https://packagist.org/ ,点击右上角菜单 submit ,填写上面的git仓库地址即可。

安装包

composer require bedlater/demo:dev-master   # composer默认使用稳定版本

附录:本地开发与测试

发布到仓库 之前,我们应该在本地进行开发与测试

安装依赖/创建自动加载文件

composer install

命令完成后,自动创建 vendor 文件夹。

编写代码

src 目录下创建 “Greet.php” 文件

<?php

namespace bedlater\Demo;

class Greet {
    public static function say() {
        return 'hello world';
    }
}

单元测试

安装phpunit

composer require phpunit/phpunit --dev

在项目目录下创建 tests 文件夹,并在里面创建测试文件 “GreetTest.php”:

<?php

class GreetTest extends PHPUnit\Framework\TestCase {

    public function testHelloWorld() {
        $greeting = \bedlater\Demo\Greet::say();
        $this->assertEquals('hello world', $greeting);
    }

}

执行测试:

$ ./vendor/bin/phpunit ./tests/GreetTest.php 
PHPUnit 5.6.2 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 13 ms, Memory: 4.00MB

OK (1 test, 1 assertion)