composer上发布项目Packgist

  • 使用composer创建一个项目的基本流程:
    1.创建 composer.json,并添加依赖到的扩展包;
    2.运行 composer install,安装扩展包并生成 composer.lock;
    3.提交 composer.lock 到代码版本控制器中,如:git;
  • 准备:
GitHub帐号
Composer程序(确认你已经安装)
Packagist帐号(用GITHUB账号登录)
  • Github
    例如我的项目地址:
    https://github.com/zlqbookGM/house.git
    已经部署到Github上的项目:获取你的项目地址,将项目克隆到本地。
    未部署:将你项目上传到Github上,并获取你这个项目的地址。
  • composer本地操作
  1. 本地初始化conposer.json
    $ cd ~/path/...
    $ composer init
  2. 初始化composer文件,推送修改到github,如果你项目在github,这一步刻意忽略。
  • packgist
  1. 镜像包发布到packgist
    使用Github账户登录Packgist,由于本身composer就是从github发展而来的。
    找到submit,用你的项目仓库地址将镜像包发布提交。

  2. 配置GitHub和Packagist之间的自动更新钩子,根据向导,复制自己的packagist的api token,然后去GitHub配置好仓库的钩子服务(此处在测试器,github集成与服务已经逐渐弃用)

  • 本地测试与测试安装包
    $ cd ~/work/path/
    $ composer require zlqbookGM/hello dev-master
    结果:
D:\phpStudy\PHPTutorial\WWW>composer create-project zlqbook/housespider
Installing zlqbook/housespider (0.1.0)
  - Installing zlqbook/housespider (0.1.0): Downloading (100%)
Created project in D:\phpStudy\PHPTutorial\WWW\housespider
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 65 installs, 0 updates, 0 removals
  - Installing yiisoft/yii2-composer (2.0.6): Loading from cache
  - Installing bower-asset/jquery (3.2.1): Loading from cache
  - Installing bower-asset/bootstrap (v3.3.7): Loading from cache
/*成功部分省略*/
codeception/base suggests installing codeception/specify (BDD-style code blocks)
codeception/base suggests installing flow/jsonpath (For using JSONPath in REST module)
codeception/base suggests installing league/factory-muffin (For DataFactory module)
codeception/base suggests installing league/factory-muffin-faker (For Faker support in DataFactory module)
codeception/base suggests installing phpseclib/phpseclib (for SFTP option in FTP Module)
codeception/base suggests installing stecman/symfony-console-completion (For BASH autocompletion)
codeception/base suggests installing symfony/phpunit-bridge (For phpunit-bridge support)
Generating autoload files
  • 为项目添加outload属性
    psr-4自动加载规范,了解其他加载规范,查询PHP-FIG
    {
        "psr-4": { "Rivsen\\Demo\\": "src" }
    },

看一个具体的composer.json文件:

{
    "name": "zlqbook/housespider",
    "description": "douban spdider base Yii 2 ",
    "keywords": ["yii2", "framework", "advanced", "project template"],
    "homepage": "http://www.yiiframework.com/",
    "type": "project",
    "license": "BSD-3-Clause",
// 支持,这些信息会在packgist项目首页显示
    "support": {
        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
        "forum": "http://www.yiiframework.com/forum/",
        "wiki": "http://www.yiiframework.com/wiki/",
        "irc": "irc://irc.freenode.net/yii",
        "source": "https://github.com/yiisoft/yii2"
    },
    "minimum-stability": "stable",
  /*依赖*/
    "require": { 
        "php": ">=5.4.0",
        "yiisoft/yii2": "~2.0.6",
        "yiisoft/yii2-bootstrap": "~2.0.0",
        "yiisoft/yii2-swiftmailer": "~2.0.0 || ~2.1.0"
    },
    "require-dev": {
        "yiisoft/yii2-debug": "~2.0.0",
        "yiisoft/yii2-gii": "~2.0.0",
        "yiisoft/yii2-faker": "~2.0.0",
        "codeception/base": "^2.2.3",
        "codeception/verify": "~0.3.1"
    },
    "config": {
        "process-timeout": 1800,
        "fxp-asset": {
            "enabled": false
        }
    },
    "repositories": [
        {
            "type": "composer",
            "url": "https://asset-packagist.org"
        }
    ]
}
  • Github包版本管理:
    创建一个版本,通过github和packgist链接,更新到Packgist库中。
    版本命名规则:命名方法
/*创建分支*/
$ cd ~/work/github/hello-world
$ git branch
//创建分支 0.1
git checkout -b 0.1
//提交分支
$ git add .
$ git commit -m 'update readme'
$ git push origin 0.1
发布版本
$ git tag 0.1.0
$ git push --tags
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 3,101评论 0 9
  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,100评论 3 283
  • Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Compo...
    dreamer_lk阅读 2,409评论 0 15
  • 在被冻住的什刹海边,总有拿着便携收音机听京剧的老票友,也有比我大不了多少还依旧懵懂的小戏迷在吊嗓子,那悠扬的唱腔就...
    Still2333阅读 278评论 0 1
  • 载营魄抱一,能无离乎? 专气致柔,能如婴儿乎? 涤除玄鉴,能无疵乎? 爱国治民,能无为乎? 天门开阖,能无雌乎? ...
    ai糊弄阅读 401评论 0 0