将自己的库放到Packagist,方便Composer

Composer大家知道是个好东西,类似Java的Maven,方便引入别人的代码,这里不再详细说明,快速上手发布,一次发布到处开发,极简步骤,保证上手

前置开发条件

MacOS High Sierra 10.13.3
Composer version 1.6.5 2018-05-04 11:44:59

一、首先开发自己的compose组件

要点:理解composer如何实现自动加载第三方组件; 理解psr-0和psr-4的规范; 理解基于psr-0,psr-4,classmap,files如何实现自动加载。 理解Composer和Packagist

创建目录

mkdir demo
cd demo

demo文件夹就是包的所在根目录,composer.json也在相应的根目录中,记住这个点就行,然后我们开始初始化这个包

composer init

之后会出现相应的信息

  Welcome to the Composer config generator

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

Package name (<vendor>/<name>) [hsucy/demo]:
Description []: try make a package
Author [xxx <xxx@xxx.com>, n to skip]:
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
License []: MIT

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? n
Would you like to define your dev dependencies (require-dev) interactively [yes]? n

Do you confirm generation [yes]? yes

如果你想发布正式版,Minimun Stability中选择stable,并且push到代码库需要打tag,tag就是相应的版本

对应的文件类似下面的

{
    "name": "hsucy/demo",
    "description": "userd for demo",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "hsucy",
            "email": "xxxx@xxx.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.6"
    },
    "autoload": {
        "psr-4": {
          "Hsucy\\Demo\\": "src/"
        }
    }
}

requirerequire-dev建议在composer.json中再添加,这样比较方便,个人建议,name的拼写参照我写的规则,个人/包名

之后我们根据psr-4的规则开始创建我们的类,因为src/的存在,那么我们的namespace需要命名为Hsucy\demo,类文件放在/src

src中添加需要的类,之后提交自己的代码到仓库中,最好是Github,Packagis抓取也方便。

二、发布到Packagist

登录到自己的Packagis帐号,将自己的项目地址放上去

p

点击check,再点击submit即可,composer包已经创建完成,需要在自己的项目引用

composer require hsucy/validation dev-master

dev-master,前面是版本,后面是分支,因为只发布了dev版本,只要master分支,所以需要这样写,要是打上了tag,发布了正式版,则写上相应版本号

最后当然要用上方便Webhooks,以后提交的代码自动同步到Packagist,首先在项目的相应setting中找到Webhooks配置

Add Webhooks需要注意格式

https://packagist.org/api/bitbucket?username=你在packagist里的用户名&apiToken=在packagist里获取的token

packagist里获取token在:packagist.org/profile/ 点击Show API Token就行了
填完点“Add webhook”按钮完事

下面你每次提交推送,就会自动同步到packagist里,用composer就可以更新了。

但鉴于我国的关系,如果用国内镜像,需要花时间同步,如果composer找不到包,一般第二天肯定能找到。

Show Comments