Composer 包的开发与提交

在之前文章中我们介绍了 composer 的安装以及使用,
在这篇文章中我们介绍一下如何进行开发 compsoer 包,
并发布到 packagist.org 上,并进行后续更新。

一、在 GitHub 创建一个名 demo 的新仓库,并克隆至本地。

$ git clone git@github.com:kuif/demo.git
$ cd demo

二、初始化项目,生成 composer.json 文件

详细步骤说明

$ composer init


  Welcome to the Composer config generator


This command will guide you through creating your composer.json config.

// 1. 输入项目命名空间
// 注意<vendor>/<name> 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
Package name (<vendor>/<name>) [kui/demo]: fengkui/demo

// 2. 项目相关描述
Description []: A demo test package

// 3. 输入作者信息,也可以直接回车
Author [kuifeng <1161634940@qq.com>, n to skip]: fengkui <1161634940@qq.com>

// 4. 输入最低稳定版本,stable, RC, beta, alpha, dev
Minimum Stability []: dev

// 5. 输入项目类型
Package Type (e.g. library, project, metapackage, composer-plugin) []: library

// 6. 输入授权类型(开源协议)
License []: MIT
Define your dependencies.

// 7. 是否引入其他依赖包(不引入键入 no)
Would you like to define your dependencies (require) interactively [yes]? yes

// 如果需要依赖,则输入要安装的依赖
Search for a package: fengkui/supports
// 输入安装版本号
Enter the version constraint to require (or leave blank to use the latest version): *
// 如需多个,则重复以上两个步骤

// 8. 是否需要require-dev
Would you like to define your dev dependencies (require-dev) interactively [yes]? no
// require与require-dev安装依赖区别
// require中所引用的包在线上线下的项目中均会使用
// require-dev中的包只在本地开发的时候使用。

{
    "name": "fengkui/demo",
    "description": "A demo test package",
    "type": "library",
    "require": {
        "fengkui/supports": "*"
    },
    "license": "MIT",
    "authors": [
        {
            "name": "fengkui",
            "email": "1161634940@qq.com"
        }
    ],
    "minimum-stability": "dev"
}
// 9. 是否生成 composer.json
Do you confirm generation [yes]? yes

// 10. 是否生成 .gitignore
Would you like the vendor directory added to your .gitignore [yes]? yes

// 11. 是否要立即安装所有依赖项
Would you like to install dependencies now [yes]? no

三、添加类的自动加载

在上一步生成的 composer.json 文件中追加,
说明 fengkui\\ 为命名空间(注意相关字母大小写)。

"autoload": {
    "psr-4": {
        "fengkui\\": "src"
    }
}

四、构建项目

开发相关依赖包在 src 目录下,
同时根据需求添加 README.md、LICENSE 等文件(可不创建),
项目最终结构如下:

├─demo                      扩展包根目录
│  ├─src                    扩展包代码目录
│  │  ├─Demo.php
│  ├─test                   测试目录(不必须)
│  │  ├─test.html
│  │  ├─test.php
│  ├─.gitignore
│  ├─composer.json
│  ├─LICENSE
│  └─README.md

五、推送到 GitHub

git add .
git commit -m '0.0.1'
git tag v1.0.0 // 记住打一个版本号(标签)
git push origin master
git push origin 0.0.1 // 提交版本

标签删除

git tag -d 0.0.1 // 删除本地标签
git push origin :refs/tags/0.0.1 // 删除远程标签

六、将 GitHub 上的包提交到 Packagist

首先要在 Packagist 上注册账号并登录(可以用 GitHub 直接登录) 接着按照图中步骤进行操作。 冯奎博客

操作完成如下图所示,即提交成功 冯奎博客

七、项目中使用

composer require fengkui/demo

冯奎博客
请先登录后发表评论
  • latest comments
  • 总共0条评论