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. Jrebel最新激活破解方式以及一些必要的配置支持

    启动内存配置 jrebel用diea打开的时候,有时需要手动的配置一下jvm内存,项目才能正常启动: 如 VM Options: -Xms256m -Xmx700m -XX:MaxPermSize=2 ...

  2. HTML5+CSS3点击指定按钮显示某些内容效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. SSL通信-忽略证书认证错误

    .NET的SSL通信过程中,使用的证书可能存在各种问题,某种情况下可以忽略证书的错误继续访问.可以用下面的方式跳过服务器证书验证,完成正常通信. 1.设置回调属性ServicePointManager ...

  4. ansible的Filter

    filter的格式:   value..| filter() 在python中就是类的实例化 filter(self,*args,**kwargs) self就是filter中管道符前的value. ...

  5. js 对时间进行判断 现在的时间是否在后台给的开始时间 和 结束时间 内 (时间格式为:2018-09-03 09:20:30)

    function status(item){ let now = Date.parse(new Date()); let startString = Date.parse(new Date(Date. ...

  6. 5. Spring 通过 XML 配置 bean (进阶)

    1. 设置 bean 的作用域 当通过 Spring IOC 容器创建 bean 实例的时候,不仅可以完成 bean 的实例化,也可以为 bean 指定特定的作用域,Spring 支持以下 5 种作用 ...

  7. myeclipse 无法启动Tomcat(程序未设置断点)This kind of launch is configured to open the Debug perspective ...

    myeclipse 中在新建一个项目之后想要运行一下,可是却提示This kind of launch is configured to open the Debug perspective,下面是我 ...

  8. java遍历List中的map的几种方法

    Student 类 public class Student { private String name; private int age; private int taller; public St ...

  9. Java_比较两个图片的相似度

    说明:目前使用像素偏移量为5,可根据实际情况相应修改 package com.creditease.fetch.credit.util.similarity; import com.crediteas ...

  10. hadoop本地开发环境搭建

    1:下载hadoop2.7.3并解压 2:配置hadoop2.7.3环境变量 HADOOP_HOME %HADOOP_HOME%\bin 3:下载hadoop-eclipse-plugin插件 网址: ...