开发 composer 包,上传 packagist并实时更新+发布稳定版

这段时间比较忙,一直没时间写点东西,今天抽空随便写写。
背景:在新公司发现一个现象,很多已经工作六七年的老程序员竟然不会用 git,也不会在网上搜索,而对于 使用 composer 开发包也就更不了解了,现在我就做个入门总结。

不说废话,直奔主题  ——  鲁迅 ^_^
参考文档:https://laravel-china.org/docs/composer/2018
协议:http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

步骤:

  1. 创建项目目录
    mkdir composer-test
    cd comopser-test
  2. 初始化
    composer init
    提示进行配置 packagist 信息:
    输入项目命名空间 name:其实就是 packagist 名称,建议 github 用户名/项目名称,leesin/composer-test
    项目描述 Description: 项目描述,会现在是 packagist 项目介绍中
    作者信息 Author: Leesin <[email protected]>
    输入最低稳定版本:stable, RC, beta, alpha, dev
    输入项目类型:library, project, metapackage, composer-plugin
    输入授权类型:开源软件 一般选择 MIT
    输入依赖信息:yes->搜索包名 (可以是 php 等)->输入版本
    = >= <= 之类的
    是否需要require-dev:同上
    进行生成:yes, 生成 composr.json
  3. 上传 github
    git init && echo ‘hello world‘ >> README.md
    git add . && git commit -m‘init‘
    git remote add origin 仓库地址
    git push origin -u 仓库地址
  4. 提交 packagist
    将github 上的包提交到 packagist 注册
    submit->输入仓库地址->check->通过检测就提交到 packagist 了
    如果提示已经存在,可修改包名或者直接提交
  5. 设置 composer 包自动更新
    默认情况下,github代码更新,composer 包是不自动更新的
    方案: 使用 github 服务钩子
    setting->Integrations & services ->Add service 搜索 packagist->填写资料:
    user: packagist 的用户名
    token:packagist.org 中 Profile show API Token 查看
    domain: https://packagist.org/
    edit -> test service ,[Okay, the test payload is on its way. ] 就可以自动更新了
  6. 使用
    通过 packagist 拉取github 代码
    composer create-project packagist名 project名 --prefer-dist dev-master [ 指定版本 ]
        引用其他包
    composer require package_name
    
    实现自动加载:
            include vendor/autoload.php
    或者
            修改 composer.json, 增加 autoload 配置项,files 表示要自动加载的文件,psr-4 表示要自动加载的 命名空间
    
            classmap 一般用来对某些开发类自动加载,psr-4则是项目代码的自动加载,psr-0基本由psr-4替代,files模式主要针对全局helper之类的function载入,配置完成后执行composer dump-autoload即可
    
            "autoload":{
                    "files":[
                        "src/functions.php",
                        "",
                        ...
                    ],
                "psr-4":{
                    "Leesin\\" : "src", // 前边命名空间,后边为目录
                }
            }
    
            composer dump / dump-autoload 按照配置文件,重新加载配置
  7. 补充:常用包结构
    .
    ├── composer.json
    ├── README.md
    └── src // 源码目录
    └── Hello.php
     mkdir src && touch src/Hello.php
                         <?php
                                namespace Leesin;
    
                                class Hello
                                {
                                    public static function SayHello(){
                                        return ‘hello world‘;
                                    }
                                }
     配置自动加载
                 "autoload":{
                        "psr-4":{
                                "Leesin\\":"src/"    # "命名空间\\":"目录名称/",表示 src 下的命名空间为 Leesin
                        }
                }
             composer dump
    
        创建测试文件 touch test.php
                        <?php
                                require __DIR__.‘/vendor/autoload.php‘;
    
                                use Leesin\Hello;
    
                                echo Hello::SayHello();
        测试:php test.php 输出 hello world 表示成功
  8. git tag 发布稳定版本 composer 包
    git tag -a v0.1 -m ‘version 0.1‘
    git push origin --tags
    在 packagist 中刷新即可看到

原文地址:http://blog.51cto.com/12750968/2164560

时间: 2024-10-10 23:37:01

开发 composer 包,上传 packagist并实时更新+发布稳定版的相关文章

Python 第三方包上传至 PyPI 服务器

PyPI 服务器主要功能是?PyPI 服务器怎么搭建? PyPI 服务器可以用来管理自己开发的 Python 第三包. Pypi服务器搭建 Python 第三方包在本地打包 # 本地目录执行以下命令应该能成功在dist目录下生成*.tar.gz的包文件. python setup.py sdist Python 第三方包上传至 PyPI服务器 代码打包服务器上家目录添加配置文件 vim ~/.pypirc 添加如下内容: [distutils] index-servers = test test

如何在本地开发Composer包

如何在本地开发Composer包 周煦辰 2019-05-26 记录一下如何在本地开发一个Composer包,以及如何发布到Packgist. 假设你要开发一个名叫xuchen/biubiubiu的包. 准备工作 你得保证你的系统用已经安装了 Git PHP与Composer 并且保证在命令行中都可以使用 准备一个空项目用于测试 我们首先需要在本地新建一个空的Composer项目,用来生成autoload.php文件,以及在其vendor目录中引入我们之后开发完成的包来进行测试.当然,如果你已经

java开发中截取上传文件的文件名和后缀名

java开发中截取上传文件的文件名和后缀名 /** * Return the extension portion of the file's name . * * @see #getExtension */ public static String getExtension(File f) { return (f != null) ? getExtension(f.getName()) : ""; } public static String getExtension(String f

IOS开发之文件上传

IOS开发之文件上传 在移动应用开发  文件形式上传是必不可少的,最近把IOS这块文件上传文件代码简单的整理一下,如果大家有需要安卓这边的代码,本人也可以分享给大家!QQ群:74432915  欢迎大家一起探讨 首先本demo采用网上开源框架 AFNetworking  源码:http://download.csdn.net/detail/wangliang198901/7809439 将整个框架导入IOS新建立的工程中 在FKAppDelegate.h声明 如下: #import <UIKit

nexus搭建maven私服及私服jar包上传和下载

nexus搭建maven私服及私服jar包上传和下载 标签: nexus管理maven库snapshot 2017-06-28 13:02 844人阅读 评论(0) 收藏 举报 分类: Maven(1) 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.nexus搭建maven私服及相关介绍 1.下载nexus-2.12.0-01-bundle.zip(版本随意) 2.以管理员身份运行cmd,cd进入解压文件的bin目录,执行nexus.bat install 若未以管理员身份运行则安装

UI标签库专题四:JEECG智能开发平台 Upload(上传标签)

?? 1. Upload(上传标签) 1.1.  参数 属性名 类型 描述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null formData string 上传文件提交后台的其他表单参数取ID 否 null uploader string 上传提交路径 是 null extend string 上传文件扩展名(可选类型组1,pic[*.jpg;*,jpeg;*.png;*.gif;*.bmp;*.ico;*.tif],2,

maven jar包上传到服务器

maven jar包上传到服务器时出现pom文件没有上传上去,致使该jar包再被使用的时候没有依赖,jar包调用出错 解决办法,将pom文件一起deploy上去 mvn deploy:deploy-file -DgroupId=com.hikvision -DartifactId=WebXmlServer -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile="E:\workfiles\WebXmlServer\target\WebXmlServer-1

windows下用idea编写wordcount单词计数项目并打jar包上传到hadoop执行

windows下用idea编写wordcount单词计数项目并打jar包上传到hadoop执行 参考 https://blog.csdn.net/weixin_42370346/article/details/88688693 1.最后一步运行jar包时报错 原因:未指出主类名 解决方法:hadoop jar /home/wxx/WordCount.jar com.hadoop.project.WordcountMain /user/hadoop/input/file.txt /user/had

通过命令行将第三方jar包上传到Nexus3

1. Nexus2 才支持通过网页上传文件,Nexus3不支持,只能通过命令行 2. 在 Maven 默认 settings.xml 添加如下配置: 1 <server> 2 <id>gs-releases</id> 3 <username>user</username> 4 <password>password</password> 5 </server> 3. 执行命令: 1 mvn deploy:depl