composer中文网 :https://www.phpcomposer.com/

一.前期准备:

composer 安装

Windows安装:

1.下载安装包,https://getcomposer.org/download/

2.在php.ini文档中打开extension=php_openssl.dll

3.下载php_ssh2.dll、php_ssh2.pdb,http://windows.php.net/downloads/pecl/releases/ssh2/

4.把php_ssh2.dll、php_ssh2.pdb文件放php的ext文件夹

5.重启apache,php

linux 全局安装
安装步骤:

1. curl -sS https://getcomposer.org/installer | php

2. mv composer.phar /usr/local/bin/composer

安装完后 运行composer不报错 即成功

二. github创建仓库 (

https://github.com/maole01/test.git

三.提交本地项目到github新建的仓库, 并(composer  init)初始化项目生产composer.json文件

进入项目目录
1.在命令行中,输入“git init”,使Test文件夹加入git管理;
2.输入“git add .”(不要漏了“.”),将Test文件夹全部内容添加到git。
3.输入“git commit -m "first commit"”(“git commit -m "提交信息"”
4.从github将仓库内的文件pull下来 (以免push的时候出现冲突报错)
git pull https://github.com/maole01/test.git master --allow-unrelated-histories
5.输入 git remote add origin https://github.com/maole01/test.git(git remote add origin 你自己的https地址),连接你的guthub仓库。
6.输入“git push -u origin master”,上传项目到Github。这里会要求输入Github的账号密码,按要求输入自己的就可以。

初始化项目

进入项目目录 然后输入composer init命令开始为该项目初始化composer
填一些生成composer.json的配置信息
Package name 包的名称 (前面最好用自己的github账号名(保证唯一性),后面用仓库名) : maole01/test
description 包的描述。 : 随便填
Author 包的作者 : 可以直接回车
Minimum Stability 输入最低版本类型 : dev (这里我们选择开发版) 
Package Type 项目类型 : project
License [] 授权类型 随便填 : MIT
Would you like to define your dependencies (require) interactively [yes]? 
是否选择依赖其他第三方库 依赖选择yes 否则选择 no
选择yes后根据自己项目所依赖的库进行搜索 然后进行版本号选择
Would you like to define your dev dependencies (require-dev) interactively [yes]? 
是否需要require-dev 选择yes 否则选择 no
Do you confirm generation [yes]? yes
是否生成composer.json 确认compose.json文件没有问题 选择yes
如果使用github 这里还会提问 是否把生成的vendor目录放到.gitignore文件隐藏 这里选择 yes

然后当前目录下会出现一个composer.json 文件

然后将初始化生成的composer.json文件上传到github仓库( https://github.com/maole01/test.git )

四.将 GitHub 上的包提交到 Packagist 注册

进入https://packagist.org

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

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

五.设置 composer 包自动更新

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

1.开启github里面的服务钩子
点击github仓库里面的 setting -> Integrations & services -> Add service 搜索Packagist

2. 填写相关资料
user: github账号 如:maole01
token : packagist.org里面Profile show API Token 
domain: 域名 https://packagist.org/
添加->成功后 点击Edit 点击页面右上角Test service 测试 报:Okay, the test payload is on its way. 即成功(当我们往github里面推代码时,会自动更新到packagist.org应用商店,不需要手动去更新了)

六.通过建立的package包拉取仓库代码

建立联系之后 即可在其他目录通过composer create-project拉取github里的代码了,如:
composer create-project maole01/test a1 dev-master --prefer-dist

把我test仓库里面的代码拉到本地a1文件夹里面

这里有时候因为网络原因可能会不成功,可以分别试试国内或者国外的镜像(默认是国外镜像)

设置成国内:composer config -g repo.packagist composer https://packagist.phpcomposer.com

设置成国外:composer config -g repo.packagist composer https://packagist.org

七.项目引用packagist.org里面其他package包

可以直接在里面搜索自己需要的包 (如验证码 :apache),选择适合自己的或者下载量比较高的

然后通过composer require gregwar/captcha引入,(这里例子是引用的gregwar/captcha 验证码包)

1.在自己项目代码里面 include "vendor/autoload.php"; 可以实现类的自动加载
2. 也可以修改composer.json 增加 autoload ,如:files表示要自动加载的文件,psr-4 表示要加载(core目录和web目录)的命名空间
{
"name": "maole01/test",
"description": "test",
"type": "prohect",
"license": "MIT",
"authors": [
{
"name": "maole",
"email": "453714567@qq.com"
}
],
"minimum-stability": "dev",
"require": {},
"autoload" : {
"files" : ["
core/functions.php"
],
"psr-4":{
"core\\" : "core",
"web\\" : "web"
}
}
}
3. composer dump (按照配置文件把环境重新配置一下)

八.github发布一个稳定版本packagist的composer包

但是这缺有一个缺陷,就是每次composer require的时候都需要带上dev-master,这其实不是一个稳定版本,介绍一下怎么使用github发布一个稳定版本。在github中,tag定义为里程碑,也就是说在开发到一定的程度时,可以先记录一个里程碑,也就是版本(v0.1,v1.0)

在这之前, 你需要了解一下github的一些需要用到的命令:

1.查看本地所有的tag

git tag

2.创建一个新的tag

git tag [name]

3.删除tag(这里说一下怎么正确地删除远程的版本)

//查看一下远程的tag
git tag [name]
//查看一下远程的tag
git tag -r //先删除本地tag
git tag -d [name]
//删除远程tag
git push origin :refs/tags/[name]

4.提交tag

git push origin --tags

5.查看提交状态

git log --oneline --decorate --graph

这里需要注意一下返回值,那一串乱码是有用的~

6.为已经提交的代码打上tag,下面命令使用到第5点的乱码(注意一般是日志的第一行也就是最新一次提交的编码)

git tag -a v0. 9ff91da

下面是详细步骤

1.首先提交一下代码。不管用什么方式,只要提交了就好,这里我用PHPstorm提交git

2.在cmd或git bash中输入git log --oneline --decorate --graph 查看提交编码

3.打上tag

git tag -a v0. 9ff91da

4.push到服务器端

参考:https://hlee.iteye.com/blog/1616461

git push --tags

5.更新一下packagist即可

这里需要注意的是,可能更新之后还没反应,有时甚至会抛异常,这种情况可能是还没同步到国外的服务器而已,等一天就好了。。。还有composer.json种要是"minimum-stability": "dev", ,如果dev换成stable可能会出错

如何创建自己的composer包的更多相关文章

  1. 创建自己的composer包

    需求:在项目中输入 p($arr); 将会格式化输出 一.在GitHub上创建仓库 1.1这个仓库必须包含composer.json文件,内容如下. { "name": " ...

  2. PHP创建自己的Composer包方法

    原文地址:http://www.jb51.net/article/137923.htm

  3. 【Composer】实战操作二:自己创建composer包并提交

    大纲 创建自己的composer库 提交到指定平台 测试安装自己的库 设置composer平台自动更新 如何方便测试自己开发的库 开始动手 创建自己的composer库 个人博客后台有一部分是关于统计 ...

  4. 创建你的一个composer包

    如何创建自己的一个composer包,这个其实很好解决的!只要你了解composer相关的知识便不难做到. 首先,你还不知道什么是composer的话,请先学习下composer的相关知识.简单的说, ...

  5. 从零创建发布属于自己的composer包

    原文地址:https://www.wjcms.net/archives/从零创建发布属于自己的composer包 今天给大家讲解一下如何从零创建发布属于自己的composer包. composer包用 ...

  6. composer包(发布到github上)同步到Packagist

    在上一篇文章里面,探讨了如何一步步建立composer包–创建你的一个composer包 创建完成后,我们需要做的就是讲自建的包发布到Packagist上.至于说什么是Packagist,这个就不用我 ...

  7. PHP Composer 包管理器的安装和使用

    一,包管理器的安装 01,首先确定 php 命令能够全局使用,要是不能请修改环境变量 02,使用 curl 命令安装 => curl -sS http://install.phpcomposer ...

  8. 手把手教你发布自己的 Composer 包

    一.前言 Composer 是 PHP 用来管理依赖(dependency)关系的工具.我们不仅要学会使用别人提供的包,更要学会制作和分享自己的软件包,下面演示如何创建一个自己的 Composer 包 ...

  9. 开发自己的composer包

    1. 创建一个开发目录 mkdir project cd project 2. 利用composer生成一个composer.json composer init > Welcome to th ...

随机推荐

  1. MySQL视图,函数,触发器,存储过程

    1. 视图 视图是一个虚拟表,它的本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来, ...

  2. powershell 激活WIN10

    1.以win10专业版为例,鼠标右键点击开始图标,选择[windows powershell(管理员)],或者命令提示符管理员:2.打开命令窗口,复制这个命令slmgr /ipk W269N-WFGW ...

  3. 【转】Java Socket编程基础及深入讲解

    原文:https://www.cnblogs.com/yiwangzhibujian/p/7107785.html#q2.3.3 Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要 ...

  4. HDU 5977 Garden of Eden

    题解: 路径统计比较容易想到点分治和dp dp的话是f[i][j]表示以i为根,取了i,颜色数状态为j的方案数 但是转移这里如果暴力转移就是$(2^k)^2$了 于是用FWT优化集合或 另外http: ...

  5. C# 调用百度地图 Web 服务 API

    最近公司项目中需要根据两个地点的交通路径和距离做一些数据推荐,为了程序的稳定和用户体验所以想从百度地图 API 采集数据保存到数据库中,经过一翻研究之后选定了百度地图 Web 服务 API 中的 Di ...

  6. python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

  7. Python与R的区别和联系

    转自:http://bbs.pinggu.org/thread-3078817-1-1.html 有人说Python和R的区别是显而易见的,因为R是针对统计的,python是给程序员设计的,其实这话对 ...

  8. RecyclerView滑动到指定位置,并置顶

    一般我们用 mRecycleview.smoothScrollToPosition(0)滑动到顶部,具有滚动效果,但是如果我们想滚动到任意指定位置,那么smoothScrollToPosition() ...

  9. window.open 打开全屏窗口

    window.open新打开页面为全屏状态,各个浏览器情况不一致. window.open   弹出新窗口的命令:     'page.html'   弹出窗口的文件名:     'newwindow ...

  10. centos7 yum安装LAMP

    说明:我安装后的版本号分别是: apache : Apache/2.4.6 (CentOS)mysql:5.6.42php:5.6.39 一.配置网络. 我们首先需要让我们的虚拟机能够连接上外网,这样 ...