使用composer开发自己的扩展包

前言

日常的开发中我们经常用到composer去安装其他人封装好的扩展包,如果你有好的功能代码想分享给其他人使用,就可以使用composer打包成扩展包。其他人用composer安装后就可以使用你的扩展包了。这篇文章教你如何打包自己的composer扩展包。

1.新建仓库

.在githubgitlabgitee等平台新建一个代码仓库,我这里以github为例新建一个测试仓库(访问不了github的建议下载一个瓦特工具箱(Steam++官网) - Watt Toolkit (steampp.net),可以免费加速github)

登录github后,在左上角点击新建仓库

填写仓库名称、描述、勾选添加README文件、选择一个你喜欢的开源协议(我这里选择Apache License 2.0)然后点击创建即可

创建完成后我们把它clone下来

git clone https://github.com/jian1098/test_repository.git

2.初始化composer配置

  • 首先安装好composer,这个步骤我就不多说了,按照百度的安装即可。

  • 然后进入上一步clone下来的仓库目录,然后在该目录下打开cmd(按住Shift,然后右键->在此处打开posershell窗口),执行下面的命令

    composer init
    
  • 安装命令行提示输入你的扩展包名称,直接按github用户名/仓库名称这种格式填即可

  • 接着输入扩展包描述、作者信息、最低稳定版本的标签(必须是stable, RC, beta, alpha, dev其中一个,一般填dev即可)、扩展包类型、开源协议(上一步创建github仓库我选的Apache License,所以我这里填 Apache-2.0)

  • 后面会让你定义依赖版本,可以直接按两次回车跳过,我这里搜索php,然后要求php版本要>5.4

  • 接下来配置自动加载,按照提示输入src/即可,如果不想要默认的命名空间你可以修改这里

  • 最后就是要你确认信息,是否创建.gitignore文件,是否安装依赖,完了composer初始化到这里就完成了,你会得到src目录.gitignorecomposer.json这些文件

3.提交到composer仓库

  • 首先在上一步的目录中将所有文件提交到github

  • 登录Packagist,使用github账号登录即可(用其他账号可能需要手动配置自动更新)。点击右上角的Submit,然后填写你第一步创建的github仓库地址然后提交就创建好composer仓库了

4.编写和测试扩展

接下来要写你的扩展的具体代码了,不过我们首先要安装刚刚创建好的扩展包。在上一张图片中,复制圈出来的安装命令和标签名组成完整的安装命令,然后在项目(ThinkPHP 或 Laravel等项目下)中安装

composer require jian1098/test_repository:dev-master

安装完后可以在vendor目录看到你的扩展包,不过还没有任何的php代码,我这里安装在ThinkPHP项目下

因为src目录是空的,所以提交不了上github,我们手动在扩展目录(图中的vendor/jian1098/test_repository)下新建src目录,用来存放扩展包代码。

接着就可以开始写代码了,注意注意:在扩展包中所有的php文件必须加上你的命名空间!!!而且这里的命名空间必须跟composer.json中配置的autoload psr-4中的保持一致,不然会报错找不到类!!

我这里在src下新建一个Hello.php文件,内容如下:

<?php

namespace Jian1098\TestRepository; # 命名空间

class Hello{
    public function say(){
        echo "hello";
    }
}

然后我在项目的控制器中引入并调用我写的Hello类进行扩展包的测试和调试

<?php
namespace app\index\controller;

use Jian1098\TestRepository\Hello;  # 引入扩展包
use think\Controller;

class Index extends Controller
{
    public function index()
    {
        $hello = new Hello();
        $hello->say();  //访问index方法会输出hello
    }

}

到这里,扩展包的编写和测试、调试就算完成了

5.发布扩展包

  • 1.更新github仓库
    再回到我们第1步创建clone下来的扩展包仓库中,将上一步编写好的src目录下所有文件复制到仓库的src目录下,然后提交到github上

  • 2.添加扩展包版本标签

    composer默认的dev-master标签不建议给别人使用,用来开发调试即可,我们开发调试好了以后新建一个标签提供给他人使用

    在扩展包仓库的目录下分别执行

    # 新建1.0.1版本标签
    git tag -a 1.0.1 -m "1.0.1版本"
    
    # 标签推送到github
    git push origin 1.0.1
    
  • 回到Packagist网站,可以看到刚刚发布的1.0.1版本了

6.使用扩展包

在其他项目下安装你发布的扩展包,指定版本标签即可

# 默认安装最新创建的标签版本
composer require jian1098/test_repository

# 安装指定标签版本
composer require jian1098/test_repository:1.0.1

要卸载扩展包,可以执行composer remove命令

composer remove jian1098/test_repository

相关推荐

  1. docker-compose使用

    2024-04-26 18:46:03       47 阅读
  2. 发布自己npm

    2024-04-26 18:46:03       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 18:46:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 18:46:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 18:46:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 18:46:03       20 阅读

热门阅读

  1. uniapp 页面滚动到指定位置的方法

    2024-04-26 18:46:03       14 阅读
  2. 【学习笔记】

    2024-04-26 18:46:03       15 阅读
  3. CDN引入Vue3

    2024-04-26 18:46:03       13 阅读
  4. 对象指针与对象数组(拉丁舞)

    2024-04-26 18:46:03       15 阅读
  5. Unity 数据持久化——persistentDataPath储存路径

    2024-04-26 18:46:03       15 阅读
  6. 游戏热更新进修——Lua编程

    2024-04-26 18:46:03       52 阅读
  7. Elment ui 表单上滑 加载更多数据方法

    2024-04-26 18:46:03       13 阅读
  8. CSV解析

    CSV解析

    2024-04-26 18:46:03      12 阅读
  9. Promise

    Promise

    2024-04-26 18:46:03      13 阅读