使用composer建立PHP组件

前言

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

  1. 肯定厂商名和包名

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

  2. 肯定命名空间

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

  3. 生成composer.json文件

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

    > composer init
    
                                                
      Welcome to the Composer config generator  
                                                
    
    
    This command will guide you through creating your composer.json config.
    
    Package name (<vendor>/<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文件 ()markdown

  4. 实现组件功能

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

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

    若是你还不太清楚,能够参考一些优秀的组件仓库的组织结构ide

  5. 版本控制

    在把组件发布到packagist以前,咱们还须要把组件发布到公开的代码仓库中,
    例如 github, 把写好的代码发布到了github上 并建立一个release单元测试

图片描述

  1. 提交到packagist

    如今能够把组件提交到packagist了。
    登陆packagist后, 单机网页右上角的 “Submit Package”按钮,而后在 “Repository URL” 中输入完整的Git仓库URL,再单机“Check”按钮。组件建立完成图片描述测试

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

  2. 使用这个组件

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

    composer require suntianxiang/cn-oauth
相关文章
相关标签/搜索