使用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
相關文章
相關標籤/搜索