PHP-Composer包开发、发布流程

Composer对与分发自己的PHP软件包,方便别人引用来说是很好的一种方式。平时开发中经常会用到Composer来引入三方的优质软件包,例如 Laravel、easywechat等等,如果我们有一些好的想法如果分发出去呢?下面我们就一步步来告诉大家如何实现自己的第一个Composer包。

初始化项目

首先创建composer.json文件用于声明包基本信息。

{
"name": "jake/dev-package", # 包名,格式为 vendor/package-name vendor用于避免冲突
"description": "软件包描述",
"autoload": { # 自动载入规范
"psr-4": {
"Jake\Package\": "src"
}
}
}

配置好之后就可以在src 目录编写项目逻辑,这里我们声明了自动载入符合*psr-4*规范。

本地引用软件包

在为上传到仓库之前,我们可以使用本地路径来引入

复制代码
{
    "name": "jake/application",

    ...

    "repositories": {
      "dev-package": {
        "type": "path",
        "url": "relative/or/absolute/path/to/my/dev-package",
        "options": {
          "symlink": true
        }
      }
    }
}

配置中的*"type": "path"* 表示引入的是一个本地仓库,url定义了包的路径,路径可以使用相对路径或绝对路径。

虽然设置了type和url后就可以开发了,但是composer会复制包的代码到vendor目录,而且每次包发生变更都要执行composer update

为了避免更新执行update操作,可以通过设置"symlink": true参数让composer创建一个软链接到包所在目录

最后一步操作就是使用composer require命令来引入软件包。

复制代码
composer require jake/dev-package @dev

发布到公网

1、 发布到外网首先需要把代码提交到vcs服务器,并且设置为可公开访问。

2、 然后注册 packagist 帐号用于发布,用邮箱即可注册。

3、 登录packagist后可通过 submit 页面发布composer包,发布时需要填写可公开访问的vcs地址。如下图

点击Check跟着向导走即可完成发布。

提示

包名中的vendor不可与他人发布的重复。

使用

composer require "kyfjake/lumen-swoole:version"

版本号规则

  1. dev-branch-name表示使用某一个分支版本,对应vcs中的分支
  2. vxx.xx.xx 表示使用xx.xx.xx版本,对应git中的标签 vxx.xx.xx

版本号匹配规则见: 官方文档composer包版本命名及限定规则

相关链接

  1. PSR-4
  2. composer autoload
  3. packagist
  4. 阿里云 Composer 全量镜像

作者:合一研发部-郭建超

相关推荐
用户30745969820713 小时前
PHP 扩展——从入门到理解
php
鹏仔先生1 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下1 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip1 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒2 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2502 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis2 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
Cheng小攸2 天前
渗透行为分析与检测
开发语言·php
云水一下2 天前
从零开始学 PHP 系列(六):MySQL 数据库与 PHP 交互——让数据真正“住”进服务器
数据库·mysql·php
qq_452396232 天前
第十四篇:《K8s 网络模型与 CNI 插件(Calico、Flannel、Cilium)》
网络·kubernetes·php