git composer 新创建包,发布到packagist上笔记

git composer 新创建包发布到packagist上

开发一个 composer 通用文件上传包,发布到 Packagist,并在 Laravel 中测试

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

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

2.1 步骤解释

$ 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>) [dell/htdocs]: yourname/projectname

// 2. 项目描述
Description []: 这是一个测试

// 3. 输入作者信息,可以直接回车
Author [feiker.hong <[email protected]>, n to skip]:

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

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

// 6. 输入授权类型
License []:
> Define your dependencies.

// 7. 输入依赖信息
Would you like to define your dependencies (require) interactively [yes]?

// 如果需要依赖,则输入要安装的依赖
Search for a package: php

// 输入版本号
Enter the version constraint to require (or leave blank to use the latest version): >=5.4.0

// 如需多个,则重复以上两个步骤

// 8. 是否需要require-dev,
Would you like to define your dev dependencies (require-dev) interactively [yes]?

// 操作同上
{
    "name": "guanguans/uploadfile",
    "description": "一个通用文件上传包",
    "type": "library",
    "require": {
        "php": ">=7.0"
    },
    "require-dev": {
        "php": ">=7.0"
    },
    "license": "MIT",
    "authors": [
        {
            "name": "feiker.hong",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev"
}

// 9. 是否生成composer.json
Do you confirm generation [yes]? yes

三、添加自动加载

在上一步生成的composer.json中追加

"autoload": {
    "psr-4": {
        "Plugins\\": "src/"
    }
}

四、构建项目

4.1 新建uploadfile/src/UploadFile.php

├─uploadfile                
│  ├─src                     
│  │  ├─UploadFile.php
│  └─composer.json

4.2 测试

4.2.1 终端下执行 composer install,这时会生成vendor目录,及其他文件

$ composer install

五、添加 README.mdLICENSE.gitignore等文件

├─uploadfile                扩展包根目录
│  ├─src                    扩展包代码目录
│  │  ├─UploadFile.php
│  ├─test                   测试目录
│  │  ├─uploadfile.html
│  │  ├─UpploadfileTest.php
│  ├─.gitignore
│  ├─composer.json
│  ├─LICENSE
│  └─README.md

六、推送到 GitHub

git add .
git commit -m 'init'
git tag v1.0.0 // 记住打一个版本号
git push origin master
git push v1.0.0

七、将 GitHub 上的包提交到 Packagist

  1. 首先要在 Packagist 上注册账号并登录(可以用 GitHub 直接登录)
  2. 点击顶部导航条中的 Summit 按钮
  3. 在输入框中输入 GitHub 上的刚才包地址,如:https://github.com/xxx/xxx
  4. 然后点击 Check 按钮 Packagist 会去检测此仓库地址的代码是否符合 Composer 的 Package 包的要求

检测正常的话,会出现 Submit 按钮,再点击一下 Submit 按钮,我们的包就提交到 Packagist 上了

八、设置 composer 包自动更新

上面提交上的包提交的包,当我们更新 GitHub 仓库时,Packagist 上面的的包并不会自动更新,现在我们来设置一下自动更新

8.1 复制 Profile API Token

8.2 打开 GitHub 项目 setting,选择 Integrations & services,添加 packagist service,点击 Test service

8.3 验证是否已经自动更新

移步 Packagist 包主页,发现已经没有了红色的圈住的提示,说明设置自动更新成功。

九、项目中使用

我以 Laravel 中使用举例

composer create-project laravel/laravel
cd laravel
composer require xxx/uploadfile

发布了33 篇原创文章 · 获赞 9 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/fkew2009/article/details/84945807