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 全量镜像

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

相关推荐
冰橙子id7 小时前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php
永日456708 小时前
学习日记-day24-6.8
开发语言·学习·php
Clang's Blog9 小时前
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)
数据库·mysql·php·wordpr
flyair_China13 小时前
【云架构】
开发语言·php
有个傻瓜15 小时前
PHP语言核心技术全景解析
开发语言·kubernetes·php
rorg1 天前
使用 Laravel 中的自定义存根简化工作
php·laravel
斯奕sky_small-BAD1 天前
C++ if语句完全指南:从基础到工程实践
java·开发语言·php
Nick同学1 天前
GatewayWorker 使用总结
后端·php
CRMEB定制开发1 天前
CRMEB 中 PHP 快递查询扩展实现:涵盖一号通、阿里云、腾讯云
阿里云·php·腾讯云·商城系统·商城源码
CRMEB定制开发2 天前
PHP 打印扩展开发:从易联云到小鹅通的多驱动集成实践
php·小程序源码·商城源码·微信商城·php商城源码