開發 composer 包,上傳 packagist並即時更新+發布穩定版

來源:互聯網
上載者:User

標籤:魯迅   profile   load   方案   tags   function   介紹   remote   laravel   

這段時間比較忙,一直沒時間寫點東西,今天抽空隨便寫寫。
背景:在新公司發現一個現象,很多已經工作六七年的老程式員竟然不會用 git,也不會在網上搜尋,而對於 使用 composer 開發包也就更不瞭解了,現在我就做個入門總結。

不說廢話,直奔主題  ——  魯迅 ^_^參考文檔:https://laravel-china.org/docs/composer/2018協議:http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

步驟:

  1. 建立項目目錄
    mkdir composer-test
    cd comopser-test
  2. 初始化
    composer init
    提示進行配置 packagist 資訊:
    輸入項目命名空間 name:其實就是 packagist 名稱,建議 github 使用者名稱/項目名稱,leesin/composer-test
    項目描述 Description: 項目描述,會現在是 packagist 項目介紹中
    作者資訊 Author: Leesin <[email protected]>
    輸入最低穩定版本:stable, RC, beta, alpha, dev
    輸入項目類型:library, project, metapackage, composer-plugin
    輸入授與類型:開源軟體 一般選擇 MIT
    輸入依賴資訊:yes->搜尋包名 (可以是 php 等)->輸入版本
    = >= <= 之類的
    是否需要require-dev:同上
    進行產生:yes, 產生 composr.json
  3. 上傳 github
    git init && echo ‘hello world‘ >> README.md
    git add . && git commit -m‘init‘
    git remote add origin 倉庫地址
    git push origin -u 倉庫地址
  4. 提交 packagist
    將github 上的包提交到 packagist 註冊
    submit->輸入倉庫地址->check->通過檢測就提交到 packagist 了
    如果提示已經存在,可修改包名或者直接提交
  5. 設定 composer 包自動更新
    預設情況下,github代碼更新,composer 包是不自動更新的
    方案: 使用 github 服務鉤子
    setting->Integrations & services ->Add service 搜尋 packagist->填寫資料:
    user: packagist 的使用者名稱
    token:packagist.org 中 Profile show API Token 查看
    domain: https://packagist.org/
    edit -> test service ,[Okay, the test payload is on its way. ] 就可以自動更新了
  6. 使用
    通過 packagist 拉取github 代碼
    composer create-project packagist名 project名 --prefer-dist dev-master [ 指定版本 ]

        引用其他包composer require package_name實現自動載入:        include vendor/autoload.php或者        修改 composer.json, 增加 autoload 配置項,files 表示要自動載入的檔案,psr-4 表示要自動載入的 命名空間        classmap 一般用來對某些開發類自動載入,psr-4則是項目代碼的自動載入,psr-0基本由psr-4替代,files模式主要針對全域helper之類的function載入,配置完成後執行composer dump-autoload即可        "autoload":{                "files":[                    "src/functions.php",                    "",                    ...                ],            "psr-4":{                "Leesin\\" : "src", // 前邊命名空間,後邊為目錄            }        }        composer dump / dump-autoload 按照設定檔,重新載入配置
  7. 補充:常用包結構
    .
    ├── composer.json
    ├── README.md
    └── src // 源碼目錄
    └── Hello.php

     mkdir src && touch src/Hello.php                     <?php                             namespace Leesin;                            class Hello                            {                                public static function SayHello(){                                    return ‘hello world‘;                                }                            } 配置自動載入             "autoload":{                    "psr-4":{                            "Leesin\\":"src/"    # "命名空間\\":"目錄名稱/",表示 src 下的命名空間為 Leesin                    }            }         composer dump    建立測試檔案 touch test.php                    <?php                             require __DIR__.‘/vendor/autoload.php‘;                            use Leesin\Hello;                            echo Hello::SayHello();    測試:php test.php 輸出 hello world 表示成功
  8. git tag 發布穩定版本 composer 包
    git tag -a v0.1 -m ‘version 0.1‘
    git push origin --tags
    在 packagist 中重新整理即可看到

開發 composer 包,上傳 packagist並即時更新+發布穩定版

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.