zoukankan      html  css  js  c++  java
  • 如何创建自己的composer包

    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.9 9ff91da

    下面是详细步骤

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

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

    3.打上tag

    git tag -a v0.9 9ff91da

    4.push到服务器端

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

    git push --tags

    5.更新一下packagist即可

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

  • 相关阅读:
    MyBatis中传入参数parameterType类型详解
    mybatis逆向工程无法生成带有_表明的解决办法。
    sql server 正则匹配查询数据
    Kibana按时间(小时,分钟,天)统计数据 ,
    AutoCAD 多重引线 文本 左右对齐的问题
    ObjectARXWizard2022安装
    综合练习:词频统计
    powerDesigner设计表自动生成sql语句,设置携带注释
    打jar包后,无法获取resources目录下的word模板文件
    solr新建core,并配置schema
  • 原文地址:https://www.cnblogs.com/jiangxiaobo/p/10677930.html
Copyright © 2011-2022 走看看