资讯专栏INFORMATION COLUMN

使用composer创建PHP组件

WelliJhon / 2687人阅读

摘要:编写什么类以及编写多少类完全取决于组件的作用。组件创建完成我们可以在上创建一个钩子,每次更新组件的仓库时通知在仓库中设置钩子的方法参阅使用这个组件一切都完工了现在任何人都能使用安装这个组件了。

前言

当今php生态环境,composer已经成为必不可少的组件,相信大多数人已经使用过别人的composer包, 那么如何创建一个PHP组件,发布到packigist从而把你的创意贡献给开源社区呢?

确定厂商名和包名

在开发PHP组件之前,首先要选择组件的厂商名和包名,已用来区分组件属于谁,建议厂商名和包名都是用小写字母.

确定命名空间

命名空间不必和包名一直,注意不要与其他组件命名空间重复.

生成composer.json文件

我们可以简单使用composer init 创建项目的composer.json 文件,
之后会以问答的形式提示你填写信息, 以下 ">" 后 表示交互时输入的信息

> composer init

                                            
  Welcome to the Composer config generator  
                                            


This command will guide you through creating your composer.json config.

Package name (/) [composertest/example]:  # 厂商名与包名
> suntianxiang/cn-oauth

Description []: > A library for wechat,alipay,weibo OAuth2 Client # 详细信息

Author [stx <334965556@qq.com>, n to skip]:

Minimum Stability []: > beta # 下载时倾向开发版还是稳定版

Package Type (e.g. library, project, metapackage, composer-plugin) []: 
> library # 包的类型,我们属于library,固填library

License []: MIT # 开源协议

Would you like to define your dependencies (require) interactively [yes]? > no # 是否需要定义你的依赖

Would you like to define your dev dependencies (require-dev) interactively [yes]?  > no


{
    "name": "suntianxiang/cn-oauth",
    "description": "A library for wechat,alipay,weibo OAuth2 Client",
    "type": "library",
    "require-dev": {
        "phpunit/phpunit": "^6.5"
    },
    "license": "MIT",
    "authors": [
        {
            "name": "stx",
            "email": "334965556@qq.com"
        }
    ],
    "minimum-stability": "beta",
    "require": {
        "php": "> 7.0",
        "guzzlehttp/guzzle": "^6.3"
    },
    "autoload": {
        "psr-4": {
            "CnOAuth": "src"
        }
    }
}

最后会输出生成的composer.json文件 ()

实现组件功能

现在我们要实现组件的具体功能了。这一步我们要便携组成PHP组件的类、接口和形状。编写什么类以及编写多少类完全取决于PHP组件的作用。
组件的文件组织方式如下:

  Root:
      src/
          这个目录包含组件的源码 (例如PHP文件)
      tests/
          单元测试文件
      composer.json
          composer配置文件
      README.md
          组件介绍,说明,使用方法等, markdown格式
      ...

如果你还不太清楚,可以参考一些优秀的组件仓库的组织结构

版本控制

在把组件发布到packagist之前,我们还需要把组件发布到公开的代码仓库中,
例如 github, 把写好的代码发布到了github上 并创建一个release

提交到packagist

现在可以把组件提交到packagist了。
登录packagist后, 单机网页右上角的 “Submit Package”按钮,然后在 “Repository URL” 中输入完整的Git仓库URL,再单机“Check”按钮。组件创建完成

我们可以在Github上创建一个钩子,每次更新组件的仓库时通知Packgist,在仓库中设置钩子的方法参阅https://packagist.org/about#how-to-update-packages

使用这个组件

一切都完工了!现在任何人都能使用Comopser安装这个组件了。

 composer require suntianxiang/cn-oauth

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26248.html

相关文章

  • PHP组件、依赖管理和自动加载

    摘要:如果需要下载新版组件,需要使用自动加载组件我们只需在文件的顶部使用函数导入创建的自动加载器创建的自动加载器就是名为的文件。如果实例化虚构的类,会自动加载文件。 组件 PHP组件目录Packagist https://packagist.org 使用组件 Packagist是查找PHP组件的地方,Composer是安装PHP组件的工具 https://getcomposer.org 安装...

    XBaron 评论0 收藏0
  • 使用 Docker / Docker Compose 部署 Swoft 应用

    摘要:所以呢,为了节省我们的时间,官方提供了一个镜像包,里面包含了运行环境所需要的各项组件我们只需要下载镜像并新建一个容器,这个容器就提供了框架所需的所有依赖和环境,将宿主机上的项目挂载到镜像的工作目录下,就可以继续我们的开发或生产工作了。 Swoft 首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-...

    gplane 评论0 收藏0
  • 使用 Docker / Docker Compose 部署 Swoft 应用

    摘要:所以呢,为了节省我们的时间,官方提供了一个镜像包,里面包含了运行环境所需要的各项组件我们只需要下载镜像并新建一个容器,这个容器就提供了框架所需的所有依赖和环境,将宿主机上的项目挂载到镜像的工作目录下,就可以继续我们的开发或生产工作了。 Swoft 首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-...

    chaos_G 评论0 收藏0
  • php管理依赖关系工具composer学习笔记

    摘要:首先支持下黄老师的视频网站转型这篇的学习笔记也是根据他的视频教程写的,一共十集,讲解的很简单感兴趣的同志们可以上他视频网站购买视频,网站地址放在文末我的博客作用自动安装所需要的模块,自动加载管理项目,发布到网上上去是默认的加载组件地址安装下 首先支持下黄老师的视频网站转型这篇composer的学习笔记也是根据他的视频教程写的,一共十集,讲解的很简单感兴趣的同志们可以上他视频网站购买视频...

    CoyPan 评论0 收藏0
  • Composer三步曲:安装、使用、发布

    摘要:是组件的依赖管理器,它在命令行中使用。厂商名和包名只是为了让识别组件,而命名空间则是需要在代码中使用组件。至此,我们的组件就发布成功了。总结以上就是关于安装使用以及发布的介绍。 原文是在我自己博客中,小伙伴也可以点阅读原文进行跳转查看,还有好听的背景音乐噢~ showImg(https://www.cxiansheng.cn/usr/uploads/2017/11/905996380....

    0x584a 评论0 收藏0

发表评论

0条评论

WelliJhon

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<